From 84a10a89de4296019ea6a9e06b97afe0cc80cd45 Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Fri, 21 Jun 2024 19:48:43 +0200 Subject: [PATCH] fix(core): update --- .gitignore | 20 + .vscode/launch.json | 11 + .vscode/settings.json | 26 + .../.gitea/workflows/default_nottags.yaml | 66 + .../.gitea/workflows/default_tags.yaml | 124 + .../ci_default_gitlab/.gitlab-ci.yml | 128 + .../.gitea/workflows/default_nottags.yaml | 66 + .../.gitea/workflows/default_tags.yaml | 124 + .../ci_default_private_gitlab/.gitlab-ci.yml | 133 + .../.gitea/workflows/docker_nottags.yaml | 71 + .../.gitea/workflows/docker_tags.yaml | 106 + .../templates/ci_docker_gitlab/.gitlab-ci.yml | 107 + assets/templates/cli/cli.child.ts | 4 + assets/templates/cli/cli.js | 4 + assets/templates/cli/cli.ts.js | 5 + .../templates/dockerfile_service/Dockerfile | 46 + .../templates/dockerfile_service/dockerignore | 4 + assets/templates/gitignore/_gitignore | 23 + assets/templates/license_mit/license | 19 + assets/templates/meta/.meta.json | 3 + assets/templates/meta/.smartscaf.yml | 5 + assets/templates/meta/package.json | 11 + assets/templates/npm/.package.json | 28 + assets/templates/npm/.smartscaf.yml | 24 + assets/templates/npm/test/test.ts | 8 + assets/templates/npm/ts/index.ts | 3 + assets/templates/npm/ts/some.plugins.ts | 7 + assets/templates/npmextra/npmextra.json | 18 + assets/templates/readme/readme.md | 5 + assets/templates/service/.package.json | 34 + assets/templates/service/.smartscaf.yml | 21 + assets/templates/service/npmextra.json | 24 + .../service/ts/00_commitinfo_data.ts | 8 + assets/templates/service/ts/index.ts | 4 + .../service/ts/some.classes.some.db.ts | 30 + .../templates/service/ts/some.classes.some.ts | 27 + assets/templates/service/ts/some.paths.ts | 9 + assets/templates/service/ts/some.plugins.ts | 25 + .../templates/tsconfig_update/tsconfig.json | 14 + assets/templates/vscode/.vscode/launch.json | 11 + assets/templates/vscode/.vscode/settings.json | 26 + assets/templates/wcc/.package.json | 47 + assets/templates/wcc/.smartscaf.yml | 20 + .../wcc/ts_web/elements/first-element.ts | 47 + assets/templates/wcc/ts_web/elements/index.ts | 1 + assets/templates/wcc/ts_web/index.ts | 1 + assets/templates/wcc_update/html/index.html | 25 + assets/templates/wcc_update/html/index.ts | 10 + assets/templates/website/.package.json | 40 + assets/templates/website/.smartscaf.yml | 17 + assets/templates/website/Dockerfile | 3 + assets/templates/website/npmextra.json | 24 + assets/templates/website/qenv.yml | 1 + assets/templates/website/readme.md | 1 + assets/templates/website/ts/ffb.paths.ts | 7 + assets/templates/website/ts/ffb.plugins.ts | 14 + assets/templates/website/ts/index.ts | 12 + .../website/ts_web/elements/header.ts | 62 + assets/templates/website/ts_web/index.ts | 63 + .../templates/website_update/html/index.html | 110 + cli.child.ts | 4 + cli.js | 4 + cli.ts.js | 5 + license | 19 + npmextra.json | 34 + package.json | 107 + pnpm-lock.yaml | 8027 +++++++++++++++++ readme.hints.md | 1 + readme.md | 207 + test | 1 + ts/00_commitinfo_data.ts | 8 + ts/classes.gitzoneconfig.ts | 47 + ts/classes.project.ts | 28 + ts/gitzone.cli.ts | 101 + ts/gitzone.logging.ts | 15 + ts/index.ts | 9 + ts/mod_audit/index.ts | 1 + ts/mod_commit/index.ts | 73 + ts/mod_commit/mod.plugins.ts | 7 + ts/mod_deprecate/index.ts | 37 + ts/mod_deprecate/mod.plugins.ts | 6 + ts/mod_format/format.cleanup.ts | 19 + ts/mod_format/format.copy.ts | 6 + ts/mod_format/format.gitignore.ts | 21 + ts/mod_format/format.license.ts | 24 + ts/mod_format/format.npmextra.ts | 70 + ts/mod_format/format.packagejson.ts | 120 + ts/mod_format/format.prettier.ts | 58 + ts/mod_format/format.readme.ts | 47 + ts/mod_format/format.templates.ts | 71 + ts/mod_format/index.ts | 38 + ts/mod_format/mod.plugins.ts | 13 + ts/mod_helpers/index.ts | 10 + ts/mod_helpers/mod.plugins.ts | 5 + ts/mod_meta/index.ts | 26 + ts/mod_meta/meta.classes.meta.ts | 234 + ts/mod_meta/meta.interfaces.ts | 3 + ts/mod_meta/meta.plugins.ts | 8 + ts/mod_open/index.ts | 15 + ts/mod_open/mod.plugins.ts | 5 + ts/mod_standard/index.ts | 29 + ts/mod_standard/mod.plugins.ts | 4 + ts/mod_start/index.ts | 26 + ts/mod_start/mod.plugins.ts | 6 + ts/mod_template/index.ts | 52 + ts/mod_template/mod.plugins.ts | 7 + ts/paths.ts | 9 + ts/plugins.ts | 21 + tsconfig.json | 14 + 109 files changed, 11639 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 assets/templates/ci_default/.gitea/workflows/default_nottags.yaml create mode 100644 assets/templates/ci_default/.gitea/workflows/default_tags.yaml create mode 100644 assets/templates/ci_default_gitlab/.gitlab-ci.yml create mode 100644 assets/templates/ci_default_private/.gitea/workflows/default_nottags.yaml create mode 100644 assets/templates/ci_default_private/.gitea/workflows/default_tags.yaml create mode 100644 assets/templates/ci_default_private_gitlab/.gitlab-ci.yml create mode 100644 assets/templates/ci_docker/.gitea/workflows/docker_nottags.yaml create mode 100644 assets/templates/ci_docker/.gitea/workflows/docker_tags.yaml create mode 100644 assets/templates/ci_docker_gitlab/.gitlab-ci.yml create mode 100644 assets/templates/cli/cli.child.ts create mode 100644 assets/templates/cli/cli.js create mode 100644 assets/templates/cli/cli.ts.js create mode 100644 assets/templates/dockerfile_service/Dockerfile create mode 100644 assets/templates/dockerfile_service/dockerignore create mode 100644 assets/templates/gitignore/_gitignore create mode 100644 assets/templates/license_mit/license create mode 100644 assets/templates/meta/.meta.json create mode 100644 assets/templates/meta/.smartscaf.yml create mode 100644 assets/templates/meta/package.json create mode 100644 assets/templates/npm/.package.json create mode 100644 assets/templates/npm/.smartscaf.yml create mode 100644 assets/templates/npm/test/test.ts create mode 100644 assets/templates/npm/ts/index.ts create mode 100644 assets/templates/npm/ts/some.plugins.ts create mode 100644 assets/templates/npmextra/npmextra.json create mode 100644 assets/templates/readme/readme.md create mode 100644 assets/templates/service/.package.json create mode 100644 assets/templates/service/.smartscaf.yml create mode 100644 assets/templates/service/npmextra.json create mode 100644 assets/templates/service/ts/00_commitinfo_data.ts create mode 100644 assets/templates/service/ts/index.ts create mode 100644 assets/templates/service/ts/some.classes.some.db.ts create mode 100644 assets/templates/service/ts/some.classes.some.ts create mode 100644 assets/templates/service/ts/some.paths.ts create mode 100644 assets/templates/service/ts/some.plugins.ts create mode 100644 assets/templates/tsconfig_update/tsconfig.json create mode 100644 assets/templates/vscode/.vscode/launch.json create mode 100644 assets/templates/vscode/.vscode/settings.json create mode 100644 assets/templates/wcc/.package.json create mode 100644 assets/templates/wcc/.smartscaf.yml create mode 100644 assets/templates/wcc/ts_web/elements/first-element.ts create mode 100644 assets/templates/wcc/ts_web/elements/index.ts create mode 100644 assets/templates/wcc/ts_web/index.ts create mode 100644 assets/templates/wcc_update/html/index.html create mode 100644 assets/templates/wcc_update/html/index.ts create mode 100644 assets/templates/website/.package.json create mode 100644 assets/templates/website/.smartscaf.yml create mode 100644 assets/templates/website/Dockerfile create mode 100644 assets/templates/website/npmextra.json create mode 100644 assets/templates/website/qenv.yml create mode 100644 assets/templates/website/readme.md create mode 100644 assets/templates/website/ts/ffb.paths.ts create mode 100644 assets/templates/website/ts/ffb.plugins.ts create mode 100644 assets/templates/website/ts/index.ts create mode 100644 assets/templates/website/ts_web/elements/header.ts create mode 100644 assets/templates/website/ts_web/index.ts create mode 100644 assets/templates/website_update/html/index.html create mode 100644 cli.child.ts create mode 100644 cli.js create mode 100644 cli.ts.js create mode 100644 license create mode 100644 npmextra.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 readme.hints.md create mode 100644 readme.md create mode 160000 test create mode 100644 ts/00_commitinfo_data.ts create mode 100644 ts/classes.gitzoneconfig.ts create mode 100644 ts/classes.project.ts create mode 100644 ts/gitzone.cli.ts create mode 100644 ts/gitzone.logging.ts create mode 100644 ts/index.ts create mode 100644 ts/mod_audit/index.ts create mode 100644 ts/mod_commit/index.ts create mode 100644 ts/mod_commit/mod.plugins.ts create mode 100644 ts/mod_deprecate/index.ts create mode 100644 ts/mod_deprecate/mod.plugins.ts create mode 100644 ts/mod_format/format.cleanup.ts create mode 100644 ts/mod_format/format.copy.ts create mode 100644 ts/mod_format/format.gitignore.ts create mode 100644 ts/mod_format/format.license.ts create mode 100644 ts/mod_format/format.npmextra.ts create mode 100644 ts/mod_format/format.packagejson.ts create mode 100644 ts/mod_format/format.prettier.ts create mode 100644 ts/mod_format/format.readme.ts create mode 100644 ts/mod_format/format.templates.ts create mode 100644 ts/mod_format/index.ts create mode 100644 ts/mod_format/mod.plugins.ts create mode 100644 ts/mod_helpers/index.ts create mode 100644 ts/mod_helpers/mod.plugins.ts create mode 100644 ts/mod_meta/index.ts create mode 100644 ts/mod_meta/meta.classes.meta.ts create mode 100644 ts/mod_meta/meta.interfaces.ts create mode 100644 ts/mod_meta/meta.plugins.ts create mode 100644 ts/mod_open/index.ts create mode 100644 ts/mod_open/mod.plugins.ts create mode 100644 ts/mod_standard/index.ts create mode 100644 ts/mod_standard/mod.plugins.ts create mode 100644 ts/mod_start/index.ts create mode 100644 ts/mod_start/mod.plugins.ts create mode 100644 ts/mod_template/index.ts create mode 100644 ts/mod_template/mod.plugins.ts create mode 100644 ts/paths.ts create mode 100644 ts/plugins.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef13c79 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +.nogit/ + +# artifacts +coverage/ +public/ +pages/ + +# installs +node_modules/ + +# caches +.yarn/ +.cache/ +.rpt2_cache + +# builds +dist/ +dist_*/ + +# custom \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..26e9f92 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "npm test", + "name": "Run npm test", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3648eaa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,26 @@ +{ + "json.schemas": [ + { + "fileMatch": ["/npmextra.json"], + "schema": { + "type": "object", + "properties": { + "npmci": { + "type": "object", + "description": "settings for npmci" + }, + "gitzone": { + "type": "object", + "description": "settings for gitzone", + "properties": { + "projectType": { + "type": "string", + "enum": ["website", "element", "service", "npm", "wcc"] + } + } + } + } + } + } + ] +} diff --git a/assets/templates/ci_default/.gitea/workflows/default_nottags.yaml b/assets/templates/ci_default/.gitea/workflows/default_nottags.yaml new file mode 100644 index 0000000..c73bde6 --- /dev/null +++ b/assets/templates/ci_default/.gitea/workflows/default_nottags.yaml @@ -0,0 +1,66 @@ +name: Default (not tags) + +on: + push: + tags-ignore: + - '**' + +env: + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git + NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-} + NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-} + NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-} + NPMCI_URL_CLOUDLY: ${-{secrets.NPMCI_URL_CLOUDLY}-} + +jobs: + security: + runs-on: ubuntu-latest + continue-on-error: true + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Install pnpm and npmci + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + + - name: Run npm prepare + run: npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + if: ${-{ always() }-} + needs: security + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci npm build diff --git a/assets/templates/ci_default/.gitea/workflows/default_tags.yaml b/assets/templates/ci_default/.gitea/workflows/default_tags.yaml new file mode 100644 index 0000000..085e9cb --- /dev/null +++ b/assets/templates/ci_default/.gitea/workflows/default_tags.yaml @@ -0,0 +1,124 @@ +name: Default (tags) + +on: + push: + tags: + - '*' + +env: + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git + NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-} + NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-} + NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-} + NPMCI_URL_CLOUDLY: ${-{secrets.NPMCI_URL_CLOUDLY}-} + +jobs: + security: + runs-on: ubuntu-latest + continue-on-error: true + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + if: ${-{ always() }-} + needs: security + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci npm build + + release: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Release + run: | + npmci node install stable + npmci npm publish + + metadata: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Code quality + run: | + npmci command npm install -g typescript + npmci npm install + + - name: Trigger + run: npmci trigger + + - name: Build docs and upload artifacts + run: | + npmci node install stable + npmci npm install + pnpm install -g @git.zone/tsdoc + npmci command tsdoc + continue-on-error: true diff --git a/assets/templates/ci_default_gitlab/.gitlab-ci.yml b/assets/templates/ci_default_gitlab/.gitlab-ci.yml new file mode 100644 index 0000000..c599722 --- /dev/null +++ b/assets/templates/ci_default_gitlab/.gitlab-ci.yml @@ -0,0 +1,128 @@ +# gitzone ci_default +image: code.foss.global/hosttoday/ht-docker-node:npmci + +cache: + paths: + - .npmci_cache/ + key: '$CI_BUILD_STAGE' + +stages: + - security + - test + - release + - metadata + +before_script: + - pnpm install -g pnpm + - pnpm install -g @ship.zone/npmci + - npmci npm prepare + +# ==================== +# security stage +# ==================== +# ==================== +# security stage +# ==================== +auditProductionDependencies: + image: code.foss.global/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci command npm config set registry https://registry.npmjs.org + - npmci command pnpm audit --audit-level=high --prod + tags: + - private + - docker + allow_failure: true + +auditDevDependencies: + image: code.foss.global/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci command npm config set registry https://registry.npmjs.org + - npmci command pnpm audit --audit-level=high --dev + tags: + - private + - docker + allow_failure: true + +# ==================== +# test stage +# ==================== + +testStable: + stage: test + script: + - npmci node install stable + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + +testBuild: + stage: test + script: + - npmci node install stable + - npmci npm install + - npmci npm build + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + +release: + stage: release + script: + - npmci node install stable + - npmci npm publish + only: + - tags + tags: + - private + - docker + - notprivileged + +# ==================== +# metadata stage +# ==================== +codequality: + stage: metadata + allow_failure: true + only: + - tags + script: + - npmci command npm install -g typescript + - npmci npm prepare + - npmci npm install + tags: + - private + - docker + - priv + +trigger: + stage: metadata + script: + - npmci trigger + only: + - tags + tags: + - private + - docker + - notprivileged + +pages: + stage: metadata + script: + - npmci node install stable + - npmci npm install + - npmci command npm run buildDocs + tags: + - private + - docker + - notprivileged + only: + - tags + artifacts: + expire_in: 1 week + paths: + - public + allow_failure: true diff --git a/assets/templates/ci_default_private/.gitea/workflows/default_nottags.yaml b/assets/templates/ci_default_private/.gitea/workflows/default_nottags.yaml new file mode 100644 index 0000000..c73bde6 --- /dev/null +++ b/assets/templates/ci_default_private/.gitea/workflows/default_nottags.yaml @@ -0,0 +1,66 @@ +name: Default (not tags) + +on: + push: + tags-ignore: + - '**' + +env: + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git + NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-} + NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-} + NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-} + NPMCI_URL_CLOUDLY: ${-{secrets.NPMCI_URL_CLOUDLY}-} + +jobs: + security: + runs-on: ubuntu-latest + continue-on-error: true + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Install pnpm and npmci + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + + - name: Run npm prepare + run: npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + if: ${-{ always() }-} + needs: security + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci npm build diff --git a/assets/templates/ci_default_private/.gitea/workflows/default_tags.yaml b/assets/templates/ci_default_private/.gitea/workflows/default_tags.yaml new file mode 100644 index 0000000..085e9cb --- /dev/null +++ b/assets/templates/ci_default_private/.gitea/workflows/default_tags.yaml @@ -0,0 +1,124 @@ +name: Default (tags) + +on: + push: + tags: + - '*' + +env: + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git + NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-} + NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-} + NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-} + NPMCI_URL_CLOUDLY: ${-{secrets.NPMCI_URL_CLOUDLY}-} + +jobs: + security: + runs-on: ubuntu-latest + continue-on-error: true + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + if: ${-{ always() }-} + needs: security + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci npm build + + release: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Release + run: | + npmci node install stable + npmci npm publish + + metadata: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Code quality + run: | + npmci command npm install -g typescript + npmci npm install + + - name: Trigger + run: npmci trigger + + - name: Build docs and upload artifacts + run: | + npmci node install stable + npmci npm install + pnpm install -g @git.zone/tsdoc + npmci command tsdoc + continue-on-error: true diff --git a/assets/templates/ci_default_private_gitlab/.gitlab-ci.yml b/assets/templates/ci_default_private_gitlab/.gitlab-ci.yml new file mode 100644 index 0000000..f3e0fb4 --- /dev/null +++ b/assets/templates/ci_default_private_gitlab/.gitlab-ci.yml @@ -0,0 +1,133 @@ +# gitzone ci_default_private +image: code.foss.global/hosttoday/ht-docker-node:npmci + +cache: + paths: + - .npmci_cache/ + key: '$CI_BUILD_STAGE' + +stages: + - security + - test + - release + - metadata + +before_script: + - pnpm install -g pnpm + - pnpm install -g @ship.zone/npmci + - npmci npm prepare + +# ==================== +# security stage +# ==================== +# ==================== +# security stage +# ==================== +auditProductionDependencies: + image: code.foss.global/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci command npm config set registry https://registry.npmjs.org + - npmci command pnpm audit --audit-level=high --prod + tags: + - private + - docker + allow_failure: true + +auditDevDependencies: + image: code.foss.global/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci command npm config set registry https://registry.npmjs.org + - npmci command pnpm audit --audit-level=high --dev + tags: + - private + - docker + allow_failure: true + +# ==================== +# test stage +# ==================== + +testStable: + stage: test + script: + - npmci node install stable + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - private + - docker + - notprivileged + +testBuild: + stage: test + script: + - npmci node install stable + - npmci npm install + - npmci command npm run build + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - private + - docker + - notprivileged + +release: + stage: release + script: + - npmci node install stable + - npmci npm publish + only: + - tags + tags: + - private + - docker + - notprivileged + +# ==================== +# metadata stage +# ==================== +codequality: + stage: metadata + allow_failure: true + only: + - tags + script: + - npmci command npm install -g typescript + - npmci npm prepare + - npmci npm install + tags: + - private + - docker + - priv + +trigger: + stage: metadata + script: + - npmci trigger + only: + - tags + tags: + - private + - docker + - notprivileged + +pages: + stage: metadata + script: + - npmci node install lts + - npmci command npm install -g @git.zone/tsdoc + - npmci npm install + - npmci command tsdoc + tags: + - private + - docker + - notprivileged + only: + - tags + artifacts: + expire_in: 1 week + paths: + - public + allow_failure: true diff --git a/assets/templates/ci_docker/.gitea/workflows/docker_nottags.yaml b/assets/templates/ci_docker/.gitea/workflows/docker_nottags.yaml new file mode 100644 index 0000000..5b39300 --- /dev/null +++ b/assets/templates/ci_docker/.gitea/workflows/docker_nottags.yaml @@ -0,0 +1,71 @@ +name: Docker (tags) + +on: + push: + tags-ignore: + - '**' + +env: + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{gi.host}}/${-{gitea.repository}-}.git + NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-} + NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-} + NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-} + NPMCI_LOGIN_DOCKER_GITEA: ${-{ github.server_url }-}|${-{ gitea.repository_owner }-}|${-{ secrets.GITEA_TOKEN }-} + NPMCI_LOGIN_DOCKER_DOCKERREGISTRY: ${-{ secrets.NPMCI_LOGIN_DOCKER_DOCKERREGISTRY }-} + +jobs: + security: + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + + - name: Install pnpm and npmci + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + needs: security + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci npm prepare + npmci node install stable + npmci npm install + npmci command npm run build diff --git a/assets/templates/ci_docker/.gitea/workflows/docker_tags.yaml b/assets/templates/ci_docker/.gitea/workflows/docker_tags.yaml new file mode 100644 index 0000000..27132a9 --- /dev/null +++ b/assets/templates/ci_docker/.gitea/workflows/docker_tags.yaml @@ -0,0 +1,106 @@ +name: Docker (tags) + +on: + push: + tags: + - '*' + +env: + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git + NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-} + NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-} + NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-} + NPMCI_LOGIN_DOCKER_GITEA: ${-{ github.server_url }-}|${-{ gitea.repository_owner }-}|${-{ secrets.GITEA_TOKEN }-} + NPMCI_LOGIN_DOCKER_DOCKERREGISTRY: ${-{ secrets.NPMCI_LOGIN_DOCKER_DOCKERREGISTRY }-} + +jobs: + security: + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Audit production dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --prod + continue-on-error: true + + - name: Audit development dependencies + run: | + npmci command npm config set registry https://registry.npmjs.org + npmci command pnpm audit --audit-level=high --dev + continue-on-error: true + + test: + needs: security + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + npmci npm prepare + + - name: Test stable + run: | + npmci node install stable + npmci npm install + npmci npm test + + - name: Test build + run: | + npmci node install stable + npmci npm install + npmci command npm run build + + release: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: code.foss.global/hosttoday/ht-docker-dbase:npmci + + steps: + - uses: actions/checkout@v3 + + - name: Prepare + run: | + pnpm install -g pnpm + pnpm install -g @ship.zone/npmci + + - name: Release + run: | + npmci docker login + npmci docker build + npmci docker test + # npmci docker push {{git.host}} + npmci docker push {{git.host}} + + metadata: + needs: test + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: ${-{ env.IMAGE }-} + + steps: + - uses: actions/checkout@v3 + + - name: Trigger + run: npmci trigger diff --git a/assets/templates/ci_docker_gitlab/.gitlab-ci.yml b/assets/templates/ci_docker_gitlab/.gitlab-ci.yml new file mode 100644 index 0000000..43e54c3 --- /dev/null +++ b/assets/templates/ci_docker_gitlab/.gitlab-ci.yml @@ -0,0 +1,107 @@ +# gitzone ci_docker +image: code.foss.global/hosttoday/ht-docker-node:npmci + +cache: + paths: + - .npmci-cache/ + key: '$CI_BUILD_STAGE' + +before_script: + - pnpm install -g pnpm + - pnpm install -g @ship.zone/npmci + - npmci npm prepare + +stages: + - security + - test + - release + - metadata + - pages + +# ==================== +# security stage +# ==================== +auditProductionDependencies: + image: code.foss.global/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci command npm config set registry https://registry.npmjs.org + - npmci command pnpm audit --audit-level=high --prod + tags: + - private + - docker + allow_failure: true + +auditDevDependencies: + image: code.foss.global/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci command npm config set registry https://registry.npmjs.org + - npmci command pnpm audit --audit-level=high --dev + tags: + - private + - docker + allow_failure: true + +# ==================== +# test stage +# ==================== +testStable: + stage: test + script: + - npmci npm prepare + - npmci node install stable + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - private + - docker + +testBuild: + stage: test + script: + - npmci npm prepare + - npmci node install stable + - npmci npm install + - npmci command npm run build + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - private + - docker + - notprivileged + +# ==================== +# release stage +# ==================== + +release: + image: code.foss.global/hosttoday/ht-docker-dbase:npmci + services: + - docker:stable-dind + stage: release + script: + - npmci docker login + - npmci docker build + - npmci docker test + - npmci docker push registry.gitlab.com + only: + - tags + tags: + - private + - docker + - priv + +# ==================== +# metadata stage +# ==================== + +trigger: + stage: metadata + script: + - npmci trigger + only: + - tags + tags: + - private + - docker diff --git a/assets/templates/cli/cli.child.ts b/assets/templates/cli/cli.child.ts new file mode 100644 index 0000000..20d8b5f --- /dev/null +++ b/assets/templates/cli/cli.child.ts @@ -0,0 +1,4 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true'; +import * as cliTool from './ts/index.js'; +cliTool.runCli(); diff --git a/assets/templates/cli/cli.js b/assets/templates/cli/cli.js new file mode 100644 index 0000000..b854fb3 --- /dev/null +++ b/assets/templates/cli/cli.js @@ -0,0 +1,4 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true'; +const cliTool = await import('./dist_ts/index.js'); +cliTool.runCli(); diff --git a/assets/templates/cli/cli.ts.js b/assets/templates/cli/cli.ts.js new file mode 100644 index 0000000..505c88d --- /dev/null +++ b/assets/templates/cli/cli.ts.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true'; + +import * as tsrun from '@git.zone/tsrun'; +tsrun.runPath('./cli.child.js', import.meta.url); diff --git a/assets/templates/dockerfile_service/Dockerfile b/assets/templates/dockerfile_service/Dockerfile new file mode 100644 index 0000000..b8dec57 --- /dev/null +++ b/assets/templates/dockerfile_service/Dockerfile @@ -0,0 +1,46 @@ +# gitzone dockerfile_service +## STAGE 1 // BUILD +FROM code.foss.global/hosttoday/ht-docker-node:npmci as node1 +COPY ./ /app +WORKDIR /app +ARG NPMCI_TOKEN_NPM2 +ENV NPMCI_TOKEN_NPM2 $NPMCI_TOKEN_NPM2 +RUN npmci npm prepare +RUN pnpm config set store-dir .pnpm-store +RUN rm -rf node_modules && pnpm install +RUN pnpm run build + +# gitzone dockerfile_service +## STAGE 2 // install production +FROM code.foss.global/hosttoday/ht-docker-node:npmci as node2 +WORKDIR /app +COPY --from=node1 /app /app +RUN rm -rf .pnpm-store +ARG NPMCI_TOKEN_NPM2 +ENV NPMCI_TOKEN_NPM2 $NPMCI_TOKEN_NPM2 +RUN npmci npm prepare +RUN pnpm config set store-dir .pnpm-store +RUN rm -rf node_modules/ && pnpm install --prod + + +## STAGE 3 // rebuild dependencies for alpine +FROM code.foss.global/hosttoday/ht-docker-node:alpinenpmci as node3 +WORKDIR /app +COPY --from=node2 /app /app +ARG NPMCI_TOKEN_NPM2 +ENV NPMCI_TOKEN_NPM2 $NPMCI_TOKEN_NPM2 +RUN npmci npm prepare +RUN pnpm config set store-dir .pnpm-store +RUN pnpm rebuild -r + +## STAGE 4 // the final production image with all dependencies in place +FROM code.foss.global/hosttoday/ht-docker-node:alpine as node4 +WORKDIR /app +COPY --from=node3 /app /app + +### Healthchecks +RUN pnpm install -g @servezone/healthy +HEALTHCHECK --interval=30s --timeout=30s --start-period=30s --retries=3 CMD [ "healthy" ] + +EXPOSE 80 +CMD ["npm", "start"] diff --git a/assets/templates/dockerfile_service/dockerignore b/assets/templates/dockerfile_service/dockerignore new file mode 100644 index 0000000..cd49593 --- /dev/null +++ b/assets/templates/dockerfile_service/dockerignore @@ -0,0 +1,4 @@ +--- +fileName: .dockerignore +--- +node_modules/ diff --git a/assets/templates/gitignore/_gitignore b/assets/templates/gitignore/_gitignore new file mode 100644 index 0000000..e5a61fb --- /dev/null +++ b/assets/templates/gitignore/_gitignore @@ -0,0 +1,23 @@ +--- +fileName: .gitignore +--- +.nogit/ + +# artifacts +coverage/ +public/ +pages/ + +# installs +node_modules/ + +# caches +.yarn/ +.cache/ +.rpt2_cache + +# builds +dist/ +dist_*/ + +# custom \ No newline at end of file diff --git a/assets/templates/license_mit/license b/assets/templates/license_mit/license new file mode 100644 index 0000000..c31c37e --- /dev/null +++ b/assets/templates/license_mit/license @@ -0,0 +1,19 @@ +Copyright (c) {{date.year}} {{module.author}} ({{module.contact}}) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/assets/templates/meta/.meta.json b/assets/templates/meta/.meta.json new file mode 100644 index 0000000..f15d959 --- /dev/null +++ b/assets/templates/meta/.meta.json @@ -0,0 +1,3 @@ +{ + "projects": {} +} diff --git a/assets/templates/meta/.smartscaf.yml b/assets/templates/meta/.smartscaf.yml new file mode 100644 index 0000000..a3e0e48 --- /dev/null +++ b/assets/templates/meta/.smartscaf.yml @@ -0,0 +1,5 @@ +runafter: + - git add -A && git commit -m initial + - git push origin master + - gitzone meta update + \ No newline at end of file diff --git a/assets/templates/meta/package.json b/assets/templates/meta/package.json new file mode 100644 index 0000000..de23385 --- /dev/null +++ b/assets/templates/meta/package.json @@ -0,0 +1,11 @@ +{ + "name": "@{{module.gitscope}}/{{module.gitrepo}}_meta", + "version": "1.0.1", + "description": "a meta package for {{module.gitscope}}", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "{{module.author}}", + "license": "UNLICENSED" +} diff --git a/assets/templates/npm/.package.json b/assets/templates/npm/.package.json new file mode 100644 index 0000000..8eacbd1 --- /dev/null +++ b/assets/templates/npm/.package.json @@ -0,0 +1,28 @@ +--- +fileName: package.json +--- +{ + "name": "{{module.npmPackagename}}", + "version": "1.0.1", + "private": false, + "description": "{{module.description}}", + "main": "dist_ts/index.js", + "typings": "dist_ts/index.d.ts", + "type": "module", + "author": "{{module.author}}", + "license": "{{module.license}}", + "scripts": { + "test": "(tstest test/ --web)", + "build": "(tsbuild --web --allowimplicitany)", + "buildDocs": "(tsdoc)" + }, + "devDependencies": { + "@git.zone/tsbuild": "^2.1.25", + "@git.zone/tsbundle": "^2.0.5", + "@git.zone/tsrun": "^1.2.46", + "@git.zone/tstest": "^1.0.44", + "@push.rocks/tapbundle": "^5.0.15", + "@types/node": "^20.8.7" + }, + "dependencies": {} +} diff --git a/assets/templates/npm/.smartscaf.yml b/assets/templates/npm/.smartscaf.yml new file mode 100644 index 0000000..a477757 --- /dev/null +++ b/assets/templates/npm/.smartscaf.yml @@ -0,0 +1,24 @@ +defaults: + module.name: smartmodule + module.description: a smart description + module.author: Anonymous + module.contact: anonymous + module.license: UNLICENSED + module.githost: gitlab.com + module.npmAccessLevel: private + projectType: npm + usageInfo: Use TypeScript for best in class intellisense + +dependencies: + merge: + - ../gitignore + - ../ci_default + - ../tsconfig_update + - ../npmextra + - ../vscode + - ../readme + +runafter: + - pnpm install + - gitzone format + \ No newline at end of file diff --git a/assets/templates/npm/test/test.ts b/assets/templates/npm/test/test.ts new file mode 100644 index 0000000..9ab747b --- /dev/null +++ b/assets/templates/npm/test/test.ts @@ -0,0 +1,8 @@ +import { expect, expectAsync, tap } from '@push.rocks/tapbundle'; +import * as {{module.name}} from '../ts/index.js' + +tap.test('first test', async () => { + console.log({{module.name}}) +}) + +tap.start() diff --git a/assets/templates/npm/ts/index.ts b/assets/templates/npm/ts/index.ts new file mode 100644 index 0000000..fb852ff --- /dev/null +++ b/assets/templates/npm/ts/index.ts @@ -0,0 +1,3 @@ +import * as plugins from './{{module.name}}.plugins.js'; + +export let demoExport = 'Hi there! :) This is an exported string'; diff --git a/assets/templates/npm/ts/some.plugins.ts b/assets/templates/npm/ts/some.plugins.ts new file mode 100644 index 0000000..73cb960 --- /dev/null +++ b/assets/templates/npm/ts/some.plugins.ts @@ -0,0 +1,7 @@ +--- +fileName: {{module.name}}.plugins.ts +--- +const removeme = {}; +export { + removeme +} diff --git a/assets/templates/npmextra/npmextra.json b/assets/templates/npmextra/npmextra.json new file mode 100644 index 0000000..e928725 --- /dev/null +++ b/assets/templates/npmextra/npmextra.json @@ -0,0 +1,18 @@ +{ + "gitzone": { + "projectType": "{{projectType}}", + "module": { + "githost": "{{module.githost}}", + "gitscope": "{{module.gitscope}}", + "gitrepo": "{{module.gitrepo}}", + "description": "{{module.description}}", + "npmPackagename": "{{module.npmPackagename}}", + "license": "{{module.license}}", + "projectDomain": "{{module.projectDomain}}" + } + }, + "npmci": { + "npmGlobalTools": [], + "npmAccessLevel": "{{module.npmAccessLevel}}" + } +} diff --git a/assets/templates/readme/readme.md b/assets/templates/readme/readme.md new file mode 100644 index 0000000..d1cc922 --- /dev/null +++ b/assets/templates/readme/readme.md @@ -0,0 +1,5 @@ +# @{{module.gitscope}}/{{module.gitrepo}} +{{module.description}} + +## How to create the docs +To create docs run gitzone aidoc. \ No newline at end of file diff --git a/assets/templates/service/.package.json b/assets/templates/service/.package.json new file mode 100644 index 0000000..80e080e --- /dev/null +++ b/assets/templates/service/.package.json @@ -0,0 +1,34 @@ +--- +fileName: package.json +--- +{ + "name": "{{module.npmPackagename}}", + "version": "1.0.1", + "description": "{{module.description}}", + "main": "dist_ts/index.js", + "typings": "dist_ts/index.d.ts", + "type": "module", + "author": "{{service.author}}", + "license": "UNLICENSED", + "scripts": { + "test": "(tstest test/)", + "start": "(node --max_old_space_size=100 ./cli.js)", + "startTs": "(node cli.ts.js)", + "build": "(tsbuild --web --allowimplicitany)" + }, + "devDependencies": { + "@git.zone/tsbuild": "^2.1.17", + "@git.zone/tsrun": "^1.2.8", + "@git.zone/tstest": "^1.0.28", + "@git.zone/tswatch": "^2.0.1", + "@push.rocks/tapbundle": "^5.0.3" + }, + "dependencies": { + "@api.global/typedserver": "^1.0.24", + "@push.rocks/projectinfo": "^5.0.1", + "@push.rocks/qenv": "^4.0.10", + "@push.rocks/smartdata": "^5.0.7", + "@push.rocks/smartpath": "^5.0.5", + "@push.rocks/smartstate": "^2.0.0" + } +} diff --git a/assets/templates/service/.smartscaf.yml b/assets/templates/service/.smartscaf.yml new file mode 100644 index 0000000..2137966 --- /dev/null +++ b/assets/templates/service/.smartscaf.yml @@ -0,0 +1,21 @@ +defaults: + module.name: smartmodule + module.description: a smart description + module.author: Anonymous + module.license: UNLICENSED + module.githost: gitlab.com + projectType: service + +dependencies: + merge: + - ../gitignore + - ../ci_docker + - ../dockerfile_service + - ../tsconfig_update + - ../cli + - ../readme + - ../vscode + +runafter: + - pnpm install + - gitzone format \ No newline at end of file diff --git a/assets/templates/service/npmextra.json b/assets/templates/service/npmextra.json new file mode 100644 index 0000000..626b7c2 --- /dev/null +++ b/assets/templates/service/npmextra.json @@ -0,0 +1,24 @@ +{ + "gitzone": { + "projectType": "{{projectType}}", + "module": { + "githost": "{{module.githost}}", + "gitscope": "{{module.gitscope}}", + "gitrepo": "{{module.gitrepo}}", + "description": "{{module.description}}", + "npmPackagename": "{{module.npmPackagename}}", + "license": "{{module.license}}", + "projectDomain": "{{module.projectDomain}}" + } + }, + "npmci": { + "npmGlobalTools": [], + "dockerRegistryRepoMap": { + "registry.gitlab.com": "{{dockerTargetImagePath}}" + }, + "dockerBuildargEnvMap": { + "NPMCI_TOKEN_NPM2": "NPMCI_TOKEN_NPM2" + }, + "npmRegistryUrl": "{{npmPrivateRegistry}}" + } +} diff --git a/assets/templates/service/ts/00_commitinfo_data.ts b/assets/templates/service/ts/00_commitinfo_data.ts new file mode 100644 index 0000000..e396c26 --- /dev/null +++ b/assets/templates/service/ts/00_commitinfo_data.ts @@ -0,0 +1,8 @@ +/** + * autocreated commitinfo by @push.rocks/commitinfo + */ +export const commitinfo = { + name: '{{module.name}}', + version: '1.0.0', + description: '{{module.description}}' +} diff --git a/assets/templates/service/ts/index.ts b/assets/templates/service/ts/index.ts new file mode 100644 index 0000000..cd7c224 --- /dev/null +++ b/assets/templates/service/ts/index.ts @@ -0,0 +1,4 @@ +export * from './00_commitinfo_data.js'; +import { {{module.name}} } from './{{module.name}}.classes.{{module.name}}.js' + +export const runCli = async () => {} \ No newline at end of file diff --git a/assets/templates/service/ts/some.classes.some.db.ts b/assets/templates/service/ts/some.classes.some.db.ts new file mode 100644 index 0000000..4a15ebd --- /dev/null +++ b/assets/templates/service/ts/some.classes.some.db.ts @@ -0,0 +1,30 @@ +--- +fileName: {{module.name}}.classes.{{module.name}}db.ts +--- +import * as plugins from './{{module.name}}.plugins.js'; +import { {{module.name}} } from './{{module.name}}.classes.{{module.name}}.js'; + + + +export class {{module.name}}Db { + public smartdataDb: plugins.smartdata.SmartdataDb; + public {{module.name}}Ref: {{module.name}}; + + constructor({{module.name}}RefArg: {{module.name}}) { + this.{{module.name}}Ref = {{module.name}}RefArg; + } + + public async start() { + this.smartdataDb = new plugins.smartdata.SmartdataDb({ + mongoDbUser: this.{{module.name}}Ref.serviceQenv.getEnvVarOnDemand('MONGO_DB_USER'), + mongoDbName: this.{{module.name}}Ref.serviceQenv.getEnvVarOnDemand('MONGO_DB_NAME'), + mongoDbPass: this.{{module.name}}Ref.serviceQenv.getEnvVarOnDemand('MONGO_DB_PASS'), + mongoDbUrl: this.{{module.name}}Ref.serviceQenv.getEnvVarOnDemand('MONGO_DB_URL'), + }); + await this.smartdataDb.init(); + } + + public async stop() { + await this.smartdataDb.close(); + } +} diff --git a/assets/templates/service/ts/some.classes.some.ts b/assets/templates/service/ts/some.classes.some.ts new file mode 100644 index 0000000..e9a7414 --- /dev/null +++ b/assets/templates/service/ts/some.classes.some.ts @@ -0,0 +1,27 @@ +--- +fileName: {{module.name}}.classes.{{module.name}}.ts +--- +import * as plugins from './{{module.name}}.plugins.js'; +import * as paths from './{{module.name}}.paths.js'; +import { {{module.name}}Db } from './{{module.name}}.db.js' + +export class {{module.name}} { + public projectinfo: plugins.projectinfo.ProjectInfo; + public serverInstance: plugins.loleServiceserver.ServiceServer; + public serviceQenv = new plugins.qenv.Qenv('./', './.nogit'); + public {{module.name}}Db: {{module.name}}Db; + + public async start() { + this.{{module.name}}Db = new {{module.name}}Db; + this.projectinfo = new plugins.projectinfo.ProjectInfo(paths.packageDir); + this.serverInstance = new plugins.loleServiceserver.ServiceServer({ + serviceDomain: '{{module.domain}}', + serviceName: '{{module.name}}', + serviceVersion: this.projectinfo.npm.version, + addCustomRoutes: async (serverArg) => { + // any custom route configs go here + } + }); + await this.serverInstance.start(); + } +} \ No newline at end of file diff --git a/assets/templates/service/ts/some.paths.ts b/assets/templates/service/ts/some.paths.ts new file mode 100644 index 0000000..9a393da --- /dev/null +++ b/assets/templates/service/ts/some.paths.ts @@ -0,0 +1,9 @@ +--- +fileName: {{module.name}}.paths.ts +--- +import * as plugins from './{{module.name}}.plugins.js'; + +export const packageDir = plugins.path.join( + plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), + '../' +); diff --git a/assets/templates/service/ts/some.plugins.ts b/assets/templates/service/ts/some.plugins.ts new file mode 100644 index 0000000..2f23e41 --- /dev/null +++ b/assets/templates/service/ts/some.plugins.ts @@ -0,0 +1,25 @@ +--- +fileName: {{module.name}}.plugins.ts +--- +// node native +import * as path from 'path'; + +export { + path +} + +// @api.global scope +import * as loleServiceserver from '@api.global/typedserver'; + +export { + loleServiceserver +} + +// pushrocks scope +// pushrocks scope +import * as projectinfo from '@push.rocks/projectinfo'; +import * as qenv from '@push.rocks/qenv'; +import * as smartdata from '@push.rocks/smartdata'; +import * as smartpath from '@push.rocks/smartpath'; + +export { projectinfo, qenv, smartdata, smartpath }; \ No newline at end of file diff --git a/assets/templates/tsconfig_update/tsconfig.json b/assets/templates/tsconfig_update/tsconfig.json new file mode 100644 index 0000000..dfe5a55 --- /dev/null +++ b/assets/templates/tsconfig_update/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "useDefineForClassFields": false, + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "esModuleInterop": true, + "verbatimModuleSyntax": true + }, + "exclude": [ + "dist_*/**/*.d.ts" + ] +} diff --git a/assets/templates/vscode/.vscode/launch.json b/assets/templates/vscode/.vscode/launch.json new file mode 100644 index 0000000..26e9f92 --- /dev/null +++ b/assets/templates/vscode/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "npm test", + "name": "Run npm test", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/assets/templates/vscode/.vscode/settings.json b/assets/templates/vscode/.vscode/settings.json new file mode 100644 index 0000000..3648eaa --- /dev/null +++ b/assets/templates/vscode/.vscode/settings.json @@ -0,0 +1,26 @@ +{ + "json.schemas": [ + { + "fileMatch": ["/npmextra.json"], + "schema": { + "type": "object", + "properties": { + "npmci": { + "type": "object", + "description": "settings for npmci" + }, + "gitzone": { + "type": "object", + "description": "settings for gitzone", + "properties": { + "projectType": { + "type": "string", + "enum": ["website", "element", "service", "npm", "wcc"] + } + } + } + } + } + } + ] +} diff --git a/assets/templates/wcc/.package.json b/assets/templates/wcc/.package.json new file mode 100644 index 0000000..7d7f741 --- /dev/null +++ b/assets/templates/wcc/.package.json @@ -0,0 +1,47 @@ +--- +fileName: package.json +--- +{ + "name": "@{{module.scope}}/{{module.name}}", + "version": "1.0.55", + "private": false, + "description": "{{module.description}}", + "main": "dist_ts_web/index.js", + "typings": "dist_ts_web/index.d.ts", + "type": "module", + "scripts": { + "test": "npm run build", + "build": "tsbuild element && tsbundle element --production", + "watch": "tswatch element" + }, + "author": "{{author.name}}", + "license": "{{license}}", + "dependencies": { + "@design.estate/dees-domtools": "^2.0.55", + "@design.estate/dees-element": "^2.0.33", + "@design.estate/dees-wcctools": "^1.0.37", + "@git.zone/tsrun": "^1.2.12", + "@push.rocks/smartlog": "^1.0.9" + }, + "devDependencies": { + "@git.zone/tsbuild": "^2.1.24", + "@git.zone/tsbundle": "^2.0.10", + "@git.zone/tswatch": "^2.0.13", + "@push.rocks/projectinfo": "^5.0.2" + }, + "files": [ + "ts/**/*", + "ts_web/**/*", + "dist/**/*", + "dist_*/**/*", + "dist_ts/**/*", + "dist_ts_web/**/*", + "assets/**/*", + "cli.js", + "npmextra.json", + "readme.md" + ], + "browserslist": [ + "last 1 Chrome versions" + ] +} diff --git a/assets/templates/wcc/.smartscaf.yml b/assets/templates/wcc/.smartscaf.yml new file mode 100644 index 0000000..b5d00f1 --- /dev/null +++ b/assets/templates/wcc/.smartscaf.yml @@ -0,0 +1,20 @@ +defaults: + module.name: smartmodule + module.description: a smart description + module.author: Anonymous + module.license: UNLICENSED + +dependencies: + merge: + - ../wcc_update + - ../gitignore + - ../ci_default + - ../tsconfig_update + - ../npmextra + - ../vscode + - ../readme + +runafter: + - npm install + - gitzone format + \ No newline at end of file diff --git a/assets/templates/wcc/ts_web/elements/first-element.ts b/assets/templates/wcc/ts_web/elements/first-element.ts new file mode 100644 index 0000000..4e3f5c4 --- /dev/null +++ b/assets/templates/wcc/ts_web/elements/first-element.ts @@ -0,0 +1,47 @@ +import { DeesElement, property, html, customElement, type TemplateResult, css, cssManager } from '@design.estate/dees-element'; +import * as domtools from '@design.estate/dees-domtools'; + +declare global { + interface HTMLElementTagNameMap { + 'first-element': FirstElement; + } +} + +@customElement('first-element') +export class FirstElement extends DeesElement { + public static demo = () => html` + + `; + + @property({ + type: String + }) + public aProp: string = 'loading...'; + + + constructor() { + super(); + domtools.DomTools.setupDomTools(); + } + + public static styles = [ + cssManager.defaultStyles, + css` + :host { + display: block; + background: blue; + color: white; + padding: 10px; + text-align: center; + } + ` + ] + + public render(): TemplateResult { + return html` +
+ ${this.aProp} +
+ `; + } +} \ No newline at end of file diff --git a/assets/templates/wcc/ts_web/elements/index.ts b/assets/templates/wcc/ts_web/elements/index.ts new file mode 100644 index 0000000..f61e7ee --- /dev/null +++ b/assets/templates/wcc/ts_web/elements/index.ts @@ -0,0 +1 @@ +export * from './first-element.js'; diff --git a/assets/templates/wcc/ts_web/index.ts b/assets/templates/wcc/ts_web/index.ts new file mode 100644 index 0000000..f7edaed --- /dev/null +++ b/assets/templates/wcc/ts_web/index.ts @@ -0,0 +1 @@ +export * from './elements/index.js'; diff --git a/assets/templates/wcc_update/html/index.html b/assets/templates/wcc_update/html/index.html new file mode 100644 index 0000000..7e49ce9 --- /dev/null +++ b/assets/templates/wcc_update/html/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/templates/wcc_update/html/index.ts b/assets/templates/wcc_update/html/index.ts new file mode 100644 index 0000000..7b1101a --- /dev/null +++ b/assets/templates/wcc_update/html/index.ts @@ -0,0 +1,10 @@ +// dees tools +import * as deesWccTools from '@design.estate/dees-wcctools'; +import * as deesDomTools from '@design.estate/dees-domtools'; + +// elements and pages +import * as elements from '../ts_web/elements/index.js'; +import * as pages from '../ts_web/pages/index.js'; + +deesWccTools.setupWccTools(elements as any, pages); +deesDomTools.elementBasic.setup(); diff --git a/assets/templates/website/.package.json b/assets/templates/website/.package.json new file mode 100644 index 0000000..80eb090 --- /dev/null +++ b/assets/templates/website/.package.json @@ -0,0 +1,40 @@ +--- +fileName: package.json +--- +{ + "name": "{{module.npmPackagename}}", + "version": "1.0.0", + "description": "{{module.description}}", + "main": "dist_ts/index.js", + "typings": "dist_ts/index.d.ts", + "type": "module", + "scripts": { + "test": "npm run build", + "build": "tsbuild --web --allowimplicitany && tsbundle website --production", + "watch": "tswatch website", + "start": "(node cli.js)", + "startTs": "(node cli.ts.js)" + }, + "author": "{{author.name}}", + "license": "{{module.license}}", + "dependencies": { + "@api.global/typedserver": "^1.0.16", + "@consentsoftware_private/catalog": "^1.0.73", + "@design.estate/dees-domtools": "^2.0.23", + "@design.estate/dees-element": "^2.0.15", + "@push.rocks/smartlog": "^2.0.1", + "@push.rocks/qenv": "^5.0.2", + "@push.rocks/smartpath": "^5.0.5", + "@push.rocks/smartstate": "^2.0.0", + "@push.rocks/websetup": "^3.0.15" + }, + "devDependencies": { + "@git.zone/tsbuild": "^2.1.17", + "@git.zone/tsbundle": "^2.0.3", + "@git.zone/tsrun": "^1.2.8", + "@git.zone/tswatch": "^2.0.1", + "@push.rocks/projectinfo": "^5.0.1", + "@types/node": "^18.11.15" + }, + "private": true +} diff --git a/assets/templates/website/.smartscaf.yml b/assets/templates/website/.smartscaf.yml new file mode 100644 index 0000000..226595b --- /dev/null +++ b/assets/templates/website/.smartscaf.yml @@ -0,0 +1,17 @@ +defaults: + module.name: my.website + module.author: Task Venture Capital GmbH + module.license: UNLICENSED + module.description: a smart description for my.website + +dependencies: + merge: + - ../website_update + - ../gitignore + - ../ci_docker + - ../tsconfig_update + - ../cli + +runafter: + - gitzone format + - pnpm install diff --git a/assets/templates/website/Dockerfile b/assets/templates/website/Dockerfile new file mode 100644 index 0000000..89098b5 --- /dev/null +++ b/assets/templates/website/Dockerfile @@ -0,0 +1,3 @@ +# gitzone dockerfile_service +# written by format action +# \ No newline at end of file diff --git a/assets/templates/website/npmextra.json b/assets/templates/website/npmextra.json new file mode 100644 index 0000000..23b9e5f --- /dev/null +++ b/assets/templates/website/npmextra.json @@ -0,0 +1,24 @@ +{ + "gitzone": { + "projectType": "website", + "module": { + "githost": "{{module.githost}}", + "gitscope": "{{module.gitscope}}", + "gitrepo": "{{module.gitrepo}}", + "description": "{{module.description}}", + "npmPackagename": "{{module.npmPackagename}}", + "license": "{{module.license}}", + "projectDomain": "{{module.projectDomain}}" + } + }, + "npmci": { + "npmGlobalTools": [], + "dockerRegistryRepoMap": { + "registry.gitlab.com": "{{docker.registryImageTag}}" + }, + "dockerBuildargEnvMap": { + "NPMCI_TOKEN_NPM2": "NPMCI_TOKEN_NPM2" + }, + "npmRegistryUrl": "{{private.npmRegistryUrl}}" + } +} diff --git a/assets/templates/website/qenv.yml b/assets/templates/website/qenv.yml new file mode 100644 index 0000000..9168a5f --- /dev/null +++ b/assets/templates/website/qenv.yml @@ -0,0 +1 @@ +required: diff --git a/assets/templates/website/readme.md b/assets/templates/website/readme.md new file mode 100644 index 0000000..69b9db6 --- /dev/null +++ b/assets/templates/website/readme.md @@ -0,0 +1 @@ +## Usage diff --git a/assets/templates/website/ts/ffb.paths.ts b/assets/templates/website/ts/ffb.paths.ts new file mode 100644 index 0000000..2835412 --- /dev/null +++ b/assets/templates/website/ts/ffb.paths.ts @@ -0,0 +1,7 @@ +import * as plugins from './ffb.plugins.js'; + +export const packageDir = plugins.path.join( + plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), + '../' +); +export const distWebDir = plugins.path.join(packageDir, 'dist_serve/'); diff --git a/assets/templates/website/ts/ffb.plugins.ts b/assets/templates/website/ts/ffb.plugins.ts new file mode 100644 index 0000000..8021a26 --- /dev/null +++ b/assets/templates/website/ts/ffb.plugins.ts @@ -0,0 +1,14 @@ +// native scope +import * as path from 'path'; +export { path }; + +// @api.global scope +import * as typedserver from '@api.global/typedserver'; + +export { typedserver }; + +// @pushrocks scope +import * as qenv from '@push.rocks/qenv'; +import * as smartpath from '@push.rocks/smartpath'; + +export { qenv, smartpath }; diff --git a/assets/templates/website/ts/index.ts b/assets/templates/website/ts/index.ts new file mode 100644 index 0000000..7561f2e --- /dev/null +++ b/assets/templates/website/ts/index.ts @@ -0,0 +1,12 @@ +import * as plugins from './ffb.plugins.js'; +import * as paths from './ffb.paths.js'; + +export const runCli = async () => { + const serviceQenv = new plugins.qenv.Qenv('./', './.nogit', false); + const websiteServer = new plugins.loleWebsiteserver.LoleWebsiteServer({ + feedMetadata: null, + domain: '{{module.projectDomain}}', + serveDir: paths.distWebDir + }); + await websiteServer.start(); +}; diff --git a/assets/templates/website/ts_web/elements/header.ts b/assets/templates/website/ts_web/elements/header.ts new file mode 100644 index 0000000..330d69b --- /dev/null +++ b/assets/templates/website/ts_web/elements/header.ts @@ -0,0 +1,62 @@ +import { + customElement, + DeesElement, + property, + html, + cssManager, + unsafeCSS, + css, + TemplateResult, +} from '@design.estate/dees-element'; + +@customElement('default-header') +export class DefaultHeader extends DeesElement { + @property() + public someProperty = 'someProperty'; + + constructor() { + super(); + } + + public static styles = [ + cssManager.defaultStyles, + css` + :host { + display: block; + height: 100px; + } + :host([hidden]) { + display: none; + } + + .headerMain { + background: var(--background-accent); + color: #fff; + position: relative; + z-index: 1; + height: 100px; + } + .headerMain:after { + background: inherit; + bottom: 0; + content: ''; + display: block; + height: 60%; + left: 0; + position: absolute; + right: 0; + transform: skewY(-2deg); + transform-origin: 100%; + z-index: -1; + } + `, + ]; + + public render(): TemplateResult { + return html` + +
${this.someProperty}
+ + `; + } +} diff --git a/assets/templates/website/ts_web/index.ts b/assets/templates/website/ts_web/index.ts new file mode 100644 index 0000000..096c631 --- /dev/null +++ b/assets/templates/website/ts_web/index.ts @@ -0,0 +1,63 @@ +import * as serviceworker from '@api.global/typedserver/web_serviceworker_client'; +import * as domtools from '@design.estate/dees-domtools'; + +import { html, render } from '@design.estate/dees-element'; +import { DefaultHeader } from './elements/header.js'; + +export { DefaultHeader }; + +const run = async () => { + const domtoolsInstance = await domtools.DomTools.setupDomTools(); + domtools.elementBasic.setup(); + domtoolsInstance.setWebsiteInfo({ + metaObject: { + title: '{{website.title}}', + description: + '{{website.description}}', + canonicalDomain: 'https://{{module.domain}}', + ldCompany: { + name: '{{company.name}}', + status: 'active', + contact: { + address: { + name: '{{company.name}}', + city: '{{company.city}}', + country: 'Germany', + houseNumber: '{{company.houseNumber}}', + postalCode: '{{company.postalCode}}', + streetName: '{{company.streetName}}', + }, + description: 'work', + name: 'Task Venture Capital GmbH', + type: 'company', + facebookUrl: 'https://www.facebook.com/{{author.facebookHandle}}', + twitterUrl: 'https://twitter.com/{{authro.twitterHandle}}', + website: 'https://{{author.website}}', + phone: '+49 421 16767 548', + }, + closedDate: null, + foundedDate: { + day: 1, + month: 1, + year: 2014, + }, + }, + }, + }); + + const serviceWorker = serviceworker.getServiceWorker(); + + const mainTemplate = html` + + + `; + + render(mainTemplate, document.body); +}; + +run(); diff --git a/assets/templates/website_update/html/index.html b/assets/templates/website_update/html/index.html new file mode 100644 index 0000000..858e575 --- /dev/null +++ b/assets/templates/website_update/html/index.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cli.child.ts b/cli.child.ts new file mode 100644 index 0000000..20d8b5f --- /dev/null +++ b/cli.child.ts @@ -0,0 +1,4 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true'; +import * as cliTool from './ts/index.js'; +cliTool.runCli(); diff --git a/cli.js b/cli.js new file mode 100644 index 0000000..b854fb3 --- /dev/null +++ b/cli.js @@ -0,0 +1,4 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true'; +const cliTool = await import('./dist_ts/index.js'); +cliTool.runCli(); diff --git a/cli.ts.js b/cli.ts.js new file mode 100644 index 0000000..505c88d --- /dev/null +++ b/cli.ts.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true'; + +import * as tsrun from '@git.zone/tsrun'; +tsrun.runPath('./cli.child.js', import.meta.url); diff --git a/license b/license new file mode 100644 index 0000000..65908f0 --- /dev/null +++ b/license @@ -0,0 +1,19 @@ +Copyright (c) 2015 Task Venture Capital GmbH (hello@lossless.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/npmextra.json b/npmextra.json new file mode 100644 index 0000000..8f7c5ee --- /dev/null +++ b/npmextra.json @@ -0,0 +1,34 @@ +{ + "npmci": { + "npmGlobalTools": [], + "npmAccessLevel": "private", + "npmRegistryUrl": "verdaccio.lossless.one" + }, + "gitzone": { + "projectType": "npm", + "module": { + "githost": "gitlab.com", + "gitscope": "gitzone/private", + "gitrepo": "gitzone", + "description": "A CLI toolbelt to streamline local development cycles by using various gitzone utilities.", + "npmPackagename": "@gitzone_private/gitzone", + "license": "MIT", + "keywords": [ + "CLI", + "development", + "git", + "npm", + "TypeScript", + "automation", + "project setup", + "code formatting", + "template creation", + "logging", + "meta project management" + ] + } + }, + "tsdoc": { + "legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n" + } +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..d92afe9 --- /dev/null +++ b/package.json @@ -0,0 +1,107 @@ +{ + "name": "@git.zone/cli", + "private": false, + "version": "1.9.94", + "description": "A CLI toolbelt to streamline local development cycles by using various gitzone utilities.", + "main": "dist_ts/index.ts", + "typings": "dist_ts/index.d.ts", + "type": "module", + "bin": { + "gitzone": "./cli.js", + "gzone": "./cli.js" + }, + "scripts": { + "test": "(npm run clean && npm run prepareTest && npm run testCli && npm run testCommit && npm run testDeprecate && npm run testVersion && npm run testReadme && npm run testFormat && npm run testUpdate && npm run testTemplateNpm && npm run testTemplateLit) && rm -rf test", + "build": "(tsbuild --web --allowimplicitany)", + "clean": "(rm -rf test/)", + "prepareTest": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)", + "testBuild": "npm run build && rm -r dist/", + "testCli": "(cd test && node ../cli.ts.js)", + "testCommit": "(cd test && node ../cli.ts.js commit)", + "testDeprecate": "(cd test && node ../cli.ts.js deprecate)", + "testOpen": "(cd test && node ../cli.ts.js open ci)", + "testReadme": "(cd test && node ../cli.ts.js readme)", + "testFormat": "(cd test && node ../cli.ts.js format)", + "testTemplateNpm": "(rm -rf test/testtemplate_npm/ && mkdir test/testtemplate_npm && cd test/testtemplate_npm && node ../../cli.ts.js template npm)", + "testTemplateLit": "(rm -rf test/testtemplate_lit/ && mkdir test/testtemplate_lit && cd test/testtemplate_lit && node ../../cli.ts.js template lit)", + "testUpdate": "(cd test && node ../cli.ts.js update)", + "testVersion": "(cd test && node ../cli.ts.js -v)", + "buildDocs": "tsdoc" + }, + "repository": { + "type": "git", + "url": "git+https://gitlab.com/gitzone/private/gitzone.git" + }, + "keywords": [ + "CLI", + "development", + "git", + "npm", + "TypeScript", + "automation", + "project setup", + "code formatting", + "template creation", + "logging", + "meta project management" + ], + "author": "Task Venture Capital GmbH", + "license": "MIT", + "bugs": { + "url": "https://gitlab.com/gitzone/private/gitzone/issues" + }, + "homepage": "https://gitlab.com/gitzone/private/gitzone#readme", + "devDependencies": { + "@git.zone/tsbuild": "^2.1.80", + "@git.zone/tsrun": "^1.2.46", + "@git.zone/tstest": "^1.0.90", + "@types/node": "^20.14.7" + }, + "dependencies": { + "@push.rocks/commitinfo": "^1.0.11", + "@push.rocks/early": "^4.0.4", + "@push.rocks/gulp-function": "^3.0.7", + "@push.rocks/lik": "^6.0.15", + "@push.rocks/npmextra": "^5.0.23", + "@push.rocks/projectinfo": "^5.0.2", + "@push.rocks/smartchok": "^1.0.34", + "@push.rocks/smartcli": "^4.0.11", + "@push.rocks/smartdelay": "^3.0.5", + "@push.rocks/smartfile": "^11.0.20", + "@push.rocks/smartgulp": "^3.0.4", + "@push.rocks/smartinteract": "^2.0.15", + "@push.rocks/smartjson": "^5.0.20", + "@push.rocks/smartlegal": "^1.0.27", + "@push.rocks/smartlog": "^3.0.7", + "@push.rocks/smartlog-destination-local": "^9.0.2", + "@push.rocks/smartmustache": "^3.0.2", + "@push.rocks/smartnpm": "^2.0.4", + "@push.rocks/smartobject": "^1.0.12", + "@push.rocks/smartopen": "^2.0.0", + "@push.rocks/smartpath": "^5.0.18", + "@push.rocks/smartpromise": "^4.0.3", + "@push.rocks/smartscaf": "^4.0.15", + "@push.rocks/smartshell": "^3.0.5", + "@push.rocks/smartstream": "^3.0.44", + "@push.rocks/smartunique": "^3.0.9", + "@push.rocks/smartupdate": "^2.0.6", + "@types/through2": "^2.0.41", + "prettier": "^3.3.2", + "through2": "^4.0.2" + }, + "files": [ + "ts/**/*", + "ts_web/**/*", + "dist/**/*", + "dist_*/**/*", + "dist_ts/**/*", + "dist_ts_web/**/*", + "assets/**/*", + "cli.js", + "npmextra.json", + "readme.md" + ], + "browserslist": [ + "last 1 chrome versions" + ] +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..8ea778b --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,8027 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@push.rocks/commitinfo': + specifier: ^1.0.11 + version: 1.0.11 + '@push.rocks/early': + specifier: ^4.0.4 + version: 4.0.4 + '@push.rocks/gulp-function': + specifier: ^3.0.7 + version: 3.0.7 + '@push.rocks/lik': + specifier: ^6.0.15 + version: 6.0.15 + '@push.rocks/npmextra': + specifier: ^5.0.23 + version: 5.0.23 + '@push.rocks/projectinfo': + specifier: ^5.0.2 + version: 5.0.2 + '@push.rocks/smartchok': + specifier: ^1.0.34 + version: 1.0.34 + '@push.rocks/smartcli': + specifier: ^4.0.11 + version: 4.0.11 + '@push.rocks/smartdelay': + specifier: ^3.0.5 + version: 3.0.5 + '@push.rocks/smartfile': + specifier: ^11.0.20 + version: 11.0.20 + '@push.rocks/smartgulp': + specifier: ^3.0.4 + version: 3.0.4 + '@push.rocks/smartinteract': + specifier: ^2.0.15 + version: 2.0.15 + '@push.rocks/smartjson': + specifier: ^5.0.20 + version: 5.0.20 + '@push.rocks/smartlegal': + specifier: ^1.0.27 + version: 1.0.27 + '@push.rocks/smartlog': + specifier: ^3.0.7 + version: 3.0.7 + '@push.rocks/smartlog-destination-local': + specifier: ^9.0.2 + version: 9.0.2 + '@push.rocks/smartmustache': + specifier: ^3.0.2 + version: 3.0.2 + '@push.rocks/smartnpm': + specifier: ^2.0.4 + version: 2.0.4 + '@push.rocks/smartobject': + specifier: ^1.0.12 + version: 1.0.12 + '@push.rocks/smartopen': + specifier: ^2.0.0 + version: 2.0.0 + '@push.rocks/smartpath': + specifier: ^5.0.18 + version: 5.0.18 + '@push.rocks/smartpromise': + specifier: ^4.0.3 + version: 4.0.3 + '@push.rocks/smartscaf': + specifier: ^4.0.15 + version: 4.0.15 + '@push.rocks/smartshell': + specifier: ^3.0.5 + version: 3.0.5 + '@push.rocks/smartstream': + specifier: ^3.0.44 + version: 3.0.44 + '@push.rocks/smartunique': + specifier: ^3.0.9 + version: 3.0.9 + '@push.rocks/smartupdate': + specifier: ^2.0.6 + version: 2.0.6 + '@types/through2': + specifier: ^2.0.41 + version: 2.0.41 + prettier: + specifier: ^3.3.2 + version: 3.3.2 + through2: + specifier: ^4.0.2 + version: 4.0.2 + devDependencies: + '@git.zone/tsbuild': + specifier: ^2.1.80 + version: 2.1.80 + '@git.zone/tsrun': + specifier: ^1.2.46 + version: 1.2.46(@types/node@20.14.7) + '@git.zone/tstest': + specifier: ^1.0.90 + version: 1.0.90(@types/node@20.14.7) + '@types/node': + specifier: ^20.14.7 + version: 20.14.7 + +packages: + + '@api.global/typedrequest-interfaces@2.0.2': + resolution: {integrity: sha512-D+mkr4IiUZ/eUgrdp5jXjBKOW/iuMcl0z2ZLQsLLypKX/psFGD3viZJ58FNRa+/1OSM38JS5wFyoWl8oPEFLrw==} + + '@api.global/typedrequest-interfaces@3.0.19': + resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==} + + '@api.global/typedrequest@3.0.30': + resolution: {integrity: sha512-Pp3KVr8QHZ/44u2GE9r8JpWbs5yxA+CZLwxXXcrOBnmJ2Pkp+5PWtO7QZbqnshWAdMTJTYD+nXwlqO0XiPiWGg==} + + '@api.global/typedserver@3.0.50': + resolution: {integrity: sha512-WWZhLVcjqfJO3kq5RB/kYrss7hIiu3yBqBVA/o9cn7jwu3XHaC2DrT/HC7LrcKm1hndk0XbKMgBEb2orSaVl3g==} + + '@api.global/typedsocket@3.0.1': + resolution: {integrity: sha512-xojiAVNXtHoxkpBo8U2HHJG8FrVXXuLvDNndSHXwx4C9VslUwDn5zSCI+PdBl8iAg+ZuBmKjqkpZZ9sL6DC5yQ==} + + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.23.4': + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + engines: {node: '>=6.9.0'} + + '@cloudflare/workers-types@4.20240620.0': + resolution: {integrity: sha512-CQD8YS6evRob7LChvIX3gE3zYo0KVgaLDOu1SwNP1BVIS2Sa0b+FC8S1e1hhrNN8/E4chYlVN+FDAgA4KRDUEQ==} + + '@configvault.io/interfaces@1.0.17': + resolution: {integrity: sha512-bEcCUR2VBDJsTin8HQh8Uw/mlYl2v8A3jMIaQ+MTB9Hrqd6CZL2dL7iJdWyFl/3EIX+LDxWFR+Oq7liIq7w+1Q==} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@design.estate/dees-comms@1.0.27': + resolution: {integrity: sha512-GvzTUwkV442LD60T08iqSoqvhA02Mou5lFvvqBPc4yBUiU7cZISqBx+76xvMgMIEI9Dx9JfTl4/2nW8MoVAanw==} + + '@design.estate/dees-domtools@2.0.57': + resolution: {integrity: sha512-sA27nOl+vdY3hR0Y/QPs4wtUJU15W34CeMshjWModUtm7WgogJgAhbHHY+I38yf3gwvBFfFkBZHo/GL9l/lR2A==} + + '@designestate/dees-element@2.0.23': + resolution: {integrity: sha512-TcDp9tAk7n65LwEX1oyMvG+g6g9+dWlOHea7G+k+HGNBAoGnSDrHhe9M/zAmxNVnQ08O/opgxiIgdr3viouTWA==} + deprecated: This package has been deprecated in favour of the new package at @design.estate/dees-element + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esm-bundle/chai@4.3.4-fix.0': + resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==} + + '@git.zone/tsbuild@2.1.80': + resolution: {integrity: sha512-jAChzcBFhzDKN32TzZv94l0/zegMoJnq9fvdiWV0lysRAHUjQttgwY0dFndGy3VUdlO27r0VgkNZOjiU1eB0Jg==} + hasBin: true + + '@git.zone/tsbundle@2.0.15': + resolution: {integrity: sha512-ZrPkScaBQ7hHx6BUchRFfPB9tvb7RlNXwjk9qjkp6AcBcF38JgLcu/UDKDqRsuaFJpkK9oclyhA5bDA7SjXWZg==} + hasBin: true + + '@git.zone/tsrun@1.2.46': + resolution: {integrity: sha512-8miFVBle9Mnjx+uPGI/P+EuWcIOXWjBAkdjN5IYbdp5Ytt4xQODCLh4JSnC9h56UeU1nUxCAxZeJs2e9TXrivA==} + hasBin: true + + '@git.zone/tstest@1.0.90': + resolution: {integrity: sha512-McytXK46GiReEps7wHWW6zOHYCFF4sywjj6auHjhGqzOogA2Wju1YtZRL+o+OAUb61kQxNFRras6Xg/4Zth0Bw==} + hasBin: true + + '@hapi/bourne@3.0.0': + resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} + + '@happy-dom/global-registrator@8.9.0': + resolution: {integrity: sha512-Kw/YMNv1kmH862kQUzXM6K0Y4AW5b0I/+2EIopVc7edurBwY8LHSKd5gJzEEQvdgapSeDJowhOCgL0tkhJWi4A==} + + '@inquirer/figures@1.0.3': + resolution: {integrity: sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==} + engines: {node: '>=18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + + '@lit-labs/ssr-dom-shim@1.2.0': + resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + + '@lit/reactive-element@1.6.3': + resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} + + '@lit/reactive-element@2.0.4': + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + + '@ljharb/through@2.3.13': + resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} + engines: {node: '>= 0.4'} + + '@mixmark-io/domino@2.2.0': + resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@open-wc/dedupe-mixin@1.4.0': + resolution: {integrity: sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==} + + '@open-wc/scoped-elements@3.0.5': + resolution: {integrity: sha512-q4U+hFTQQRyorJILOpmBm6PY2hgjCnQe214nXJNjbJMQ9EvT55oyZ7C8BY5aFYJkytUyBoawlMpZt4F2xjdzHw==} + + '@open-wc/semantic-dom-diff@0.20.1': + resolution: {integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==} + + '@open-wc/testing-helpers@3.0.1': + resolution: {integrity: sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==} + + '@open-wc/testing@4.0.0': + resolution: {integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==} + + '@pdf-lib/standard-fonts@1.0.0': + resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} + + '@pdf-lib/upng@1.0.1': + resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.2.2': + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + + '@push.rocks/commitinfo@1.0.11': + resolution: {integrity: sha512-xERmtzWN6po7DrWlk1xZVSyaD5m0YrJUqlaevQ+/PdH2gsbasguEuYfSdEiozgGI3f87jU/0jhx2GjlRRUG61g==} + + '@push.rocks/consolecolor@2.0.2': + resolution: {integrity: sha512-IBwxCLX+YF3f5wB2N4LfuvFqm9WPlBMiEeSAfjN8YQCyYec6u1hlrR3EIj8vT300pppjeGrybJHK+GyjdGXZJw==} + + '@push.rocks/early@4.0.4': + resolution: {integrity: sha512-ak6/vqZ1PlFV08fSFQ6UwiBrr+K6IsfieZWWzT7eex1Ls6GvWEi8wZ3REFDPJq/qckNLWSgEy0EsqzRtltkaCA==} + + '@push.rocks/gulp-function@3.0.7': + resolution: {integrity: sha512-jmGrCItaDU0vEWNWzGQxKJmSc7c66YS5qNJ5TRPOfmSAZekcucDcGoI0XBOvirX+/sb7SZWsK6/3Qo3wweNnUg==} + + '@push.rocks/isohash@2.0.1': + resolution: {integrity: sha512-UulhEui8O9Ei9fSqTldsB73TUmAFNqEBk82tHsJSLLpNK9gJZQE82iaSNsQUakoUQ2c9KueueMfwC3IoDaYRrQ==} + + '@push.rocks/isounique@1.0.5': + resolution: {integrity: sha512-Z0BVqZZOCif1THTbIKWMgg0wxCzt9CyBtBBqQJiZ+jJ0KlQFrQHNHrPt81/LXe/L4x0cxWsn0bpL6W5DNSvNLw==} + + '@push.rocks/levelcache@3.0.8': + resolution: {integrity: sha512-32EhEEwUM6CtOxKGOkrdbzWKRA/wJ5R/XmkX0hywQcVIPJEB6nsXa2JpvDFEhdEk8VweJ84RD+5bz18u+5RlVw==} + + '@push.rocks/lik@6.0.15': + resolution: {integrity: sha512-rZxln6l4NAU931MTxnsjy1pue+S3AXtDCidHH/tbkqBtrWIzWuXduo6Nz3zYkndbD64Knyta7F60JRvcOe4XqA==} + + '@push.rocks/npmextra@3.0.14': + resolution: {integrity: sha512-ZxPVgdgyE14cbKgwsG2H6T5+Wv9yqRZDUeXLz52bN+nnJy29pDIR6qMOBhSSTU46RT739FELwRIs749yRbhR8w==} + + '@push.rocks/npmextra@5.0.23': + resolution: {integrity: sha512-12+w6R0XO1pE8xeQUBWyVZp4Ovxkphe4kG5li8uh6hKbRhWwRVow6ilnBqeMb3lZKd9BvESyU2qschiE9Q4vaQ==} + + '@push.rocks/projectinfo@5.0.2': + resolution: {integrity: sha512-zzieCal6jwR++o+fDl8gMpWkNV2cGEsbT96vCNZu/H9kr0iqRmapOiA4DFadkhOnhlDqvRr6TPaXESu2YUbI8Q==} + + '@push.rocks/qenv@6.0.5': + resolution: {integrity: sha512-Id/eSKKqSDUGe+0Cp5HEJ58J1iVv1jQseLUMs9kFTPYwG+NJSETUCRsJV50w5cPv8bRFcSkSU+xVbUbOc1p29A==} + + '@push.rocks/smartarchive@3.0.8': + resolution: {integrity: sha512-1jPmR0b7hXmjYQoRiTlRXrIbZcdcFmSdGOfznufjcDpGPe86Km0d8TBnzqghTx4dTihzKC67IxAaz/DM3lvxpA==} + + '@push.rocks/smartbrowser@2.0.6': + resolution: {integrity: sha512-Ne+KCVhV/DROc1rHRRw59K6h0+LpQAK9fdOUtgDZ7laLPmB/tmnbUh3IuRDNcIY1iVA9pydoobwjnTjVgio9eQ==} + + '@push.rocks/smartbucket@2.0.4': + resolution: {integrity: sha512-nRJq0JZaj4q55alDpJxcDpYtfydIEGab9Qcx+L+O1pwimH7TcQBZnDsJdMejYw20kKztDiVT70NgWi4BdHobzQ==} + + '@push.rocks/smartbuffer@3.0.4': + resolution: {integrity: sha512-TLfhx/JD61YC8XGO9TI6Ux6US38R14HaIM84QT8hZZod8axfXrg+h8xA8tMUBpSV8PXsQy9LzxmOq0Il1fmDXw==} + + '@push.rocks/smartcache@1.0.16': + resolution: {integrity: sha512-UAXf74eDuH4/RebJhydIbHlYVR3ACYJjniEY/9ZePblu7bIPgwFZqLBE9g1lcKVogbH9yY62dk3rSpgBzenyfQ==} + + '@push.rocks/smartchok@1.0.34': + resolution: {integrity: sha512-YzFjUbyzYREFDc4khcySObLzB21R98yIRFvpu3cB2kRmhEfVD2IEO6Wzp4aWFMhkq5A/dDBJRNmRPtgMVGNqKA==} + + '@push.rocks/smartcli@4.0.11': + resolution: {integrity: sha512-KDWfUqWBoUZsOEtsDx36d6qc8GG7Zo5E+HHamYY68KVDO8BMu6jbBucoUUPDksczLEmbXKLmroBP1mn/xozQOA==} + + '@push.rocks/smartdelay@3.0.5': + resolution: {integrity: sha512-mUuI7kj2f7ztjpic96FvRIlf2RsKBa5arw81AHNsndbxO6asRcxuWL8dTVxouEIK8YsBUlj0AsrCkHhMbLQdHw==} + + '@push.rocks/smartenv@5.0.12': + resolution: {integrity: sha512-tDEFwywzq0FNzRYc9qY2dRl2pgQuZG0G2/yml2RLWZWSW+Fn1EHshnKOGHz8o77W7zvu4hTgQQX42r/JY5XHTg==} + + '@push.rocks/smartevent@2.0.5': + resolution: {integrity: sha512-aU1hEoiMv8qDs+b3ln6e6GseyqM8sSqkGxhNTteLM6ve5dmTofnAdQ/tXshYNUUg2kPqi4ohcuf1/iACwjXNHw==} + + '@push.rocks/smartexit@1.0.23': + resolution: {integrity: sha512-WmwKYcwbHBByoABhHHB+PAjr5475AtD/xBh1mDcqPrFsOOUOZq3BBUdpq25wI3ccu/SZB5IwaimiVzadls6HkA==} + + '@push.rocks/smartexpect@1.0.21': + resolution: {integrity: sha512-SelJxXMYeF5VEZk0oPgcjTCM2D7vqOTUgVX/vnnGxZAl9d068LD12/BWLwKCEp0dsV3NT8rBuXJTFPZYjdsApg==} + + '@push.rocks/smartfeed@1.0.11': + resolution: {integrity: sha512-02uhXxQamgfBo3T12FsAdfyElnpoWuDUb08B2AE60DbIaukVx/7Mi17xwobApY1flNSr5StZDt8N8vxPhBhIXw==} + + '@push.rocks/smartfile-interfaces@1.0.7': + resolution: {integrity: sha512-MeOl/200UOvSO4Pgq/DVFiBVZpL9gjOBQM+4XYNjSxda8c6VBvchHAntaFLQUlO8U1ckNaP9i+nMO4O4/0ymyw==} + + '@push.rocks/smartfile@10.0.41': + resolution: {integrity: sha512-xOOy0duI34M2qrJZggpk51EHGXmg9+mBL1Q55tNiQKXzfx89P3coY1EAZG8tvmep3qB712QEKe7T+u04t42Kjg==} + + '@push.rocks/smartfile@11.0.20': + resolution: {integrity: sha512-gJERlNE2fNah9HLq6W3srcl1GZwlz2vFVZRmb50TQLabmWF4qyTlaMYAwY8ffgf8np4TsHAa4s+kL5F0zUfUUg==} + + '@push.rocks/smartfm@2.0.4': + resolution: {integrity: sha512-5cDSW/+85mI+9lVkiivQKfq+HHdbXz+Vv8rKYX6/4yNpyJup+0YDlrtqnCXSp683cJd/gfGLVX/eNN9LIGe4Nw==} + + '@push.rocks/smartguard@3.0.2': + resolution: {integrity: sha512-9TuYPSRxNj0DS84d5ZvSARXRehVCqVq7nC85o/p58kb3aeRtY0A6Hz9dtSdFjEvprEBCqEEzdmiFlNsNYBpwbQ==} + + '@push.rocks/smartgulp@3.0.4': + resolution: {integrity: sha512-RjMxhmELaG+OBeqQQ3xCgrBpslbpWiP523stCJ393B3Xg2E7mkzsOU4x7weJWyUw/G5SqotnaYXGj94WH8Yqtg==} + + '@push.rocks/smarthash@3.0.4': + resolution: {integrity: sha512-HJ/fSx41jm0CvSaqMLa6b2nuNK5rHAqAeAq3dAB7Sq9BCPm2M0J5ZVDTzEAH8pS91XYniUiwuE0jwPERNn9hmw==} + + '@push.rocks/smarthbs@3.0.3': + resolution: {integrity: sha512-HSfoVZSTFP8/eT5t3gU+GRu63KznVe/B12EqDDCbdkgoCnaYzAXzvVqTAn8yZXM6HIjGz1PY/LEdeFTC9xv5tQ==} + + '@push.rocks/smartinteract@2.0.15': + resolution: {integrity: sha512-x+fsvGPjwTwCooL83ygNT4DTPOr38eP2k2n33//HCRvBlXsdyR2qmrFwMTg5y38641k8VeBTdbnDoJ/xgv+/RA==} + + '@push.rocks/smartjson@5.0.20': + resolution: {integrity: sha512-ogGBLyOTluphZVwBYNyjhm5sziPGuiAwWihW07OSRxD4HQUyqj9Ek6r1pqH07JUG5EbtRYivM1Yt1cCwnu3JVQ==} + + '@push.rocks/smartlegal@1.0.27': + resolution: {integrity: sha512-0LjSY5pc2ljvR4PST0l1mvrB27Cj9NqpDDYf8eo9kgtgsb5m4Te+ZIzVnAj8W9P/uXJOLTOXt2OLKH4z6RGw6g==} + + '@push.rocks/smartlog-destination-devtools@1.0.12': + resolution: {integrity: sha512-zvsIkrqByc0JRaBgIyhh+PSz2SY/e/bmhZdUcr/OW6pudgAcqe2sso68EzrKux0w9OMl1P9ZnzF3FpCZPFWD/A==} + + '@push.rocks/smartlog-destination-local@9.0.2': + resolution: {integrity: sha512-htzIY+4+hU61Z2J4Oz+IHnAB3RGe+fpS0VKCKnAoppZqzMWnJ3UOgYIyr4djDBy2WtgpXV/16KdisKrOmwuuvw==} + + '@push.rocks/smartlog-interfaces@3.0.2': + resolution: {integrity: sha512-8hGRTJehbsFSJxLhCQkA018mZtXVPxPTblbg9VaE/EqISRzUw+eosJ2EJV7M4Qu0eiTJZjnWnNLn8CkD77ziWw==} + + '@push.rocks/smartlog@3.0.7': + resolution: {integrity: sha512-WHOw0iHHjCEbYY4KGX40iFtLI11QJvvWIbC9yFn3Mt+nrdupMnry7Ztc5v/PqO8lu33Q6xDBMXiNQ9yNY0HVGw==} + + '@push.rocks/smartmanifest@2.0.2': + resolution: {integrity: sha512-QGc5C9vunjfUbYsPGz5bynV/mVmPHkrQDkWp8ZO8VJtK1GZe+njgbrNyxn2SUHR0IhSAbSXl1j4JvBqYf5eTVg==} + + '@push.rocks/smartmarkdown@3.0.3': + resolution: {integrity: sha512-9KhKZxDQKPk4P/2CYdVqJa5dpGfTA8w1cxqoVZL3e8RPA7EGxbdYEqMp0n2d9mth0btk/m0KHHV+G09LfCVeBw==} + + '@push.rocks/smartmatch@2.0.0': + resolution: {integrity: sha512-MBzP++1yNIBeox71X6VxpIgZ8m4bXnJpZJ4nWVH6IWpmO38MXTu4X0QF8tQnyT4LFcwvc9iiWaD15cstHa7Mmw==} + + '@push.rocks/smartmime@1.0.6': + resolution: {integrity: sha512-PHd+I4UcsnOATNg8wjDsSAmmJ4CwQFrQCNzd0HSJMs4ZpiK3Ya91almd6GLpDPU370U4HFh4FaPF4eEAI6vkJQ==} + + '@push.rocks/smartmime@2.0.2': + resolution: {integrity: sha512-aXH1sFD73q9cEwPdeSeN7Zxd2aoVt9wE97ILFCW5gORylvm85Hgfq7SYkqykjQzEL8IDJKJF3G78+xcL2rALTg==} + + '@push.rocks/smartmustache@3.0.2': + resolution: {integrity: sha512-G3LyRXoJhyM+iQhkvP/MR/2WYMvC9U7zc2J44JxUM5tPdkQ+o3++FbfRtnZj6rz5X/A7q03//vsxPitVQwoi2Q==} + + '@push.rocks/smartnetwork@3.0.2': + resolution: {integrity: sha512-s6CNGzQ1n/d/6cOKXbxeW6/tO//dr1woLqI01g7XhqTriw0nsm2G2kWaZh2J0VOguGNWBgQVCIpR0LjdRNWb3g==} + + '@push.rocks/smartnpm@2.0.4': + resolution: {integrity: sha512-ljRPqnUsXzL5qnuAEt5POy0NnfKs7eYPuuJPJjYiK9VUdP/CyF4h14qTB4H816vNEuF7VU/ASRtz0qDlXmrztg==} + + '@push.rocks/smartntml@2.0.4': + resolution: {integrity: sha512-cO1190fQsGZu5ycar1C6i7gCC16y/ywc8Ipn+aTKpDMMLO2HMuCvTurMBgjT0NeD8ZEXjc/yZ7n0m3KTxw6NSg==} + + '@push.rocks/smartobject@1.0.12': + resolution: {integrity: sha512-xSMiqXiZXXUOixT3QIPsOUKOWjL3YA/1h9/YTiCzqs5C0D3tyfTbojnfcp6YbKZoBzans2I5LghaDHsGid2DKQ==} + + '@push.rocks/smartopen@2.0.0': + resolution: {integrity: sha512-eVT0GhtQ2drb95j/kktYst/Toh1zCwCqjTJFYtaYFUnnBnBUajPtBZDFnPQo01DN8JxoeCTo8jggq+PCvzcfww==} + + '@push.rocks/smartparam@1.1.10': + resolution: {integrity: sha512-2WDAUtc7GH+E0QszsiuXRdLPnJ/edlS2zPtFgfNpA0LJ8tJ5J9lyx6zhM39k4rKzKtK7bnjWHDb2tHE9zaOBYw==} + deprecated: deprecated in favour of @push.rocks/smartobject + + '@push.rocks/smartpath@5.0.18': + resolution: {integrity: sha512-kIyRTlOoeEth5b4Qp8KPUxNOGNdvhb2aD0hbHfF3oGTQ0xnDdgB1l03/4bIoapHG48OrTgh4uQ5tUorykgdOzw==} + + '@push.rocks/smartpdf@3.1.6': + resolution: {integrity: sha512-mnmqAKykgO10sF4hltQGhES9yoO7H5hoRKvqynPF5JsAK/YpdpdbAdn/KIKvlxoZD150LoCsj+RF3dqCucNoAA==} + + '@push.rocks/smartpnpm@1.0.6': + resolution: {integrity: sha512-AD0U4n53LBdBnj9MXAMF7cAqjyE0j3xbTH7Bd1v5ywjt3aFOJockAwDBOP+3dEK1QUHM17p+VP9HdX1faTCtzw==} + + '@push.rocks/smartpromise@4.0.3': + resolution: {integrity: sha512-z3lIso4/6KK3c6NFTVGZ7AOBsGURf8ha3qQtX/OxjZFk5dqS//8PLd0XqghVdIaUlRGmJ7Sfds/efZERWn1tAg==} + + '@push.rocks/smartpuppeteer@2.0.2': + resolution: {integrity: sha512-EcYCT0PX++WjfHp7W5UYX3t8x5gSNpJMMUvhA7SHz8b2t76ItslNWxprRcF0CUQyN1fozbf5StZf7dwdGc/dIA==} + + '@push.rocks/smartrequest@2.0.22': + resolution: {integrity: sha512-EfgmdEsLtDJ8aNOLOh59ca1NMsiiFz54aoHRigQFQ0cuoUs6phxejIY2FdMoPFn68ubTpkztdL2P4L1/cRYyHg==} + + '@push.rocks/smartrouter@1.0.16': + resolution: {integrity: sha512-GsEv6paOuIbC3vkIS5LxNroK68mNygB+oSDJRaUOE8/OCJLk0aPfI579nEiuXP/DkGjC1SjQ2bUWc3BTaUM3GQ==} + + '@push.rocks/smartrx@3.0.7': + resolution: {integrity: sha512-qCWy0s3RLAgGSnaw/Gu0BNaJ59CsI6RK5OJDCCqxc7P2X/S755vuLtnAR5/0dEjdhCHXHX9ytPZx+o9g/CNiyA==} + + '@push.rocks/smartscaf@4.0.15': + resolution: {integrity: sha512-bkCCTMyo+d8fsma83yG8aMSTTdE4l3pT1DVZTAQHtvdE94RRwul9flZoX6cEEv96kPn9s6yUqULdWKXPMkvcrA==} + + '@push.rocks/smartshell@3.0.5': + resolution: {integrity: sha512-kHh86kpkrXHM/xgftcFQ2psU+DJrINzbeD1gIKR/I6cEXjWyYfs+I6UnFMhY3Bcpx9FdTElpRy5qVsumWURQSw==} + + '@push.rocks/smartsitemap@2.0.3': + resolution: {integrity: sha512-jIcms8V1b2mt3dS4PKNlLR1DRC8pCDWMRVbnyM/2+snZOJZonQRlQzAyX8No0EfLbfdrfnxv2IjPX13X29Re6g==} + + '@push.rocks/smartsocket@2.0.27': + resolution: {integrity: sha512-planM3EkBvx/+guLLWHLBNnNp4mcWDwp1k9G0It0ul7IhdaBQsSWzKSQJxym3Bx2dypgA2UIeT3/hRvSa5Nqdw==} + + '@push.rocks/smartspawn@3.0.3': + resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==} + + '@push.rocks/smartstate@2.0.17': + resolution: {integrity: sha512-ucx0zq8gWL3MuN4ogibUiGJlEH0of9WyDfxu+4pQySEdaZBJw0/UFkBM8wButkj0dF8w4wsVMN4YwZAdVqsAXg==} + + '@push.rocks/smartstream@2.0.8': + resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==} + + '@push.rocks/smartstream@3.0.44': + resolution: {integrity: sha512-BZwSUmhVD/CEzRdG/e2UachlyNjshiknqBnwHzIFPIjVKC66UgWX5lYCs2LOwJtuUEpfL1vTMOAYUFNcmPjW9A==} + + '@push.rocks/smartstring@4.0.15': + resolution: {integrity: sha512-NTNeOjWyg+aHtBTiQEyXamr7oTvYZ3wS1fudHo9ua7CLrykpK+i+RxFyJaLg1zB5x9xQF3NLEQecB14HPFX8Cg==} + + '@push.rocks/smarttime@4.0.6': + resolution: {integrity: sha512-1whOow0YJw/TbN758TedRRxApoZbsvyxCVpoGjXh7DE/fEEgs7RCr4vVF5jYpyXNQuNMLpKJcTsSfyQ6RvH4Aw==} + + '@push.rocks/smartunique@3.0.9': + resolution: {integrity: sha512-q6DYQgT7/dqdWi9HusvtWCjdsFzLFXY9LTtaZV6IYNJt6teZOonoygxTdNt9XLn6niBSbLYrHSKvJNTRH/uK+g==} + + '@push.rocks/smartupdate@2.0.6': + resolution: {integrity: sha512-SGom+wy6MlBBbalrOiw2UnS67Gx8Y7WDN1qzpswwnuWxdebbVyatkhmHV+GcKZ0QtO52NJzQU5o4ZQHW6QEDFg==} + + '@push.rocks/smarturl@3.0.7': + resolution: {integrity: sha512-nx4EWjQD9JeO7QVbOsxd1PFeDQYoSQOOOYCZ+r7QWXHLJG52iYzgvJDCQyX6p705HDkYMJWozW2ZzhR22qLKbw==} + + '@push.rocks/smartversion@3.0.5': + resolution: {integrity: sha512-8MZSo1yqyaKxKq0Q5N188l4un++9GFWVbhCAX5mXJwewZHn97ujffTeL+eOQYpWFTEpUhaq1QhL4NhqObBCt1Q==} + + '@push.rocks/smartxml@1.0.8': + resolution: {integrity: sha512-idrPsBj9t6oxkLZJZgWtyZK6PnQ5BVDbBErk0UfGanXgSWJc+ZEKNYjVqr850+Na3+y0CT6AQdug7pnaokygwg==} + + '@push.rocks/smartyaml@2.0.5': + resolution: {integrity: sha512-tBcf+HaOIfeEsTMwgUZDtZERCxXQyRsWO8Ar5DjBdiSRchbhVGZQEBzXswMS0W5ZoRenjgPK+4tPW3JQGRTfbg==} + + '@push.rocks/tapbundle@5.0.23': + resolution: {integrity: sha512-csiHxdmh5Hwf4FI94gUnPgWG+DjjEt1xffa7eLyBN3++Jvt3aSNeBsQh74YF2n6/f8q7dcb59TMYTksilU8iJg==} + + '@push.rocks/taskbuffer@3.1.7': + resolution: {integrity: sha512-QktGVJPucqQmW/QNGnscf4FAigT1H7JWKFGFdRuDEaOHKFh9qN+PXG3QY7DtZ4jfXdGLxPN4yAufDuPSAJYFnw==} + + '@push.rocks/webrequest@3.0.37': + resolution: {integrity: sha512-fLN7kP6GeHFxE4UH4r9C9pjcQb0QkJxHeAMwXvbOqB9hh0MFNKhtGU7GoaTn8SVRGRMPc9UqZVNwo6u5l8Wn0A==} + + '@push.rocks/websetup@3.0.19': + resolution: {integrity: sha512-iKJDwXdMmQdu5siOIgziPRxM51lN1AU9HOr+yMteu1YMDkZT7HKCyisDAr4gC9WZ9a7FzsG8zgthm4dMeA8NTw==} + + '@push.rocks/webstore@2.0.20': + resolution: {integrity: sha512-Z3L4OHGcw/Gs9aXpMUwebEPTh0nK/C7R6YwPfCLcGVu9yd/ZShaQ8QZEYE243Cu9J1Mn+CEtz4jpPLnHiizHQA==} + + '@push.rocks/webstream@1.0.10': + resolution: {integrity: sha512-45CcR0I4/9v0qSjLvz2dYTGMkR0YP3x66ItpStdad5hidJm86t1lfHF06d0oiEvJTpvQkeyIX/8YKAumf21d/Q==} + + '@pushrocks/isounique@1.0.5': + resolution: {integrity: sha512-XYeoKGkmIdsWX64NlPA1fuA41n/1bQ7LdYXytlU/QqYeW7ojgA0ARRhBSh/2phL6o0Jpw6K/7gJ8jc7ab/Tc+w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/isounique + + '@pushrocks/lik@4.0.22': + resolution: {integrity: sha512-dg6Du7nr/SLU80yJw7a0zk2xX9Vc8SCLZaQMmSRBlsnL1/Z7qpWDOtpRC9VlL9vTLenbvwGTvPWMpOKyyNbiiA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik + + '@pushrocks/lik@5.0.7': + resolution: {integrity: sha512-fIxcrafl127+yErfedIurafCbiY2VwuuMlbNLjKrMKnFswol4y/anjXVRZ4euWUBck0KOfnBB0VuutcmlfYUqA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik + + '@pushrocks/lik@6.0.2': + resolution: {integrity: sha512-jO85PCb4gULfZbLoVpXb9HIR9Wgoigq6Zjcp1JqHOgM4KB38IZrU+HPWPWWMErAOOQmmYvVCdl4gkrkO/Rzn4w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik + + '@pushrocks/projectinfo@5.0.1': + resolution: {integrity: sha512-kJyjOJGEWdV6n+mC2hB9MlPlivDOLv7a6KlENLvPgW2pBiTskF7BvsAOeZqdE2xrHSW7Y5NX0lqWYOrkDyxa5g==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/projectinfo + + '@pushrocks/smartdelay@2.0.13': + resolution: {integrity: sha512-s6Wh0BHWMfZ5VYONQwpxOYX1JeC9RKA0O9TxEzfZ6FCw2oNQb2QUPCixT9rsceKwva4+atKRw/RfU+Z7aJDmsA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay + + '@pushrocks/smartdelay@3.0.1': + resolution: {integrity: sha512-I+i/QhC6kLsXsWyW19UgD1vH2r1YWVxK19VMxt2CEuvxMyC6tuCd0vqud9vv5JxaxsJwxWlOsrURkgL4tXeILQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay + + '@pushrocks/smartenv@5.0.5': + resolution: {integrity: sha512-VWON1OJ4qV2/9hzJbgRquRekaO9am3b8W82tgCwgO6LBg23ea2tanfd+gESVMbRFduxHVoFLvlhSBcDGM5zsLA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartenv + + '@pushrocks/smarterror@2.0.1': + resolution: {integrity: sha512-3OrF5me+/sy5VgwR/tfCqs7qhb0Ywzgn8tTThRUZnCGas0aindISzMiW7cIro3RlFykmtPmdTztC9Ostu2ioeA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarterror + + '@pushrocks/smartexit@1.0.20': + resolution: {integrity: sha512-u/KgA7s2zAtZ7gZvL13HZbO3mZATvjfCLU8Ez6h8VweG8UsIBVaPfYziMDCmJOWIPYLGzEW8eG/u4mCHuyLBow==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartexit + + '@pushrocks/smartfile-interfaces@1.0.7': + resolution: {integrity: sha512-C/v9Scbx1J+ByMk3YBZrlLRYXdObty/Uz/h6kSZqsO8ghYuT9l7OVpEcyduiSVPakaMi6YnzfME3Nfs3oLj//Q==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartfile-interfaces + + '@pushrocks/smartfile@10.0.26': + resolution: {integrity: sha512-JAbsVHXCkBoqI+GHN/gnbXji8hztCVlPrri63HQAdx4lS9OyDCdXN2CSbEIBXQIsXFx9ITzx5LZiPq0owbcDpQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartfile + + '@pushrocks/smartfile@9.0.6': + resolution: {integrity: sha512-mXFrnHpM3Eq0MLokGP6DDRTk+v/HDlQwnNq4HFuCqs8YW6uTU/FoRJDnrCAf+spSzkDm0m1ajz/4rke8Dk9l6A==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartfile + + '@pushrocks/smarthash@2.1.10': + resolution: {integrity: sha512-f6lnQPa2lmkSQOMvWwZ6R6wcNvbDWuXH5OhQNvwmog8af3hBEmOEXxjauj6XU+l7ICJ6qxr3wsvpt4y7Ogyc9A==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarthash + + '@pushrocks/smarthash@3.0.2': + resolution: {integrity: sha512-jXW4f8k6iqOQRvkCmXMID1C+qXyNvUMKm7apPETxnO+L172VlzxP1dml0Ey1+vjfpU2luKCteJWX7W95sOdLDg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarthash + + '@pushrocks/smartjson@4.0.6': + resolution: {integrity: sha512-lykr068RSDHs0+EXCvIDVxjKnDtRQ2M7EXOo5jVrUU6/OEdfRl9ErM1K/oPafiEi47/PtTrwLlp1KdSgqkRjmg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartjson + + '@pushrocks/smartjson@5.0.6': + resolution: {integrity: sha512-9OJbnRgLTaCRQz+pqu5tB3ZCqRs5Zh0hnBe7t7URE+TgwIZ8aiELUIbWRkgn4mSGVzHyL6pqTyIowP6AjUCG3w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartjson + + '@pushrocks/smartmatch@1.0.7': + resolution: {integrity: sha512-D+lK5HIKO4Kj1Jm/ycKvy1VzDJ3V6ucHqmf5DMBFdm18BrMj2Zb6M7wN8HUKtkfHvOI7ig85JMuANSEyO7kAPg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmatch + + '@pushrocks/smartmatch@2.0.0': + resolution: {integrity: sha512-PLvBNVeuY9BERNLq3PFDkhnHHc0RpilEGHd4aUI5XRFlZF++LETdLxPbxw+DHbvHlkUf/nep09f7rrL9Tqub1Q==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmatch + + '@pushrocks/smartmime@1.0.5': + resolution: {integrity: sha512-FCRg5p5NFTyZnPsvy2sbheVGz67Zeno7VoZARrcP0O+hFtVPnQKnJ73ze11G+MKZ3dVCmYCh1Li+73R6Lx8XJA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmime + + '@pushrocks/smartpath@4.0.3': + resolution: {integrity: sha512-KWz4DWOrB0sPfk6L4i+CPOo+UK5HXNaLI7ZAaqJe1nEWoDrpyeds1dNDaqVAmSgX4riLGxVpslKH5MnABCPsPg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpath + + '@pushrocks/smartpath@5.0.5': + resolution: {integrity: sha512-t2lXXGMpKnPlwubIcYGD6cGi2CUJxJ3t2yftVt8tHfjX68jELA5sJhFMtyD3AeFZVxePFZOCiHwWEbWkSDNnmw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpath + + '@pushrocks/smartping@1.0.8': + resolution: {integrity: sha512-VM2gfS1sTuycj/jHyDa0lDntkPe7/JT0b2kGsy265RkichAJZkoEp3fboRJH/WAdzM8T4Du64JYgZkc8v2HHQg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartping + + '@pushrocks/smartpromise@3.1.10': + resolution: {integrity: sha512-VeTurbZ1+ZMxBDJk1Y1LV8SN9xLI+oDXKVeCFw41FAGEKOUEqordqFpi6t+7Vhe/TXUZzCVpZ5bXxAxrGf8yTQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise + + '@pushrocks/smartpromise@4.0.2': + resolution: {integrity: sha512-bqorOaGXPOuiOSV81luTKrTghg4O4NBRD0zyv7TIqmrMGf4a0uoozaUMp1X8vQdZW+y0gTzUJP9wkzAE6Cci0g==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise + + '@pushrocks/smartrequest@1.1.56': + resolution: {integrity: sha512-iF6bApmTgd3ZvRK8OHa77UFg8nVZxS1Y6iL8VfHpWOXdSlQZcXo/WbvwxYtu0+wkERAfFtCTGrrLAPGsFm9lhw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrequest + + '@pushrocks/smartrequest@2.0.15': + resolution: {integrity: sha512-QDXXKhOwAIp+TNFrDglApBpbCTClHrf8pUM3w81q5+VtrMbqUrLINHhInXt3ZUSgTS7RD9HtJSIVSqAukcJo5A==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrequest + + '@pushrocks/smartrx@2.0.27': + resolution: {integrity: sha512-aFRpGxDZgHH1mpmkRBTFwuIVqFiDxk22n2vX2gW4hntV0nJGlt9M9dixMFFXGUjabwX9hHW7y60QPJm2rKaypA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrx + + '@pushrocks/smartrx@3.0.2': + resolution: {integrity: sha512-uh2ByyE86Q4f1/rpktR29vAMzHgAvAhFZqbvP6Sme9FK57OZG0mqZxDvJMVNP5O+QOn0Chrbl3BZCuRsFF3NUA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrx + + '@pushrocks/smartshell@2.0.30': + resolution: {integrity: sha512-HPgdTFzfzhk2TQau/jVdYNSANlxyBZdqq2vyZ+bZahegVHfH/27Zur5Fk+2vE16VJjJMqP7zcvDITUe2+ipgJg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartshell + + '@pushrocks/smartstream@2.0.3': + resolution: {integrity: sha512-Zz1amk2FgqWyZFQE8WonKhNMreETm50pqDanp2g9uJBCNwFHIppJD4Qbpy/FFEFfp4Rs326hoBCWbZwU/FEymw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartstream + + '@pushrocks/smartstring@4.0.7': + resolution: {integrity: sha512-TxHSar7Cj29E+GOcIj4DeZKWCNVzHKdqnrBRqcBqLqmeYZvzFosLXpFKoaCJDq7MSxuPoCvu5woSdp9YmPXyog==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartstring + + '@pushrocks/smarttime@3.0.50': + resolution: {integrity: sha512-44NgDuNukCQIlPJFNORcDugp36Yj6HT6eZEWtn4M4HKlTFCQ8De+ztwGg+gRceucJ202zqLRKrXoh8dVdS3BaQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarttime + + '@pushrocks/smarttime@4.0.1': + resolution: {integrity: sha512-5SpUqD3X/2IZCTezCpk48Ss7cDc9QOuQAkeAYnJrRjDL4UCLakA3lBeHXRD/rsIB7S1smtXlayQ/vizfYzdbfw==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarttime + + '@pushrocks/smarturl@2.0.1': + resolution: {integrity: sha512-6KGnf2vHR7hW4mQpAD7gkDVL3QVML3jb/No/Uw+qCqvs0TaQr60Yjm+CXoLxJNCKwmrL+I1yx8mhAHBHfYJiJA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarturl + + '@pushrocks/smarturl@3.0.6': + resolution: {integrity: sha512-YHWnYE1mm8WIJk1usSXg+kNM7s7ByM+PKApO9cgl0T/oGybjzAJiO3clGNDro4ysP0TD+WuvJuiVue02bErEBQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarturl + + '@pushrocks/smartversion@3.0.2': + resolution: {integrity: sha512-6JxwbNzzyy+bdQW+u0Ux5NpBFffvsbfXMlwqTuce6wC+k6+WQTr0tJyHhZ4oAkybNUSFdzV6gvqMlB67+UAZeQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartversion + + '@pushrocks/streamfunction@4.0.4': + resolution: {integrity: sha512-qnGs9cNkUq7nnluQCuX4te+NeB3RoikNNs+kbSCZCSnwYQWvoHXMeobkK8GXAC1bE3kWKAd68ja8cuLvaDebBg==} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@tempfix/idb@8.0.3': + resolution: {integrity: sha512-hPJQKO7+oAIY+pDNImrZ9QAINbz9KmwT+yO4iRVwdPanok2YKpaUxdJzIvCUwY0YgAawlvYdffbLvRLV5hbs2g==} + + '@tempfix/watcher@2.3.0': + resolution: {integrity: sha512-a2qVQffcrnetehvwsN+LdipxQ6jejwZLgAvS9/91+C0gP4CKyikY01c0tSs0I4tSL7qHdCw1Fx0quLw+A9uyLA==} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + + '@tsclass/tsclass@3.0.48': + resolution: {integrity: sha512-hC65UvDlp9qvsl6OcIZXz0JNiWZ0gyzsTzbXpg215sGxopgbkOLCr6E0s4qCTnweYm95gt2AdY95uP7M7kExaQ==} + + '@tsclass/tsclass@4.0.60': + resolution: {integrity: sha512-KAjDnCWShzB3dbnpfoP2xzahH6DYz9c/Jpx31XSyaKGBnBk0T8gj0sPgLuZdBrQv0kxQgiHqfPa98kP1A0pftg==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/accepts@1.3.7': + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + + '@types/babel__code-frame@7.0.6': + resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/buffer-json@2.0.3': + resolution: {integrity: sha512-ItD4UfF3Q5jA+PEV6ZUWEHvlWaXJbd0rpuBKOIrEebM053FHaJddKsgUf0vy7nLSTs44nqFj3Mh8J3TiT0xv4g==} + + '@types/chai-dom@1.11.3': + resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} + + '@types/chai@4.3.16': + resolution: {integrity: sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==} + + '@types/clean-css@4.2.11': + resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} + + '@types/co-body@6.1.3': + resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/content-disposition@0.5.8': + resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} + + '@types/convert-source-map@2.0.3': + resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} + + '@types/cookie@0.4.1': + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + + '@types/cookies@0.9.0': + resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==} + + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + + '@types/debounce@1.2.4': + resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/default-gateway@3.0.1': + resolution: {integrity: sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==} + + '@types/express-serve-static-core@4.19.5': + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/fast-json-stable-stringify@2.1.0': + resolution: {integrity: sha512-IyNhGHu71jH1jCXTHmafuoAAdsbBON3kDh7u/UUhLmjYgN5TYB54e1R8ckTCiIevl2UuZaCsi9XRxineY5yUjw==} + deprecated: This is a stub types definition. fast-json-stable-stringify provides its own type definitions, so you do not need this installed. + + '@types/from2@2.3.5': + resolution: {integrity: sha512-giavnjf3kNlJnE+HpZA1CQ3UKHxgehzsTuIMGda8pGMbOiLYGVNADEskey44OZcADHm/HOoBany8IV+0x28XFw==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/fs-extra@9.0.13': + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/glob@8.1.0': + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + + '@types/gunzip-maybe@1.4.2': + resolution: {integrity: sha512-2uqXZg1jTCKE1Pjbab8qb74+f2+i9h/jz8rQ+jRR+zaNJF75zWwrpbX8/TjF4m56m3KFOg9umHdCJ074KwiVxg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/html-minifier@4.0.5': + resolution: {integrity: sha512-LfE7f7MFd+YUfZnlBz8W43P4NgSObWiqyKapANsWCj63Aqeqli8/9gVsGP4CwC8jPpTTYlTopKCk9rJSuht/ew==} + + '@types/http-assert@1.5.5': + resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/inquirer@9.0.7': + resolution: {integrity: sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/js-yaml@3.12.10': + resolution: {integrity: sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/keygrip@1.0.6': + resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + + '@types/koa-compose@3.2.8': + resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + + '@types/koa@2.15.0': + resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mime-types@2.1.4': + resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minio@7.1.1': + resolution: {integrity: sha512-B7OWB7JwIxVBxypiS3gA96gaK4yo2UknGdqmuQsTccZZ/ABiQ2F3fTe9lZIXL6ZuN23l+mWIC3J4CefKNyWjxA==} + deprecated: This is a stub types definition. minio provides its own type definitions, so you do not need this installed. + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node@20.14.7': + resolution: {integrity: sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ==} + + '@types/parse5@6.0.3': + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + + '@types/ping@0.4.4': + resolution: {integrity: sha512-ifvo6w2f5eJYlXm+HiVx67iJe8WZp87sfa683nlqED5Vnt9Z93onkokNoWqOG21EaE8fMxyKPobE+mkPEyxsdw==} + + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + + '@types/randomatic@3.1.5': + resolution: {integrity: sha512-VCwCTw6qh1pRRw+5rNTAwqPmf6A+hdrkdM7dBpZVmhl7g+em3ONXlYK/bWPVKqVGMWgP0d1bog8Vc/X6zRwRRQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/relateurl@0.2.33': + resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sinon-chai@3.2.12': + resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} + + '@types/sinon@17.0.3': + resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} + + '@types/sinonjs__fake-timers@8.1.5': + resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + + '@types/symbol-tree@3.2.5': + resolution: {integrity: sha512-zXnnyENt1TYQcS21MkPaJCVjfcPq7p7yc5mo5JACuumXp6sly5jnlS0IokHd+xmmuCbx6V7JqkMBpswR+nZAcw==} + + '@types/tar-stream@2.2.3': + resolution: {integrity: sha512-if3mugZfjVkXOMZdFjIHySxY13r6GXPpyOlsDmLffvyI7tLz9wXE8BFjNivXsvUeyJ1KNlOpfLnag+ISmxgxPw==} + + '@types/through2@2.0.41': + resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} + + '@types/through@0.0.33': + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/turndown@5.0.4': + resolution: {integrity: sha512-28GI33lCCkU4SGH1GvjDhFgOVr+Tym4PXGBIU1buJUa6xQolniPArtUT+kv42RR2N9MsMLInkr904Aq+ESHBJg==} + + '@types/uglify-js@3.17.5': + resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} + + '@types/unist@3.0.2': + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/which@2.0.2': + resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==} + + '@types/which@3.0.4': + resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@web/browser-logs@0.4.0': + resolution: {integrity: sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==} + engines: {node: '>=18.0.0'} + + '@web/dev-server-core@0.7.2': + resolution: {integrity: sha512-Q/0jpF13Ipk+qGGQ+Yx/FW1TQBYazpkfgYHHo96HBE7qv4V4KKHqHglZcSUxti/zd4bToxX1cFTz8dmbTlb8JA==} + engines: {node: '>=18.0.0'} + + '@web/parse5-utils@2.1.0': + resolution: {integrity: sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==} + engines: {node: '>=18.0.0'} + + '@web/test-runner-commands@0.9.0': + resolution: {integrity: sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==} + engines: {node: '>=18.0.0'} + + '@web/test-runner-core@0.13.2': + resolution: {integrity: sha512-G0D3mv9jvR+5xILENchPP9v1ZjBf3QVlzarMLR5jedCNbgntzcayF0LeW5wh5uyafGZJH28cYm9jGrJvGipoPQ==} + engines: {node: '>=18.0.0'} + + '@zxing/text-encoding@0.9.0': + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + + acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + + ansi-256-colors@1.1.0: + resolution: {integrity: sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=} + engines: {node: '>=0.10.0'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-flatten@1.1.1: + resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} + + array-parallel@0.1.3: + resolution: {integrity: sha512-TDPTwSWW5E4oiFiKmz6RGJ/a80Y91GuLgUYuLd49+XBS75tYo8PNgaT2K/OxuQYqkoI852MDGBorg9OcUSTQ8w==} + + array-series@0.1.5: + resolution: {integrity: sha512-L0XlBwfx9QetHOsbLDrE/vh2t018w9462HM3iaFfxRiK83aJjAt/Ja3NMkOW7FICwWTlQBa3ZbL5FKhuQWkDrg==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + + asynckit@0.4.0: + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + engines: {node: '>=4'} + + b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + + base64-arraybuffer-es6@0.7.0: + resolution: {integrity: sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw==} + engines: {node: '>=6.0.0'} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + block-stream2@2.1.0: + resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + broadcast-channel@7.0.0: + resolution: {integrity: sha512-a2tW0Ia1pajcPBOGUF2jXlDnvE9d5/dg6BG9h60OmRUcZVr/veUrU8vEQFwwQIhwG3KVzYwSk3v2nRRGFgQDXQ==} + + browser-or-node@2.1.1: + resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} + + browserify-zlib@0.1.4: + resolution: {integrity: sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=} + + buffer-crc32@0.2.13: + resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-json@2.0.0: + resolution: {integrity: sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + 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'} + + camel-case@3.0.0: + resolution: {integrity: sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai-a11y-axe@1.5.0: + resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + 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} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + clean-css@4.2.4: + resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} + engines: {node: '>= 4.0'} + + clean-stack@1.3.0: + resolution: {integrity: sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=} + engines: {node: '>=4'} + + clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + clone@1.0.4: + resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} + engines: {node: '>=0.8'} + + clone@2.1.2: + resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} + engines: {node: '>=0.8'} + + co-body@6.2.0: + resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} + engines: {node: '>=8.0.0'} + + co@4.6.0: + resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} + + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + croner@4.4.1: + resolution: {integrity: sha512-aqVeeIPCf5/NZFlz4mN4MLEOs9xf4ODCmHQDs+577JFj8mK3RkKJz77h7+Rn94AijUqKdFNOUHM+v88d8p02UQ==} + + croner@5.7.0: + resolution: {integrity: sha512-9pSLe+tDJnmNak2JeMkz6ZmTCXP5p6vCxSd4kvDqrTJkqAP62j2uAEIZjf8cPDZIakStujqVzh5Y5MIWH3yYAw==} + engines: {node: '>=6.0'} + + croner@7.0.7: + resolution: {integrity: sha512-05wALDHKjt9zG1JbpziNnWPCwwv9fUKbNf6q0dWaDMJ/eDxW0394Q2R1VAzKvDgoEZBT9FhWSHHFIcgwLgXjcQ==} + engines: {node: '>=6.0'} + + cross-fetch@3.1.5: + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} + + cross-spawn@4.0.2: + resolution: {integrity: sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@5.0.0: + resolution: {integrity: sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==} + engines: {node: '>=14.16'} + + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + + dayjs@1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-equal@1.0.1: + resolution: {integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + 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: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} + + depd@1.1.2: + resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} + engines: {node: '>= 0.6'} + + 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'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + devtools-protocol@0.0.1019158: + resolution: {integrity: sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + dns-socket@4.2.2: + resolution: {integrity: sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==} + engines: {node: '>=6'} + + domexception@1.0.1: + resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==} + + duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@1.0.2: + resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + engine.io-client@6.5.4: + resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} + + engine.io-parser@5.2.2: + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} + engines: {node: '>=10.0.0'} + + engine.io@6.5.4: + resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} + engines: {node: '>=10.2.0'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + errorstacks@2.4.1: + resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} + + 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-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + escape-html@1.0.3: + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + esm@3.2.25: + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + etag@1.8.1: + resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} + engines: {node: '>= 0.6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + express-force-ssl@0.3.2: + resolution: {integrity: sha1-AbK0mK5v0uQRUrIrV6Phc3c69n4=} + engines: {node: '>=0.2.2'} + + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fake-indexeddb@4.0.2: + resolution: {integrity: sha512-SdTwEhnakbgazc7W3WUXOJfGmhH0YfG4d+dRPOFoYDRTL6U5t8tvrmkf2W/C3W1jk2ylV7Wrnj44RASqpX/lEw==} + + fake-indexeddb@5.0.2: + resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} + engines: {node: '>=18'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-xml-parser@4.4.0: + resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} + hasBin: true + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + fd-slicer@1.1.0: + resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-type@19.0.0: + resolution: {integrity: sha512-s7cxa7/leUWLiXO78DVVfBVse+milos9FitauDLG1pI7lNaJ2+5lzPnr2N24ym+84HVwJL6hVuGfgVE+ALvU8Q==} + engines: {node: '>=18'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + filter-obj@1.1.0: + resolution: {integrity: sha1-mzERErxsYSehbgFsbF1/GeCAXFs=} + engines: {node: '>=0.10.0'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=} + engines: {node: '>=0.4.x'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} + engines: {node: '>= 0.6'} + + from2@2.3.0: + resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + 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.realpath@1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gm@1.25.0: + resolution: {integrity: sha512-4kKdWXTtgQ4biIo7hZA396HT062nDVVHPjQcurNZ3o/voYN+o5FUC5kOwuORbpExp3XbTJ3SU7iRipiIhQtovw==} + engines: {node: '>=14'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + gunzip-maybe@1.4.2: + resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} + hasBin: true + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + happy-dom@8.9.0: + resolution: {integrity: sha512-JZwJuGdR7ko8L61136YzmrLv7LgTh5b8XaEM3P709mLjyQuXJ3zHTDXvUtBBahRjGlcYW0zGjIiEWizoTUGKfA==} + + has-flag@3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + + hast-util-sanitize@5.0.1: + resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} + + hast-util-to-html@9.0.1: + resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier@4.0.0: + resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==} + engines: {node: '>=6'} + hasBin: true + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@1.6.3: + resolution: {integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=} + engines: {node: '>= 0.6'} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + humanize-ms@1.2.1: + resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + inflation@2.1.0: + resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} + engines: {node: '>= 0.8.0'} + + inflight@1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + + inherits@2.0.3: + resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inquirer@9.2.23: + resolution: {integrity: sha512-kod5s+FBPIDM2xiy9fu+6wdU/SkK5le5GS9lh4FEBjBHqiMgD9lLFbCbuqFNAjNL2ZOy9Wd9F694IOzN9pZHBA==} + engines: {node: '>=18'} + + ip-regex@5.0.0: + resolution: {integrity: sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + ip@2.0.1: + resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-deflate@1.0.0: + resolution: {integrity: sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ=} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-gzip@1.0.0: + resolution: {integrity: sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=} + engines: {node: '>=0.10.0'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-ip@4.0.0: + resolution: {integrity: sha512-4B4XA2HEIm/PY+OSpeMBXr8pGWBYbXuHgjMAqrwbLO3CPTCAd9ArEJzBUKGZtk9viY6+aSfadGnWyjY3ydYZkw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-number@4.0.0: + resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-observable@2.1.0: + resolution: {integrity: sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + + isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isopen@1.3.0: + resolution: {integrity: sha512-AN6Q9J0UlqHFl1fN/2xJCHCBLCBCFDjZhpGBO1gh3wzgRPsFSFBUL36I2Lbfd9qkuoj58axmE7j83iejTQsk8Q==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jackspeak@3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} + engines: {node: '>=14'} + + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-stream@1.0.0: + resolution: {integrity: sha1-GjhU4o0rvuqzHMfd9oPS3cVlJwg=} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa-convert@2.0.0: + resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + engines: {node: '>= 10'} + + koa-etag@4.0.0: + resolution: {integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==} + + koa-send@5.0.1: + resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + engines: {node: '>= 8'} + + koa-static@5.0.0: + resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + engines: {node: '>= 7.6.0'} + + koa@2.15.3: + resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + + lit-element@3.3.3: + resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} + + lit-element@4.0.6: + resolution: {integrity: sha512-U4sdJ3CSQip7sLGZ/uJskO5hGiqtlpxndsLr6mt3IQIjheg93UKYeGQjWMRql1s/cXNOaRrCzC2FQwjIwSUqkg==} + + lit-html@2.8.0: + resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} + + lit-html@3.1.4: + resolution: {integrity: sha512-yKKO2uVv7zYFHlWMfZmqc+4hkmSbFp8jgjdZY9vvR9jr4J8fH6FUMXhr+ljfELgmjpvlF7Z1SJ5n5/Jeqtc9YA==} + + lit@2.8.0: + resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} + + lit@3.1.4: + resolution: {integrity: sha512-q6qKnKXHy2g1kjBaNfcoLlgbI3+aSOZ9Q4tiGa9bGYXq5RBXxkVTqTIVmP2VWMp29L4GyvCFm8ZQ2o56eUAMyA==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash._baseassign@3.2.0: + resolution: {integrity: sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=} + + lodash._basecopy@3.0.1: + resolution: {integrity: sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=} + + lodash._bindcallback@3.0.1: + resolution: {integrity: sha1-5THCdkTPi1epnhftlbNcdIeJOS4=} + + lodash._createassigner@3.1.1: + resolution: {integrity: sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=} + + lodash._getnative@3.9.1: + resolution: {integrity: sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=} + + lodash._isiterateecall@3.0.9: + resolution: {integrity: sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=} + + lodash.assign@3.2.0: + resolution: {integrity: sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=} + + lodash.clonedeep@4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + + lodash.isarguments@3.1.0: + resolution: {integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=} + + lodash.isarray@3.0.4: + resolution: {integrity: sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=} + + lodash.keys@3.1.2: + resolution: {integrity: sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=} + + lodash.restparam@3.6.1: + resolution: {integrity: sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=} + + 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-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lower-case@1.1.4: + resolution: {integrity: sha1-miyr0bno4K6ZOkv31YdcOcQujqw=} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + + lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error-cause@2.3.0: + resolution: {integrity: sha512-etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + + matcher@5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + math-random@1.0.4: + resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + media-typer@0.3.0: + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} + engines: {node: '>= 0.6'} + + merge-descriptors@1.0.1: + resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + + micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + + micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + + micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@4.0.3: + resolution: {integrity: sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minio@7.1.3: + resolution: {integrity: sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==} + engines: {node: ^16 || ^18 || >=20} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + 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} + + nanocolors@0.2.13: + resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + no-case@2.3.2: + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + + 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 + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + normalize-newline@4.1.0: + resolution: {integrity: sha512-ff4jKqMI8Xl50/4Mms/9jPobzAV/UK+kXG2XJ/7AqOmxIx8mqfqTIHYxuAnEgJ2AQeBbLnlbmZ5+38Y9A0w/YA==} + engines: {node: '>=12'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + object-assign@4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + oblivious-set@1.4.0: + resolution: {integrity: sha512-szyd0ou0T8nsAqHtprRcP3WidfsN1TnAR5yWXf2mFCEr5ek3LEOkT6EZ/92Xfs74HIdyhG5WkGxIssMU0jBaeg==} + engines: {node: '>=16'} + + observable-fns@0.6.1: + resolution: {integrity: sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + only@0.0.2: + resolution: {integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} + engines: {node: '>=0.10.0'} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-finally@1.0.0: + resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + pako@0.2.9: + resolution: {integrity: sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@2.1.1: + resolution: {integrity: sha1-35T9jPZTHs915r75oIWPvHK+Ikc=} + + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + + parse-ms@3.0.0: + resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} + engines: {node: '>=12'} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.7: + resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} + + path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pdf-lib@1.17.1: + resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} + + pdf2json@3.0.5: + resolution: {integrity: sha512-Un1yLbSlk/zfwrltgguskExIioXZlFSFwsyXU0cnBorLywbTbcdzmJJEebh+U2cFCtR7y8nDs5lPHAe7ldxjZg==} + engines: {node: '>=18.12.1', npm: '>=8.19.2'} + hasBin: true + bundledDependencies: + - '@xmldom/xmldom' + + pdf2pic@3.1.1: + resolution: {integrity: sha512-AHXsYi9EcYlSm3uUANz7h5WSktHiyTnUeHqdWmyRdjdMhgq9LgZ8pggl9FOUGuCLVfe+NKxp2k9sEMCH3tHIEg==} + engines: {node: '>=14'} + + peek-readable@5.0.0: + resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} + engines: {node: '>=14.16'} + + peek-stream@1.1.3: + resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + + pend@1.2.0: + resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + ping@0.4.4: + resolution: {integrity: sha512-56ZMC0j7SCsMMLdOoUg12VZCfj/+ZO+yfOSjaNCRrmZZr6GLbN2X/Ui56T15dI8NhiHckaw5X2pvyfAomanwqQ==} + engines: {node: '>=4.0.0'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + + pretty-ms@8.0.0: + resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==} + engines: {node: '>=14.16'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + proto-list@1.2.4: + resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pseudomap@1.0.2: + resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} + + public-ip@6.0.2: + resolution: {integrity: sha512-+6bkjnf0yQ4+tZV0zJv1017DiIF7y6R4yg17Mrhhkc25L7dtQtXWHgSCrz9BbLL4OeTFbPK4EALXqJUrwCIWXw==} + engines: {node: '>=14.16'} + + pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + + pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + + punycode@1.4.1: + resolution: {integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + puppeteer@15.5.0: + resolution: {integrity: sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ==} + engines: {node: '>=14.1.0'} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + engines: {node: '>=0.6'} + + query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randomatic@3.1.1: + resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} + engines: {node: '>= 0.10.0'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + 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'} + + readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + realistic-structured-clone@3.0.0: + resolution: {integrity: sha512-rOjh4nuWkAqf9PWu6JVpOWD4ndI+JHfgiZeMmujYcPi+fvILUu7g6l26TC1K5aBIp34nV+jE1cDO75EKOfHC5Q==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + relateurl@0.2.7: + resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=} + engines: {node: '>= 0.10'} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-html@16.0.1: + resolution: {integrity: sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + replace-buffer@1.2.1: + resolution: {integrity: sha512-ly3OKwKu+3T55DjP5PjIMzxgz9lFx6dQnBmAIxryZyRKl8f22juy12ShOyuq8WrQE5UlFOseZgQZDua0iF9DHw==} + engines: {node: '>=4'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-path@1.4.0: + resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + engines: {node: '>= 0.8'} + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rss-parser@3.13.0: + resolution: {integrity: sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==} + + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + 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-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + 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'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + + socket.io-client@4.7.5: + resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + socket.io@4.7.5: + resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==} + engines: {node: '>=10.2.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spawn-wrap@2.0.0: + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} + + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + + sprintf-js@1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + + statuses@1.5.0: + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + + strict-uri-encode@2.0.0: + resolution: {integrity: sha1-ucczDHBChi9rFC3CdLvMWGbONUY=} + engines: {node: '>=4'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=} + engines: {node: '>=0.10.0'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} + engines: {node: '>=0.10.0'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + strtok3@7.0.0: + resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} + engines: {node: '>=14.16'} + + stubborn-fs@1.2.5: + resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + sweet-scroll@4.0.0: + resolution: {integrity: sha512-mR6fRsAQANtm3zpzhUE73KAOt2aT4ZsWzNSggiEsSqdO6Zh4gM7ioJG81EngrZEl0XAc3ZvzEfhxggOoEBc8jA==} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + systeminformation@5.22.11: + resolution: {integrity: sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug==} + engines: {node: '>=8.0.0'} + os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] + hasBin: true + + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + text-decoder@1.1.0: + resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + + threads@1.7.0: + resolution: {integrity: sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through2@3.0.2: + resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + + tiny-worker@2.3.0: + resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + 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'} + + token-types@5.0.1: + resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} + engines: {node: '>=14.16'} + + tr46@0.0.3: + resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} + + tr46@2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + turndown-plugin-gfm@1.0.2: + resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} + + turndown@7.2.0: + resolution: {integrity: sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.20.1: + resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + typeson-registry@1.0.0-alpha.39: + resolution: {integrity: sha512-NeGDEquhw+yfwNhguLPcZ9Oj0fzbADiX4R0WxvoY8nGhy98IbzQy1sezjoEFWOywOboj/DWehI+/aUlRVrJnnw==} + engines: {node: '>=10.0.0'} + + typeson@6.1.0: + resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} + engines: {node: '>=0.1.14'} + + uglify-js@3.18.0: + resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + engines: {node: '>=0.8.0'} + hasBin: true + + uint8array-extras@1.1.0: + resolution: {integrity: sha512-CVaBSyOmGoFHu+zOVPbetXEXykOd8KHVBHLlqvmaMWpwcq3rewj18xVNbU5uzf48hclnNQhfNaNany2cMHFK/g==} + engines: {node: '>=18'} + + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unload@2.4.1: + resolution: {integrity: sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw==} + + unpipe@1.0.0: + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} + engines: {node: '>= 0.8'} + + upper-case@1.1.3: + resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=} + + url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + + util-deprecate@1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utils-merge@1.0.1: + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + engines: {node: '>= 0.4.0'} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + vary@1.1.2: + resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} + engines: {node: '>= 0.8'} + + vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + + wcwidth@1.0.1: + resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} + + web-encoding@1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webidl-conversions@6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@5.0.0: + resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} + + whatwg-url@8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + 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 + + wordwrap@1.0.0: + resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} + + 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'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.8.0: + resolution: {integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + + xml@1.0.1: + resolution: {integrity: sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlhttprequest-ssl@2.0.0: + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + engines: {node: '>=0.4.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + yallist@2.1.2: + resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} + + ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + engines: {node: '>= 4.0.0'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@api.global/typedrequest-interfaces@2.0.2': {} + + '@api.global/typedrequest-interfaces@3.0.19': {} + + '@api.global/typedrequest@3.0.30': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartbuffer': 3.0.4 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartguard': 3.0.2 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/webrequest': 3.0.37 + '@push.rocks/webstream': 1.0.10 + + '@api.global/typedserver@3.0.50': + dependencies: + '@api.global/typedrequest': 3.0.30 + '@api.global/typedrequest-interfaces': 3.0.19 + '@api.global/typedsocket': 3.0.1 + '@cloudflare/workers-types': 4.20240620.0 + '@design.estate/dees-comms': 1.0.27 + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartchok': 1.0.34 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartfeed': 1.0.11 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartlog-destination-devtools': 1.0.12 + '@push.rocks/smartlog-interfaces': 3.0.2 + '@push.rocks/smartmanifest': 2.0.2 + '@push.rocks/smartmatch': 2.0.0 + '@push.rocks/smartmime': 2.0.2 + '@push.rocks/smartntml': 2.0.4 + '@push.rocks/smartopen': 2.0.0 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrequest': 2.0.22 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smartsitemap': 2.0.3 + '@push.rocks/smartstream': 3.0.44 + '@push.rocks/smarttime': 4.0.6 + '@push.rocks/taskbuffer': 3.1.7 + '@push.rocks/webrequest': 3.0.37 + '@push.rocks/webstore': 2.0.20 + '@tsclass/tsclass': 4.0.60 + '@types/express': 4.17.21 + body-parser: 1.20.2 + cors: 2.8.5 + express: 4.19.2 + express-force-ssl: 0.3.2 + lit: 3.1.4 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@api.global/typedsocket@3.0.1': + dependencies: + '@api.global/typedrequest': 3.0.30 + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/isohash': 2.0.1 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smartsocket': 2.0.27 + '@push.rocks/smartstring': 4.0.15 + '@push.rocks/smarturl': 3.0.7 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/runtime@7.23.4': + dependencies: + regenerator-runtime: 0.14.1 + + '@cloudflare/workers-types@4.20240620.0': {} + + '@configvault.io/interfaces@1.0.17': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@design.estate/dees-comms@1.0.27': + dependencies: + '@api.global/typedrequest': 3.0.30 + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/smartdelay': 3.0.5 + broadcast-channel: 7.0.0 + + '@design.estate/dees-domtools@2.0.57': + dependencies: + '@api.global/typedrequest': 3.0.30 + '@design.estate/dees-comms': 1.0.27 + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartmarkdown': 3.0.3 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrouter': 1.0.16 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smartstate': 2.0.17 + '@push.rocks/smartstring': 4.0.15 + '@push.rocks/smarturl': 3.0.7 + '@push.rocks/webrequest': 3.0.37 + '@push.rocks/websetup': 3.0.19 + '@push.rocks/webstore': 2.0.20 + lit: 3.1.4 + sweet-scroll: 4.0.0 + transitivePeerDependencies: + - supports-color + + '@designestate/dees-element@2.0.23': + dependencies: + '@design.estate/dees-domtools': 2.0.57 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/smartrx': 3.0.7 + lit: 2.8.0 + transitivePeerDependencies: + - supports-color + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esm-bundle/chai@4.3.4-fix.0': + dependencies: + '@types/chai': 4.3.16 + + '@git.zone/tsbuild@2.1.80': + dependencies: + '@push.rocks/early': 4.0.4 + '@push.rocks/smartcli': 4.0.11 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + typescript: 5.4.5 + + '@git.zone/tsbundle@2.0.15': + dependencies: + '@push.rocks/early': 4.0.4 + '@push.rocks/smartcli': 4.0.11 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartlog-destination-local': 9.0.2 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartspawn': 3.0.3 + '@types/html-minifier': 4.0.5 + esbuild: 0.19.12 + html-minifier: 4.0.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + + '@git.zone/tsrun@1.2.46(@types/node@20.14.7)': + dependencies: + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartshell': 3.0.5 + ts-node: 10.9.2(@types/node@20.14.7)(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + + '@git.zone/tstest@1.0.90(@types/node@20.14.7)': + dependencies: + '@api.global/typedserver': 3.0.50 + '@git.zone/tsbundle': 2.0.15 + '@git.zone/tsrun': 1.2.46(@types/node@20.14.7) + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/smartbrowser': 2.0.6 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartshell': 3.0.5 + '@push.rocks/tapbundle': 5.0.23 + '@types/ws': 8.5.10 + figures: 6.1.0 + ws: 8.17.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@hapi/bourne@3.0.0': {} + + '@happy-dom/global-registrator@8.9.0': + dependencies: + happy-dom: 8.9.0 + transitivePeerDependencies: + - encoding + + '@inquirer/figures@1.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@leichtgewicht/ip-codec@2.0.5': {} + + '@lit-labs/ssr-dom-shim@1.2.0': {} + + '@lit/reactive-element@1.6.3': + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + + '@lit/reactive-element@2.0.4': + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + + '@ljharb/through@2.3.13': + dependencies: + call-bind: 1.0.7 + + '@mixmark-io/domino@2.2.0': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@open-wc/dedupe-mixin@1.4.0': {} + + '@open-wc/scoped-elements@3.0.5': + dependencies: + '@open-wc/dedupe-mixin': 1.4.0 + lit: 3.1.4 + + '@open-wc/semantic-dom-diff@0.20.1': + dependencies: + '@types/chai': 4.3.16 + '@web/test-runner-commands': 0.9.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@open-wc/testing-helpers@3.0.1': + dependencies: + '@open-wc/scoped-elements': 3.0.5 + lit: 3.1.4 + lit-html: 3.1.4 + + '@open-wc/testing@4.0.0': + dependencies: + '@esm-bundle/chai': 4.3.4-fix.0 + '@open-wc/semantic-dom-diff': 0.20.1 + '@open-wc/testing-helpers': 3.0.1 + '@types/chai-dom': 1.11.3 + '@types/sinon-chai': 3.2.12 + chai-a11y-axe: 1.5.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@pdf-lib/standard-fonts@1.0.0': + dependencies: + pako: 1.0.11 + + '@pdf-lib/upng@1.0.1': + dependencies: + pako: 1.0.11 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.2.2': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@push.rocks/commitinfo@1.0.11': + dependencies: + '@pushrocks/projectinfo': 5.0.1 + '@pushrocks/smartfile': 9.0.6 + '@pushrocks/smartversion': 3.0.2 + + '@push.rocks/consolecolor@2.0.2': + dependencies: + ansi-256-colors: 1.1.0 + + '@push.rocks/early@4.0.4': + dependencies: + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/smartpromise': 4.0.3 + + '@push.rocks/gulp-function@3.0.7': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + '@types/through2': 2.0.41 + through2: 3.0.2 + + '@push.rocks/isohash@2.0.1': + dependencies: + '@pushrocks/smartenv': 5.0.5 + '@pushrocks/smarthash': 3.0.2 + + '@push.rocks/isounique@1.0.5': {} + + '@push.rocks/levelcache@3.0.8': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartbucket': 2.0.4 + '@push.rocks/smartcache': 1.0.16 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartexit': 1.0.23 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartstring': 4.0.15 + '@push.rocks/smartunique': 3.0.9 + '@push.rocks/taskbuffer': 3.1.7 + '@tsclass/tsclass': 4.0.60 + + '@push.rocks/lik@6.0.15': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartmatch': 2.0.0 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smarttime': 4.0.6 + '@types/minimatch': 5.1.2 + '@types/symbol-tree': 3.2.5 + symbol-tree: 3.2.4 + + '@push.rocks/npmextra@3.0.14': + dependencies: + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/taskbuffer': 3.1.7 + + '@push.rocks/npmextra@5.0.23': + dependencies: + '@push.rocks/qenv': 6.0.5 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/taskbuffer': 3.1.7 + '@tsclass/tsclass': 4.0.60 + + '@push.rocks/projectinfo@5.0.2': + dependencies: + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartstring': 4.0.15 + + '@push.rocks/qenv@6.0.5': + dependencies: + '@api.global/typedrequest': 3.0.30 + '@configvault.io/interfaces': 1.0.17 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpath': 5.0.18 + + '@push.rocks/smartarchive@3.0.8': + dependencies: + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrequest': 2.0.22 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smartstream': 2.0.8 + '@push.rocks/smartunique': 3.0.9 + '@types/gunzip-maybe': 1.4.2 + '@types/tar-stream': 2.2.3 + gunzip-maybe: 1.4.2 + tar: 6.2.1 + tar-stream: 3.1.7 + + '@push.rocks/smartbrowser@2.0.6': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpdf': 3.1.6 + '@push.rocks/smartpuppeteer': 2.0.2 + '@push.rocks/smartunique': 3.0.9 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@push.rocks/smartbucket@2.0.4': + dependencies: + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smartstream': 2.0.8 + '@tsclass/tsclass': 4.0.60 + '@types/minio': 7.1.1 + minio: 7.1.3 + + '@push.rocks/smartbuffer@3.0.4': + dependencies: + uint8array-extras: 1.1.0 + + '@push.rocks/smartcache@1.0.16': + dependencies: + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smarterror': 2.0.1 + '@pushrocks/smarthash': 3.0.2 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smarttime': 4.0.1 + + '@push.rocks/smartchok@1.0.34': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@tempfix/watcher': 2.3.0 + + '@push.rocks/smartcli@4.0.11': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartobject': 1.0.12 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + yargs-parser: 21.1.1 + + '@push.rocks/smartdelay@3.0.5': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + + '@push.rocks/smartenv@5.0.12': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + + '@push.rocks/smartevent@2.0.5': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrx': 2.0.27 + + '@push.rocks/smartexit@1.0.23': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.0.3 + tree-kill: 1.2.2 + + '@push.rocks/smartexpect@1.0.21': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.0.3 + fast-deep-equal: 3.1.3 + + '@push.rocks/smartfeed@1.0.11': + dependencies: + '@tsclass/tsclass': 3.0.48 + feed: 4.2.2 + rss-parser: 3.13.0 + + '@push.rocks/smartfile-interfaces@1.0.7': {} + + '@push.rocks/smartfile@10.0.41': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile-interfaces': 1.0.7 + '@push.rocks/smarthash': 3.0.4 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartmime': 1.0.6 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrequest': 2.0.22 + '@push.rocks/smartstream': 2.0.8 + '@types/fs-extra': 11.0.4 + '@types/glob': 8.1.0 + '@types/js-yaml': 4.0.9 + fs-extra: 11.2.0 + glob: 10.4.2 + js-yaml: 4.1.0 + + '@push.rocks/smartfile@11.0.20': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile-interfaces': 1.0.7 + '@push.rocks/smarthash': 3.0.4 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartmime': 2.0.2 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrequest': 2.0.22 + '@push.rocks/smartstream': 3.0.44 + '@types/fs-extra': 11.0.4 + '@types/glob': 8.1.0 + '@types/js-yaml': 4.0.9 + fs-extra: 11.2.0 + glob: 10.4.2 + js-yaml: 4.1.0 + + '@push.rocks/smartfm@2.0.4': + dependencies: + gray-matter: 4.0.3 + + '@push.rocks/smartguard@3.0.2': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrequest': 2.0.22 + + '@push.rocks/smartgulp@3.0.4': + dependencies: + '@push.rocks/smartevent': 2.0.5 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartstream': 3.0.44 + '@types/through2': 2.0.41 + through2: 4.0.2 + + '@push.rocks/smarthash@3.0.4': + dependencies: + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartpromise': 4.0.3 + '@types/through2': 2.0.41 + through2: 4.0.2 + + '@push.rocks/smarthbs@3.0.3': + dependencies: + '@pushrocks/smartfile': 10.0.26 + '@pushrocks/smartpath': 5.0.5 + '@pushrocks/smartpromise': 4.0.2 + handlebars: 4.7.8 + + '@push.rocks/smartinteract@2.0.15': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartobject': 1.0.12 + '@push.rocks/smartpromise': 4.0.3 + '@types/inquirer': 9.0.7 + inquirer: 9.2.23 + + '@push.rocks/smartjson@5.0.20': + dependencies: + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartstring': 4.0.15 + fast-json-stable-stringify: 2.1.0 + lodash.clonedeep: 4.5.0 + + '@push.rocks/smartlegal@1.0.27': + dependencies: + '@push.rocks/smartmarkdown': 3.0.3 + '@push.rocks/smartmustache': 3.0.2 + '@push.rocks/smartpnpm': 1.0.6 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartshell': 3.0.5 + '@tsclass/tsclass': 4.0.60 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartlog-destination-devtools@1.0.12': + dependencies: + '@push.rocks/smartlog-interfaces': 3.0.2 + + '@push.rocks/smartlog-destination-local@9.0.2': + dependencies: + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/smartlog-interfaces': 3.0.2 + '@push.rocks/smartpromise': 4.0.3 + + '@push.rocks/smartlog-interfaces@3.0.2': + dependencies: + '@api.global/typedrequest-interfaces': 2.0.2 + '@tsclass/tsclass': 4.0.60 + + '@push.rocks/smartlog@3.0.7': + dependencies: + '@push.rocks/isounique': 1.0.5 + '@push.rocks/smartlog-interfaces': 3.0.2 + + '@push.rocks/smartmanifest@2.0.2': {} + + '@push.rocks/smartmarkdown@3.0.3': + dependencies: + '@push.rocks/smartyaml': 2.0.5 + '@types/turndown': 5.0.4 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.0 + remark-html: 16.0.1 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + turndown: 7.2.0 + turndown-plugin-gfm: 1.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartmatch@2.0.0': + dependencies: + matcher: 5.0.0 + + '@push.rocks/smartmime@1.0.6': + dependencies: + '@types/mime-types': 2.1.4 + mime-types: 2.1.35 + + '@push.rocks/smartmime@2.0.2': + dependencies: + '@types/mime-types': 2.1.4 + file-type: 19.0.0 + mime: 4.0.3 + + '@push.rocks/smartmustache@3.0.2': + dependencies: + handlebars: 4.7.8 + + '@push.rocks/smartnetwork@3.0.2': + dependencies: + '@pushrocks/smartping': 1.0.8 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartstring': 4.0.7 + '@types/default-gateway': 3.0.1 + isopen: 1.3.0 + public-ip: 6.0.2 + systeminformation: 5.22.11 + + '@push.rocks/smartnpm@2.0.4': + dependencies: + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/levelcache': 3.0.8 + '@push.rocks/smartarchive': 3.0.8 + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrequest': 2.0.22 + '@push.rocks/smarttime': 4.0.6 + '@push.rocks/smartversion': 3.0.5 + package-json: 8.1.1 + + '@push.rocks/smartntml@2.0.4': + dependencies: + '@designestate/dees-element': 2.0.23 + '@happy-dom/global-registrator': 8.9.0 + '@pushrocks/smartpromise': 3.1.10 + fake-indexeddb: 4.0.2 + transitivePeerDependencies: + - encoding + - supports-color + + '@push.rocks/smartobject@1.0.12': + dependencies: + fast-deep-equal: 3.1.3 + minimatch: 9.0.4 + + '@push.rocks/smartopen@2.0.0': + dependencies: + open: 8.4.2 + + '@push.rocks/smartparam@1.1.10': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + minimatch: 9.0.4 + + '@push.rocks/smartpath@5.0.18': {} + + '@push.rocks/smartpdf@3.1.6': + dependencies: + '@push.rocks/smartbuffer': 3.0.4 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 11.0.20 + '@push.rocks/smartnetwork': 3.0.2 + '@push.rocks/smartpath': 5.0.18 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartpuppeteer': 2.0.2 + '@push.rocks/smartunique': 3.0.9 + '@tsclass/tsclass': 4.0.60 + '@types/express': 4.17.21 + express: 4.19.2 + pdf-lib: 1.17.1 + pdf2json: 3.0.5 + pdf2pic: 3.1.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@push.rocks/smartpnpm@1.0.6': + dependencies: + '@push.rocks/smartshell': 3.0.5 + + '@push.rocks/smartpromise@4.0.3': {} + + '@push.rocks/smartpuppeteer@2.0.2': + dependencies: + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartshell': 2.0.30 + puppeteer: 15.5.0 + tree-kill: 1.2.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@push.rocks/smartrequest@2.0.22': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smarturl': 3.0.7 + agentkeepalive: 4.5.0 + form-data: 4.0.0 + + '@push.rocks/smartrouter@1.0.16': + dependencies: + path-to-regexp: 6.2.2 + + '@push.rocks/smartrx@3.0.7': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + rxjs: 7.8.1 + + '@push.rocks/smartscaf@4.0.15': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartfm': 2.0.4 + '@push.rocks/smarthbs': 3.0.3 + '@push.rocks/smartinteract': 2.0.15 + '@push.rocks/smartparam': 1.1.10 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartshell': 3.0.5 + '@push.rocks/smartyaml': 2.0.5 + + '@push.rocks/smartshell@3.0.5': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartexit': 1.0.23 + '@push.rocks/smartpromise': 4.0.3 + '@types/which': 3.0.4 + tree-kill: 1.2.2 + which: 4.0.0 + + '@push.rocks/smartsitemap@2.0.3': + dependencies: + '@push.rocks/smartcache': 1.0.16 + '@push.rocks/smartfeed': 1.0.11 + '@push.rocks/smartxml': 1.0.8 + '@push.rocks/smartyaml': 2.0.5 + '@push.rocks/webrequest': 3.0.37 + '@tsclass/tsclass': 4.0.60 + + '@push.rocks/smartsocket@2.0.27': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@api.global/typedserver': 3.0.50 + '@push.rocks/isohash': 2.0.1 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smarttime': 4.0.6 + engine.io: 6.5.4 + socket.io: 4.7.5 + socket.io-client: 4.7.5 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@push.rocks/smartspawn@3.0.3': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + spawn-wrap: 2.0.0 + threads: 1.7.0 + tiny-worker: 2.3.0 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartstate@2.0.17': + dependencies: + '@push.rocks/isohash': 2.0.1 + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/webstore': 2.0.20 + + '@push.rocks/smartstream@2.0.8': + dependencies: + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@types/from2': 2.3.5 + '@types/through2': 2.0.41 + from2: 2.3.0 + through2: 4.0.2 + + '@push.rocks/smartstream@3.0.44': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + + '@push.rocks/smartstring@4.0.15': + dependencies: + '@push.rocks/isounique': 1.0.5 + '@push.rocks/smartenv': 5.0.12 + '@types/randomatic': 3.1.5 + crypto-random-string: 5.0.0 + js-base64: 3.7.7 + randomatic: 3.1.1 + strip-indent: 4.0.0 + url: 0.11.3 + + '@push.rocks/smarttime@4.0.6': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.0.3 + croner: 7.0.7 + dayjs: 1.11.11 + is-nan: 1.3.2 + pretty-ms: 8.0.0 + + '@push.rocks/smartunique@3.0.9': + dependencies: + '@types/uuid': 9.0.8 + nanoid: 4.0.2 + uuid: 9.0.1 + + '@push.rocks/smartupdate@2.0.6': + dependencies: + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/npmextra': 3.0.14 + '@push.rocks/smartnpm': 2.0.4 + '@push.rocks/smartopen': 2.0.0 + '@push.rocks/smarttime': 4.0.6 + '@push.rocks/smartversion': 3.0.5 + + '@push.rocks/smarturl@3.0.7': {} + + '@push.rocks/smartversion@3.0.5': + dependencies: + '@types/semver': 7.5.8 + semver: 7.6.2 + + '@push.rocks/smartxml@1.0.8': + dependencies: + fast-xml-parser: 4.4.0 + + '@push.rocks/smartyaml@2.0.5': + dependencies: + '@types/js-yaml': 3.12.10 + js-yaml: 3.14.1 + + '@push.rocks/tapbundle@5.0.23': + dependencies: + '@open-wc/testing': 4.0.0 + '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartexpect': 1.0.21 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smarttime': 4.0.6 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@push.rocks/taskbuffer@3.1.7': + dependencies: + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartlog': 3.0.7 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smarttime': 4.0.6 + '@push.rocks/smartunique': 3.0.9 + + '@push.rocks/webrequest@3.0.37': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/webstore': 2.0.20 + + '@push.rocks/websetup@3.0.19': + dependencies: + '@pushrocks/smartdelay': 3.0.1 + '@pushrocks/smartpromise': 4.0.2 + '@tsclass/tsclass': 4.0.60 + + '@push.rocks/webstore@2.0.20': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/lik': 6.0.15 + '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartrx': 3.0.7 + '@tempfix/idb': 8.0.3 + fake-indexeddb: 5.0.2 + + '@push.rocks/webstream@1.0.10': + dependencies: + '@push.rocks/smartenv': 5.0.12 + + '@pushrocks/isounique@1.0.5': {} + + '@pushrocks/lik@4.0.22': + dependencies: + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartmatch': 1.0.7 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrx': 2.0.27 + '@pushrocks/smarttime': 3.0.50 + '@types/minimatch': 3.0.5 + symbol-tree: 3.2.4 + + '@pushrocks/lik@5.0.7': + dependencies: + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartmatch': 1.0.7 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrx': 2.0.27 + '@pushrocks/smarttime': 3.0.50 + '@types/minimatch': 3.0.5 + symbol-tree: 3.2.4 + + '@pushrocks/lik@6.0.2': + dependencies: + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartmatch': 2.0.0 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrx': 3.0.2 + '@pushrocks/smarttime': 4.0.1 + '@types/minimatch': 5.1.2 + '@types/symbol-tree': 3.2.5 + symbol-tree: 3.2.4 + + '@pushrocks/projectinfo@5.0.1': + dependencies: + '@pushrocks/smartfile': 9.0.6 + '@pushrocks/smartpath': 5.0.5 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartstring': 4.0.7 + + '@pushrocks/smartdelay@2.0.13': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + + '@pushrocks/smartdelay@3.0.1': + dependencies: + '@pushrocks/smartpromise': 4.0.2 + + '@pushrocks/smartenv@5.0.5': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + + '@pushrocks/smarterror@2.0.1': + dependencies: + clean-stack: 1.3.0 + make-error-cause: 2.3.0 + + '@pushrocks/smartexit@1.0.20': + dependencies: + '@pushrocks/lik': 4.0.22 + '@pushrocks/smartdelay': 2.0.13 + + '@pushrocks/smartfile-interfaces@1.0.7': {} + + '@pushrocks/smartfile@10.0.26': + dependencies: + '@pushrocks/lik': 6.0.2 + '@pushrocks/smartdelay': 3.0.1 + '@pushrocks/smartfile-interfaces': 1.0.7 + '@pushrocks/smarthash': 3.0.2 + '@pushrocks/smartjson': 5.0.6 + '@pushrocks/smartmime': 1.0.5 + '@pushrocks/smartpath': 5.0.5 + '@pushrocks/smartpromise': 4.0.2 + '@pushrocks/smartrequest': 2.0.15 + '@pushrocks/smartstream': 2.0.3 + '@pushrocks/streamfunction': 4.0.4 + '@types/fs-extra': 11.0.4 + '@types/glob': 8.1.0 + '@types/js-yaml': 4.0.9 + fs-extra: 11.2.0 + glob: 10.4.2 + js-yaml: 4.1.0 + + '@pushrocks/smartfile@9.0.6': + dependencies: + '@pushrocks/lik': 5.0.7 + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartfile-interfaces': 1.0.7 + '@pushrocks/smarthash': 2.1.10 + '@pushrocks/smartjson': 4.0.6 + '@pushrocks/smartmime': 1.0.5 + '@pushrocks/smartpath': 4.0.3 + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrequest': 1.1.56 + '@types/fs-extra': 9.0.13 + '@types/glob': 7.2.0 + '@types/js-yaml': 4.0.9 + fs-extra: 10.1.0 + glob: 7.2.3 + js-yaml: 4.1.0 + + '@pushrocks/smarthash@2.1.10': + dependencies: + '@pushrocks/smartjson': 4.0.6 + '@pushrocks/smartpromise': 3.1.10 + '@types/through2': 2.0.41 + through2: 4.0.2 + + '@pushrocks/smarthash@3.0.2': + dependencies: + '@pushrocks/smartjson': 5.0.6 + '@pushrocks/smartpromise': 3.1.10 + '@types/through2': 2.0.41 + through2: 4.0.2 + + '@pushrocks/smartjson@4.0.6': + dependencies: + '@types/buffer-json': 2.0.3 + '@types/fast-json-stable-stringify': 2.1.0 + buffer-json: 2.0.0 + fast-json-stable-stringify: 2.1.0 + lodash.clonedeep: 4.5.0 + + '@pushrocks/smartjson@5.0.6': + dependencies: + '@pushrocks/smartstring': 4.0.7 + '@types/buffer-json': 2.0.3 + buffer-json: 2.0.0 + fast-json-stable-stringify: 2.1.0 + lodash.clonedeep: 4.5.0 + + '@pushrocks/smartmatch@1.0.7': + dependencies: + matcher: 3.0.0 + + '@pushrocks/smartmatch@2.0.0': + dependencies: + matcher: 5.0.0 + + '@pushrocks/smartmime@1.0.5': + dependencies: + '@types/mime-types': 2.1.4 + mime-types: 2.1.35 + + '@pushrocks/smartpath@4.0.3': {} + + '@pushrocks/smartpath@5.0.5': {} + + '@pushrocks/smartping@1.0.8': + dependencies: + '@types/ping': 0.4.4 + ping: 0.4.4 + + '@pushrocks/smartpromise@3.1.10': {} + + '@pushrocks/smartpromise@4.0.2': {} + + '@pushrocks/smartrequest@1.1.56': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smarturl': 2.0.1 + agentkeepalive: 4.5.0 + form-data: 4.0.0 + + '@pushrocks/smartrequest@2.0.15': + dependencies: + '@pushrocks/smartpromise': 4.0.2 + '@pushrocks/smarturl': 3.0.6 + agentkeepalive: 4.5.0 + form-data: 4.0.0 + + '@pushrocks/smartrx@2.0.27': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + rxjs: 7.8.1 + + '@pushrocks/smartrx@3.0.2': + dependencies: + '@pushrocks/smartpromise': 4.0.2 + rxjs: 7.8.1 + + '@pushrocks/smartshell@2.0.30': + dependencies: + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartexit': 1.0.20 + '@pushrocks/smartpromise': 3.1.10 + '@types/which': 2.0.2 + tree-kill: 1.2.2 + which: 2.0.2 + + '@pushrocks/smartstream@2.0.3': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrx': 2.0.27 + '@types/from2': 2.3.5 + '@types/through2': 2.0.41 + from2: 2.3.0 + through2: 4.0.2 + + '@pushrocks/smartstring@4.0.7': + dependencies: + '@pushrocks/isounique': 1.0.5 + '@pushrocks/smartenv': 5.0.5 + '@types/randomatic': 3.1.5 + buffer: 6.0.3 + crypto-random-string: 5.0.0 + js-base64: 3.7.7 + normalize-newline: 4.1.0 + randomatic: 3.1.1 + strip-indent: 4.0.0 + url: 0.11.3 + + '@pushrocks/smarttime@3.0.50': + dependencies: + '@pushrocks/lik': 5.0.7 + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartpromise': 3.1.10 + croner: 4.4.1 + dayjs: 1.11.11 + is-nan: 1.3.2 + pretty-ms: 7.0.1 + + '@pushrocks/smarttime@4.0.1': + dependencies: + '@pushrocks/lik': 6.0.2 + '@pushrocks/smartdelay': 2.0.13 + '@pushrocks/smartpromise': 3.1.10 + croner: 5.7.0 + dayjs: 1.11.11 + is-nan: 1.3.2 + pretty-ms: 8.0.0 + + '@pushrocks/smarturl@2.0.1': {} + + '@pushrocks/smarturl@3.0.6': {} + + '@pushrocks/smartversion@3.0.2': + dependencies: + '@types/semver': 7.5.8 + semver: 7.6.2 + + '@pushrocks/streamfunction@4.0.4': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + '@pushrocks/smartrx': 2.0.27 + '@types/from2': 2.3.5 + '@types/through2': 2.0.41 + from2: 2.3.0 + through2: 4.0.2 + + '@sindresorhus/is@5.6.0': {} + + '@socket.io/component-emitter@3.1.2': {} + + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + + '@tempfix/idb@8.0.3': {} + + '@tempfix/watcher@2.3.0': + dependencies: + stubborn-fs: 1.2.5 + + '@tokenizer/token@0.3.0': {} + + '@tsclass/tsclass@3.0.48': + dependencies: + type-fest: 2.19.0 + + '@tsclass/tsclass@4.0.60': + dependencies: + type-fest: 4.20.1 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/accepts@1.3.7': + dependencies: + '@types/node': 20.14.7 + + '@types/babel__code-frame@7.0.6': {} + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.14.7 + + '@types/buffer-json@2.0.3': {} + + '@types/chai-dom@1.11.3': + dependencies: + '@types/chai': 4.3.16 + + '@types/chai@4.3.16': {} + + '@types/clean-css@4.2.11': + dependencies: + '@types/node': 20.14.7 + source-map: 0.6.1 + + '@types/co-body@6.1.3': + dependencies: + '@types/node': 20.14.7 + '@types/qs': 6.9.15 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.14.7 + + '@types/content-disposition@0.5.8': {} + + '@types/convert-source-map@2.0.3': {} + + '@types/cookie@0.4.1': {} + + '@types/cookies@0.9.0': + dependencies: + '@types/connect': 3.4.38 + '@types/express': 4.17.21 + '@types/keygrip': 1.0.6 + '@types/node': 20.14.7 + + '@types/cors@2.8.17': + dependencies: + '@types/node': 20.14.7 + + '@types/debounce@1.2.4': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/default-gateway@3.0.1': {} + + '@types/express-serve-static-core@4.19.5': + dependencies: + '@types/node': 20.14.7 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + + '@types/fast-json-stable-stringify@2.1.0': + dependencies: + fast-json-stable-stringify: 2.1.0 + + '@types/from2@2.3.5': + dependencies: + '@types/node': 20.14.7 + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.14.7 + + '@types/fs-extra@9.0.13': + dependencies: + '@types/node': 20.14.7 + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.14.7 + + '@types/glob@8.1.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.14.7 + + '@types/gunzip-maybe@1.4.2': + dependencies: + '@types/node': 20.14.7 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.2 + + '@types/html-minifier@4.0.5': + dependencies: + '@types/clean-css': 4.2.11 + '@types/relateurl': 0.2.33 + '@types/uglify-js': 3.17.5 + + '@types/http-assert@1.5.5': {} + + '@types/http-cache-semantics@4.0.4': {} + + '@types/http-errors@2.0.4': {} + + '@types/inquirer@9.0.7': + dependencies: + '@types/through': 0.0.33 + rxjs: 7.8.1 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/js-yaml@3.12.10': {} + + '@types/js-yaml@4.0.9': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 20.14.7 + + '@types/keygrip@1.0.6': {} + + '@types/koa-compose@3.2.8': + dependencies: + '@types/koa': 2.15.0 + + '@types/koa@2.15.0': + dependencies: + '@types/accepts': 1.3.7 + '@types/content-disposition': 0.5.8 + '@types/cookies': 0.9.0 + '@types/http-assert': 1.5.5 + '@types/http-errors': 2.0.4 + '@types/keygrip': 1.0.6 + '@types/koa-compose': 3.2.8 + '@types/node': 20.14.7 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.2 + + '@types/mime-types@2.1.4': {} + + '@types/mime@1.3.5': {} + + '@types/minimatch@3.0.5': {} + + '@types/minimatch@5.1.2': {} + + '@types/minio@7.1.1': + dependencies: + minio: 7.1.3 + + '@types/ms@0.7.34': {} + + '@types/node@20.14.7': + dependencies: + undici-types: 5.26.5 + + '@types/parse5@6.0.3': {} + + '@types/ping@0.4.4': {} + + '@types/qs@6.9.15': {} + + '@types/randomatic@3.1.5': {} + + '@types/range-parser@1.2.7': {} + + '@types/relateurl@0.2.33': {} + + '@types/semver@7.5.8': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.14.7 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.14.7 + '@types/send': 0.17.4 + + '@types/sinon-chai@3.2.12': + dependencies: + '@types/chai': 4.3.16 + '@types/sinon': 17.0.3 + + '@types/sinon@17.0.3': + dependencies: + '@types/sinonjs__fake-timers': 8.1.5 + + '@types/sinonjs__fake-timers@8.1.5': {} + + '@types/symbol-tree@3.2.5': {} + + '@types/tar-stream@2.2.3': + dependencies: + '@types/node': 20.14.7 + + '@types/through2@2.0.41': + dependencies: + '@types/node': 20.14.7 + + '@types/through@0.0.33': + dependencies: + '@types/node': 20.14.7 + + '@types/trusted-types@2.0.7': {} + + '@types/turndown@5.0.4': {} + + '@types/uglify-js@3.17.5': + dependencies: + source-map: 0.6.1 + + '@types/unist@3.0.2': {} + + '@types/uuid@9.0.8': {} + + '@types/which@2.0.2': {} + + '@types/which@3.0.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 20.14.7 + + '@types/ws@8.5.10': + dependencies: + '@types/node': 20.14.7 + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 20.14.7 + optional: true + + '@ungap/structured-clone@1.2.0': {} + + '@web/browser-logs@0.4.0': + dependencies: + errorstacks: 2.4.1 + + '@web/dev-server-core@0.7.2': + dependencies: + '@types/koa': 2.15.0 + '@types/ws': 7.4.7 + '@web/parse5-utils': 2.1.0 + chokidar: 3.6.0 + clone: 2.1.2 + es-module-lexer: 1.5.3 + get-stream: 6.0.1 + is-stream: 2.0.1 + isbinaryfile: 5.0.2 + koa: 2.15.3 + koa-etag: 4.0.0 + koa-send: 5.0.1 + koa-static: 5.0.0 + lru-cache: 8.0.5 + mime-types: 2.1.35 + parse5: 6.0.1 + picomatch: 2.3.1 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@web/parse5-utils@2.1.0': + dependencies: + '@types/parse5': 6.0.3 + parse5: 6.0.1 + + '@web/test-runner-commands@0.9.0': + dependencies: + '@web/test-runner-core': 0.13.2 + mkdirp: 1.0.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@web/test-runner-core@0.13.2': + dependencies: + '@babel/code-frame': 7.24.7 + '@types/babel__code-frame': 7.0.6 + '@types/co-body': 6.1.3 + '@types/convert-source-map': 2.0.3 + '@types/debounce': 1.2.4 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@web/browser-logs': 0.4.0 + '@web/dev-server-core': 0.7.2 + chokidar: 3.6.0 + cli-cursor: 3.1.0 + co-body: 6.2.0 + convert-source-map: 2.0.0 + debounce: 1.2.1 + dependency-graph: 0.11.0 + globby: 11.1.0 + ip: 2.0.1 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.7 + log-update: 4.0.0 + nanocolors: 0.2.13 + nanoid: 3.3.7 + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@zxing/text-encoding@0.9.0': + optional: true + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.0 + + acorn@8.12.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + aggregate-error@4.0.1: + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + + ansi-256-colors@1.1.0: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-flatten@1.1.1: {} + + array-parallel@0.1.3: {} + + array-series@0.1.5: {} + + array-union@2.1.0: {} + + astral-regex@2.0.0: {} + + async@3.2.5: {} + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.9.1: {} + + b4a@1.6.6: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + bare-events@2.4.2: + optional: true + + base64-arraybuffer-es6@0.7.0: {} + + base64-js@1.5.1: {} + + base64id@2.0.0: {} + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + block-stream2@2.1.0: + dependencies: + readable-stream: 3.6.2 + + body-parser@1.20.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + broadcast-channel@7.0.0: + dependencies: + '@babel/runtime': 7.23.4 + oblivious-set: 1.4.0 + p-queue: 6.6.2 + unload: 2.4.1 + + browser-or-node@2.1.1: {} + + browserify-zlib@0.1.4: + dependencies: + pako: 0.2.9 + + buffer-crc32@0.2.13: {} + + buffer-from@1.1.2: {} + + buffer-json@2.0.0: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bytes@3.1.2: {} + + cache-content-type@1.0.1: + dependencies: + mime-types: 2.1.35 + ylru: 1.4.0 + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.1 + responselike: 3.0.0 + + call-bind@1.0.7: + dependencies: + 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: {} + + camel-case@3.0.0: + dependencies: + no-case: 2.3.2 + upper-case: 1.1.3 + + ccount@2.0.1: {} + + chai-a11y-axe@1.5.0: + dependencies: + axe-core: 4.9.1 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + chardet@0.7.0: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@1.1.4: {} + + chownr@2.0.0: {} + + clean-css@4.2.4: + dependencies: + source-map: 0.6.1 + + clean-stack@1.3.0: {} + + clean-stack@4.2.0: + dependencies: + escape-string-regexp: 5.0.0 + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.9.2: {} + + cli-width@4.1.0: {} + + clone@1.0.4: {} + + clone@2.1.2: {} + + co-body@6.2.0: + dependencies: + '@hapi/bourne': 3.0.0 + inflation: 2.1.0 + qs: 6.12.1 + raw-body: 2.5.2 + type-is: 1.6.18 + + co@4.6.0: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.4.2: {} + + cookie@0.6.0: {} + + cookies@0.9.1: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + core-util-is@1.0.3: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + create-require@1.1.1: {} + + croner@4.4.1: {} + + croner@5.7.0: {} + + croner@7.0.7: {} + + cross-fetch@3.1.5: + dependencies: + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + + cross-spawn@4.0.2: + dependencies: + lru-cache: 4.1.5 + which: 1.3.1 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-random-string@5.0.0: + dependencies: + type-fest: 2.19.0 + + css.escape@1.5.1: {} + + dayjs@1.11.11: {} + + debounce@1.2.1: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + debug@4.3.5: + dependencies: + ms: 2.1.2 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + decode-uri-component@0.2.2: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-equal@1.0.1: {} + + deep-extend@0.6.0: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delayed-stream@1.0.0: {} + + delegates@1.0.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + dependency-graph@0.11.0: {} + + dequal@2.0.3: {} + + destroy@1.2.0: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + devtools-protocol@0.0.1019158: {} + + diff@4.0.2: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dns-packet@5.6.1: + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + + dns-socket@4.2.2: + dependencies: + dns-packet: 5.6.1 + + domexception@1.0.1: + dependencies: + webidl-conversions: 4.0.2 + + duplexify@3.7.1: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.3 + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@1.0.2: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + engine.io-client@6.5.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.5 + engine.io-parser: 5.2.2 + ws: 8.17.1 + xmlhttprequest-ssl: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.2: {} + + engine.io@6.5.4: + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 20.14.7 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.5 + engine.io-parser: 5.2.2 + ws: 8.11.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + entities@2.2.0: {} + + entities@4.5.0: {} + + errorstacks@2.4.1: {} + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.3: {} + + 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 + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + esm@3.2.25: {} + + esprima@4.0.1: {} + + etag@1.8.1: {} + + eventemitter3@4.0.7: {} + + express-force-ssl@0.3.2: + dependencies: + lodash.assign: 3.2.0 + + express@4.19.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + extract-zip@2.0.1: + dependencies: + debug: 4.3.4 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + fake-indexeddb@4.0.2: + dependencies: + realistic-structured-clone: 3.0.0 + + fake-indexeddb@5.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-fifo@1.3.2: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-json-stable-stringify@2.1.0: {} + + fast-xml-parser@4.4.0: + dependencies: + strnum: 1.0.5 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fault@2.0.1: + dependencies: + format: 0.2.2 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + feed@4.2.2: + dependencies: + xml-js: 1.6.11 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.0.0 + + file-type@19.0.0: + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 7.0.0 + token-types: 5.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + filter-obj@1.1.0: {} + + finalhandler@1.2.0: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@2.0.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + + foreground-child@3.2.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data-encoder@2.1.4: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + format@0.2.2: {} + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + fs-constants@1.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-intrinsic@1.2.4: + dependencies: + 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@5.2.0: + dependencies: + pump: 3.0.0 + + get-stream@6.0.1: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.2: + dependencies: + foreground-child: 3.2.1 + jackspeak: 3.4.0 + minimatch: 9.0.4 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.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 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + + gm@1.25.0: + dependencies: + array-parallel: 0.1.3 + array-series: 0.1.5 + cross-spawn: 4.0.2 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + got@12.6.1: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + gunzip-maybe@1.4.2: + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.5.1 + through2: 2.0.5 + + handlebars@4.7.8: + 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 + + happy-dom@8.9.0: + dependencies: + css.escape: 1.5.1 + he: 1.2.0 + iconv-lite: 0.6.3 + node-fetch: 2.7.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + transitivePeerDependencies: + - encoding + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-from-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-sanitize@5.0.1: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.2.0 + unist-util-position: 5.0.0 + + hast-util-to-html@9.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.4 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + he@1.2.0: {} + + html-escaper@2.0.2: {} + + html-minifier@4.0.0: + dependencies: + camel-case: 3.0.0 + clean-css: 4.2.4 + commander: 2.20.3 + he: 1.2.0 + param-case: 2.1.1 + relateurl: 0.2.7 + uglify-js: 3.18.0 + + html-void-elements@3.0.0: {} + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-cache-semantics@4.1.1: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.1: {} + + indent-string@5.0.0: {} + + inflation@2.1.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + inquirer@9.2.23: + dependencies: + '@inquirer/figures': 1.0.3 + '@ljharb/through': 2.3.13 + ansi-escapes: 4.3.2 + chalk: 5.3.0 + cli-cursor: 3.1.0 + cli-width: 4.1.0 + external-editor: 3.1.0 + lodash: 4.17.21 + mute-stream: 1.0.0 + ora: 5.4.1 + run-async: 3.0.0 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + ip-regex@5.0.0: {} + + ip@2.0.1: {} + + ipaddr.js@1.9.1: {} + + ipaddr.js@2.2.0: {} + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-callable@1.2.7: {} + + is-deflate@1.0.0: {} + + is-docker@2.2.1: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-gzip@1.0.0: {} + + is-interactive@1.0.0: {} + + is-ip@4.0.0: + dependencies: + ip-regex: 5.0.0 + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + is-number@4.0.0: {} + + is-number@7.0.0: {} + + is-observable@2.1.0: {} + + is-plain-obj@4.1.0: {} + + is-stream@2.0.1: {} + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-unicode-supported@0.1.0: {} + + is-unicode-supported@2.0.0: {} + + is-windows@1.0.2: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@1.0.0: {} + + isbinaryfile@5.0.2: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + isopen@1.3.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.0: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + js-base64@3.7.7: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-stream@1.0.0: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + koa-compose@4.1.0: {} + + koa-convert@2.0.0: + dependencies: + co: 4.6.0 + koa-compose: 4.1.0 + + koa-etag@4.0.0: + dependencies: + etag: 1.8.1 + + koa-send@5.0.1: + dependencies: + debug: 4.3.5 + http-errors: 1.8.1 + resolve-path: 1.4.0 + transitivePeerDependencies: + - supports-color + + koa-static@5.0.0: + dependencies: + debug: 3.2.7 + koa-send: 5.0.1 + transitivePeerDependencies: + - supports-color + + koa@2.15.3: + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + debug: 4.3.5 + delegates: 1.0.0 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.0.10 + koa-compose: 4.1.0 + koa-convert: 2.0.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.18 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + lit-element@3.3.3: + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 1.6.3 + lit-html: 2.8.0 + + lit-element@4.0.6: + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 + lit-html: 3.1.4 + + lit-html@2.8.0: + dependencies: + '@types/trusted-types': 2.0.7 + + lit-html@3.1.4: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@2.8.0: + dependencies: + '@lit/reactive-element': 1.6.3 + lit-element: 3.3.3 + lit-html: 2.8.0 + + lit@3.1.4: + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.0.6 + lit-html: 3.1.4 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lodash._baseassign@3.2.0: + dependencies: + lodash._basecopy: 3.0.1 + lodash.keys: 3.1.2 + + lodash._basecopy@3.0.1: {} + + lodash._bindcallback@3.0.1: {} + + lodash._createassigner@3.1.1: + dependencies: + lodash._bindcallback: 3.0.1 + lodash._isiterateecall: 3.0.9 + lodash.restparam: 3.6.1 + + lodash._getnative@3.9.1: {} + + lodash._isiterateecall@3.0.9: {} + + lodash.assign@3.2.0: + dependencies: + lodash._baseassign: 3.2.0 + lodash._createassigner: 3.1.1 + lodash.keys: 3.1.2 + + lodash.clonedeep@4.5.0: {} + + lodash.isarguments@3.1.0: {} + + lodash.isarray@3.0.4: {} + + lodash.keys@3.1.2: + dependencies: + lodash._getnative: 3.9.1 + lodash.isarguments: 3.1.0 + lodash.isarray: 3.0.4 + + lodash.restparam@3.6.1: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + + longest-streak@3.1.0: {} + + lower-case@1.1.4: {} + + lowercase-keys@3.0.0: {} + + lru-cache@10.2.2: {} + + lru-cache@4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + + lru-cache@8.0.5: {} + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-dir@4.0.0: + dependencies: + semver: 7.6.2 + + make-error-cause@2.3.0: + dependencies: + make-error: 1.3.6 + + make-error@1.3.6: {} + + markdown-table@3.0.3: {} + + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + + matcher@5.0.0: + dependencies: + escape-string-regexp: 5.0.0 + + math-random@1.0.4: {} + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + media-typer@0.3.0: {} + + merge-descriptors@1.0.1: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-autolink-literal@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.0.0 + micromark-extension-gfm-footnote: 2.0.0 + micromark-extension-gfm-strikethrough: 2.0.0 + micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.0.1 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.5 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@4.0.3: {} + + mimic-fn@2.1.0: {} + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.4: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minio@7.1.3: + dependencies: + async: 3.2.5 + block-stream2: 2.1.0 + browser-or-node: 2.1.1 + buffer-crc32: 0.2.13 + fast-xml-parser: 4.4.0 + ipaddr.js: 2.2.0 + json-stream: 1.0.0 + lodash: 4.17.21 + mime-types: 2.1.35 + query-string: 7.1.3 + through2: 4.0.2 + web-encoding: 1.1.5 + xml: 1.0.1 + xml2js: 0.5.0 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp-classic@0.5.3: {} + + mkdirp@1.0.4: {} + + ms@2.0.0: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + mute-stream@1.0.0: {} + + nanocolors@0.2.13: {} + + nanoid@3.3.7: {} + + nanoid@4.0.2: {} + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + no-case@2.3.2: + dependencies: + lower-case: 1.1.4 + + node-fetch@2.6.7: + dependencies: + whatwg-url: 5.0.0 + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + normalize-newline@4.1.0: + dependencies: + replace-buffer: 1.2.1 + + normalize-path@3.0.0: {} + + normalize-url@8.0.1: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.1: {} + + object-keys@1.1.1: {} + + oblivious-set@1.4.0: {} + + observable-fns@0.6.1: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + only@0.0.2: {} + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + ora@5.4.1: + 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 + + os-tmpdir@1.0.2: {} + + p-cancelable@3.0.0: {} + + p-finally@1.0.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + p-try@2.2.0: {} + + package-json-from-dist@1.0.0: {} + + package-json@8.1.1: + dependencies: + got: 12.6.1 + registry-auth-token: 5.0.2 + registry-url: 6.0.1 + semver: 7.6.2 + + pako@0.2.9: {} + + pako@1.0.11: {} + + param-case@2.1.1: + dependencies: + no-case: 2.3.2 + + parse-ms@2.1.0: {} + + parse-ms@3.0.0: {} + + parse5@6.0.1: {} + + parse5@7.1.2: + dependencies: + entities: 4.5.0 + + parseurl@1.3.3: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.2 + + path-to-regexp@0.1.7: {} + + path-to-regexp@6.2.2: {} + + path-type@4.0.0: {} + + pdf-lib@1.17.1: + dependencies: + '@pdf-lib/standard-fonts': 1.0.0 + '@pdf-lib/upng': 1.0.1 + pako: 1.0.11 + tslib: 1.14.1 + + pdf2json@3.0.5: {} + + pdf2pic@3.1.1: + dependencies: + gm: 1.25.0 + transitivePeerDependencies: + - supports-color + + peek-readable@5.0.0: {} + + peek-stream@1.1.3: + dependencies: + buffer-from: 1.1.2 + duplexify: 3.7.1 + through2: 2.0.5 + + pend@1.2.0: {} + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + ping@0.4.4: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + possible-typed-array-names@1.0.0: {} + + prettier@3.3.2: {} + + pretty-ms@7.0.1: + dependencies: + parse-ms: 2.1.0 + + pretty-ms@8.0.0: + dependencies: + parse-ms: 3.0.0 + + process-nextick-args@2.0.1: {} + + progress@2.0.3: {} + + property-information@6.5.0: {} + + proto-list@1.2.4: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-from-env@1.1.0: {} + + pseudomap@1.0.2: {} + + public-ip@6.0.2: + dependencies: + aggregate-error: 4.0.1 + dns-socket: 4.2.2 + got: 12.6.1 + is-ip: 4.0.0 + + pump@2.0.1: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pump@3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pumpify@1.5.1: + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + puppeteer@15.5.0: + dependencies: + cross-fetch: 3.1.5 + debug: 4.3.4 + devtools-protocol: 0.0.1019158 + extract-zip: 2.0.1 + https-proxy-agent: 5.0.1 + pkg-dir: 4.2.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + rimraf: 3.0.2 + tar-fs: 2.1.1 + unbzip2-stream: 1.4.3 + ws: 8.8.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + qs@6.11.0: + dependencies: + side-channel: 1.0.6 + + qs@6.12.1: + dependencies: + side-channel: 1.0.6 + + query-string@7.1.3: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + + queue-microtask@1.2.3: {} + + queue-tick@1.0.1: {} + + quick-lru@5.1.1: {} + + randomatic@3.1.1: + dependencies: + is-number: 4.0.0 + kind-of: 6.0.3 + math-random: 1.0.4 + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + 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 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-web-to-node-stream@3.0.2: + dependencies: + readable-stream: 3.6.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + realistic-structured-clone@3.0.0: + dependencies: + domexception: 1.0.1 + typeson: 6.1.0 + typeson-registry: 1.0.0-alpha.39 + + regenerator-runtime@0.14.1: {} + + registry-auth-token@5.0.2: + dependencies: + '@pnpm/npm-conf': 2.2.2 + + registry-url@6.0.1: + dependencies: + rc: 1.2.8 + + relateurl@0.2.7: {} + + remark-frontmatter@5.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-html@16.0.1: + dependencies: + '@types/mdast': 4.0.4 + hast-util-sanitize: 5.0.1 + hast-util-to-html: 9.0.1 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + replace-buffer@1.2.1: {} + + resolve-alpn@1.2.1: {} + + resolve-path@1.4.0: + dependencies: + http-errors: 1.6.3 + path-is-absolute: 1.0.1 + + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rss-parser@3.13.0: + dependencies: + entities: 2.2.0 + xml2js: 0.5.0 + + run-async@3.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.6.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sax@1.4.1: {} + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@6.3.1: {} + + semver@7.6.2: {} + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serve-static@1.15.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + 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 + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + 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.1 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + socket.io-adapter@2.5.5: + dependencies: + debug: 4.3.5 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-client@4.7.5: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.5 + engine.io-client: 6.5.4 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + socket.io@4.7.5: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.5 + engine.io: 6.5.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + space-separated-tokens@2.0.2: {} + + spawn-wrap@2.0.0: + dependencies: + foreground-child: 2.0.0 + is-windows: 1.0.2 + make-dir: 3.1.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + which: 2.0.2 + + split-on-first@1.1.0: {} + + sprintf-js@1.0.3: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + stream-shift@1.0.3: {} + + streamx@2.18.0: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.0 + optionalDependencies: + bare-events: 2.4.2 + + strict-uri-encode@2.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom-string@1.0.0: {} + + strip-indent@4.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + + strnum@1.0.5: {} + + strtok3@7.0.0: + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 5.0.0 + + stubborn-fs@1.2.5: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + sweet-scroll@4.0.0: {} + + symbol-tree@3.2.4: {} + + systeminformation@5.22.11: {} + + tar-fs@2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.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-stream@3.1.7: + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.18.0 + + 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 + + text-decoder@1.1.0: + dependencies: + b4a: 1.6.6 + + threads@1.7.0: + dependencies: + callsites: 3.1.0 + debug: 4.3.5 + is-observable: 2.1.0 + observable-fns: 0.6.1 + optionalDependencies: + tiny-worker: 2.3.0 + transitivePeerDependencies: + - supports-color + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + through2@3.0.2: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + through@2.3.8: {} + + tiny-worker@2.3.0: + dependencies: + esm: 3.2.25 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + token-types@5.0.1: + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + + tr46@0.0.3: {} + + tr46@2.1.0: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-node@10.9.2(@types/node@20.14.7)(typescript@5.1.6): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.14.7 + acorn: 8.12.0 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.1.6 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tslib@1.14.1: {} + + tslib@2.6.3: {} + + tsscmp@1.0.6: {} + + turndown-plugin-gfm@1.0.2: {} + + turndown@7.2.0: + dependencies: + '@mixmark-io/domino': 2.2.0 + + type-fest@0.21.3: {} + + type-fest@2.19.0: {} + + type-fest@4.20.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typescript@5.1.6: {} + + typescript@5.3.3: {} + + typescript@5.4.5: {} + + typeson-registry@1.0.0-alpha.39: + dependencies: + base64-arraybuffer-es6: 0.7.0 + typeson: 6.1.0 + whatwg-url: 8.7.0 + + typeson@6.1.0: {} + + uglify-js@3.18.0: {} + + uint8array-extras@1.1.0: {} + + unbzip2-stream@1.4.3: + dependencies: + buffer: 5.7.1 + through: 2.3.8 + + undici-types@5.26.5: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.1 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.2 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.2 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.2 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@2.0.1: {} + + unload@2.4.1: {} + + unpipe@1.0.0: {} + + upper-case@1.1.3: {} + + url@0.11.3: + dependencies: + punycode: 1.4.1 + qs: 6.12.1 + + util-deprecate@1.0.2: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + + utils-merge@1.0.1: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + vary@1.1.2: {} + + vfile-location@5.0.2: + dependencies: + '@types/unist': 3.0.2 + vfile: 6.0.1 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.1: + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + web-encoding@1.1.5: + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + + web-namespaces@2.0.1: {} + + webidl-conversions@3.0.1: {} + + webidl-conversions@4.0.2: {} + + webidl-conversions@6.1.0: {} + + webidl-conversions@7.0.0: {} + + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@3.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + whatwg-url@8.7.0: + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + + which-typed-array@1.1.15: + dependencies: + 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@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + 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 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@7.5.10: {} + + ws@8.11.0: {} + + ws@8.17.1: {} + + ws@8.8.0: {} + + xml-js@1.6.11: + dependencies: + sax: 1.4.1 + + xml2js@0.5.0: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + + xml@1.0.1: {} + + xmlbuilder@11.0.1: {} + + xmlhttprequest-ssl@2.0.0: {} + + xtend@4.0.2: {} + + yallist@2.1.2: {} + + yallist@4.0.0: {} + + yargs-parser@21.1.1: {} + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + ylru@1.4.0: {} + + yn@3.1.1: {} + + zwitch@2.0.4: {} diff --git a/readme.hints.md b/readme.hints.md new file mode 100644 index 0000000..1062f0d --- /dev/null +++ b/readme.hints.md @@ -0,0 +1 @@ +* the cli of the git.zone project. diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..1961dbb --- /dev/null +++ b/readme.md @@ -0,0 +1,207 @@ +# @git.zone/cli + +A CLI toolbelt to streamline local development cycles by using various gitzone utilities. + +## Install + +To install the `@git.zone/cli` tool, you need to have Node.js and npm installed on your machine. Once you have those set up, you can install the CLI tool globally using the following command: + +```shell +npm install -g @git.zone/cli +``` + +This will add the `gitzone` or `gzone` command to your PATH, allowing you to use the tool from any directory. + +## Usage + +The `gitzone` CLI is designed to streamline various aspects of the local development cycle, including project setup, maintenance, and deployment. Below, we'll go through several scenarios that demonstrate the capabilities of `gitzone`. + +### Getting Started + +To start using `gitzone`, you need to initialize a new project or use it with an existing one. This section will guide you through the initial setup and provide examples of the core commands. + +#### Initialize a New Project + +`gitzone` can create several types of projects, including standard npm modules, websites using LitElement, and custom web components. To create a new project, you can use the following command: + +```shell +gitzone template [templatename] +``` + +Replace `[templatename]` with one of the following: +- `npm`: A standard npm module with TypeScript support, testing, and CI/CD setup. +- `website`: A LitElement-based website with e2e testing, bundling, and service worker support. +- `element`: A LitElement standard setup for creating web components. + +Example of starting a new npm project: +1. Open your terminal and navigate to the directory where you want to create your project. +2. Execute the following command: + ```shell + gitzone template npm + ``` +3. Follow the interactive prompts to set up your project. You will be asked to provide information such as the project name, description, GitHub repository, etc. + +#### Committing Changes + +To standardize commit messages and increment versions based on change types (fix, feat, breaking change): + +```shell +gitzone commit +``` + +This command will prompt you with a series of questions to help construct a standardized commit message and create a new commit. + +#### Deprecating a Package + +To deprecate an old package in favor of a new one: + +```shell +gitzone deprecate +``` + +This command will prompt you for the old and new package names and will automatically deprecate the old package on npm. + +#### Opening CI/CD Settings + +Quickly open the CI/CD settings page of your project repository: + +```shell +gitzone open ci +``` + +### Example Commands + +#### Project Setup and Initialization + +Let's go through how to scaffold a new web component project: + +1. Navigate to your desired directory. +2. Run the following command: + ```shell + gitzone template element + ``` +3. Follow the prompts to set up your web component project. + +#### Managing Project Lifecycle + +Commands to manage your project's lifecycle: + +- **Commit Changes:** + ```shell + gitzone commit + ``` +- **Deprecate a Package:** + ```shell + gitzone deprecate + ``` +- **Format Project Files:** + ```shell + gitzone format + ``` +- **Regenerate Readme:** + ```shell + gitzone readme + ``` +- **Update Local Repositories:** + ```shell + gitzone update + ``` + +#### Advanced Scenarios + +##### Formatting + +To ensure consistent formatting using Prettier: + +```shell +gitzone format +``` + +##### Building the Project + +To build your project as defined in your `package.json`: + +```shell +npm run build +``` + +##### Git and Version Control + +Check the current project version: + +```shell +gitzone -v +``` + +To synchronize local repositories with remotes: + +```shell +gitzone update +``` + +##### Metadata and Configuration + +To initialize or update metadata: + +```shell +gitzone meta init +``` + +### Continuous Integration and Delivery (CI/CD) + +#### Running Tests + +To execute tests defined in your `package.json`: + +```shell +npm test +``` + +#### Building Documentation + +Generate documentation: + +```shell +npm run buildDocs +``` + +### Troubleshooting and Debugging + +#### Detailed Logs + +Enable detailed logging for troubleshooting: + +```shell +gitzone --loglevel=debug +``` + +#### Cleaning Up + +To clean up project artifacts: + +```shell +gitzone clean +``` + +### Summary + +The `gitzone` CLI tool provides a comprehensive suite of commands that streamline project setup, lifecycle management, and deployment, which are indispensable for modern development workflows. By familiarizing yourself with the different commands, you can maximize your productivity and focus on what really matters—writing code. Whether you are starting a new project, maintaining an existing one, or deploying your work, `gitzone` is your toolbelt for efficient development cycles. + +## License and Legal Information + +This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. + +**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file. + +### Trademarks + +This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH. + +### Company Information + +Task Venture Capital GmbH +Registered at District court Bremen HRB 35230 HB, Germany + +For any legal inquiries or if you require further information, please contact us via email at hello@task.vc. + +By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works. diff --git a/test b/test new file mode 160000 index 0000000..0b89443 --- /dev/null +++ b/test @@ -0,0 +1 @@ +Subproject commit 0b89443584ecd3a5948baacea665327165f102b5 diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts new file mode 100644 index 0000000..004a3db --- /dev/null +++ b/ts/00_commitinfo_data.ts @@ -0,0 +1,8 @@ +/** + * autocreated commitinfo by @pushrocks/commitinfo + */ +export const commitinfo = { + name: '@git.zone/cli', + version: '1.9.95', + description: 'A CLI toolbelt to streamline local development cycles by using various gitzone utilities.' +} diff --git a/ts/classes.gitzoneconfig.ts b/ts/classes.gitzoneconfig.ts new file mode 100644 index 0000000..7c43d08 --- /dev/null +++ b/ts/classes.gitzoneconfig.ts @@ -0,0 +1,47 @@ +import * as plugins from './plugins.js'; +import * as paths from './paths.js'; + +export type TGitzoneProjectType = 'npm' | 'service' | 'wcc' | 'website'; + +/** + * type of the actual gitzone data + */ +export interface IGitzoneConfigData { + projectType: TGitzoneProjectType; + module: { + githost: string; + gitscope: string; + gitrepo: string; + description: string; + npmPackageName: string; + license: string; + projectDomain: string; + }; + copy: {[key: string]: string} + npmciOptions: { + npmAccessLevel: 'public' | 'private'; + }; +} + +/** + * gitzone config + */ +export class GitzoneConfig { + public static async fromCwd() { + const gitzoneConfig = new GitzoneConfig(); + await gitzoneConfig.readConfigFromCwd(); + return gitzoneConfig; + } + + public data: IGitzoneConfigData; + + public async readConfigFromCwd() { + const npmextraInstance = new plugins.npmextra.Npmextra(paths.cwd); + this.data = npmextraInstance.dataFor('gitzone', {}); + this.data.npmciOptions = npmextraInstance.dataFor('npmci', { + npmAccessLevel: 'public', + }); + } + + constructor() {} +} diff --git a/ts/classes.project.ts b/ts/classes.project.ts new file mode 100644 index 0000000..f04af36 --- /dev/null +++ b/ts/classes.project.ts @@ -0,0 +1,28 @@ +import * as plugins from './plugins.js' +import * as paths from './paths.js'; + +import { GitzoneConfig } from './classes.gitzoneconfig.js'; +import type { TGitzoneProjectType } from './classes.gitzoneconfig.js'; + +/** + * the Project class is a tool to work with a gitzone project + */ +export class Project { + public static async fromCwd() { + const gitzoneConfig = await GitzoneConfig.fromCwd(); + const project = new Project(gitzoneConfig); + if (!project.gitzoneConfig.data.projectType) { + throw new Error('Please define a project type'); + } + return project; + } + + public gitzoneConfig: GitzoneConfig; + public get type(): TGitzoneProjectType { + return this.gitzoneConfig.data.projectType; + } + + constructor(gitzoneConfigArg: GitzoneConfig) { + this.gitzoneConfig = gitzoneConfigArg; + } +} diff --git a/ts/gitzone.cli.ts b/ts/gitzone.cli.ts new file mode 100644 index 0000000..9a59ee9 --- /dev/null +++ b/ts/gitzone.cli.ts @@ -0,0 +1,101 @@ +import * as plugins from './plugins.js'; +import * as paths from './paths.js'; +import { GitzoneConfig } from './classes.gitzoneconfig.js'; + +const gitzoneSmartcli = new plugins.smartcli.Smartcli(); + +export let run = async () => { + const done = plugins.smartpromise.defer(); + + // get packageInfo + const projectInfo = new plugins.projectinfo.ProjectInfo(paths.packageDir); + + // check for updates + const smartupdateInstance = new plugins.smartupdate.SmartUpdate(); + await smartupdateInstance.check( + 'gitzone', + projectInfo.npm.version, + 'http://gitzone.gitlab.io/gitzone/changelog.html' + ); + console.log('---------------------------------------------'); + gitzoneSmartcli.addVersion(projectInfo.npm.version); + + // ======> Standard task <====== + + /** + * standard task + */ + gitzoneSmartcli.standardCommand().subscribe(async (argvArg) => { + const modStandard = await import('./mod_standard/index.js'); + await modStandard.run(); + }); + + // ======> Specific tasks <====== + + /** + * commit something + */ + gitzoneSmartcli.addCommand('commit').subscribe(async (argvArg) => { + const modCommit = await import('./mod_commit/index.js'); + await modCommit.run(argvArg); + }); + + /** + * deprecate a package on npm + */ + gitzoneSmartcli.addCommand('deprecate').subscribe(async (argvArg) => { + const modDeprecate = await import('./mod_deprecate/index.js'); + await modDeprecate.run(); + }); + + /** + * Update all files that comply with the gitzone standard + */ + gitzoneSmartcli.addCommand('format').subscribe(async (argvArg) => { + const config = GitzoneConfig.fromCwd(); + const modFormat = await import('./mod_format/index.js'); + await modFormat.run(); + }); + + /** + * run meta commands + */ + gitzoneSmartcli.addCommand('meta').subscribe(async (argvArg) => { + const config = GitzoneConfig.fromCwd(); + const modMeta = await import('./mod_meta/index.js'); + modMeta.run(argvArg); + }); + + /** + * open assets + */ + gitzoneSmartcli.addCommand('open').subscribe(async (argvArg) => { + const modOpen = await import('./mod_open/index.js'); + modOpen.run(argvArg); + }); + + /** + * add a readme to a project + */ + gitzoneSmartcli.addCommand('template').subscribe(async (argvArg) => { + const modTemplate = await import('./mod_template/index.js'); + modTemplate.run(argvArg); + }); + + /** + * start working on a project + */ + gitzoneSmartcli.addCommand('start').subscribe(async (argvArg) => { + const modTemplate = await import('./mod_start/index.js'); + modTemplate.run(argvArg); + }); + + gitzoneSmartcli.addCommand('helpers').subscribe(async (argvArg) => { + const modHelpers = await import('./mod_helpers/index.js'); + modHelpers.run(argvArg); + }); + + // start parsing of the cli + gitzoneSmartcli.startParse(); + return await done.promise; +}; diff --git a/ts/gitzone.logging.ts b/ts/gitzone.logging.ts new file mode 100644 index 0000000..4c63095 --- /dev/null +++ b/ts/gitzone.logging.ts @@ -0,0 +1,15 @@ +import * as plugins from './plugins.js'; + +export const logger = new plugins.smartlog.Smartlog({ + minimumLogLevel: 'silly', + logContext: { + company: 'Task Venture Capital GmbH', + companyunit: 'Lossless Cloud', + containerName: 'local', + environment: 'local', + runtime: 'node', + zone: 'gitzone', + }, +}); + +logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal()); diff --git a/ts/index.ts b/ts/index.ts new file mode 100644 index 0000000..547da8d --- /dev/null +++ b/ts/index.ts @@ -0,0 +1,9 @@ +export const runCli = async () => { + const early = await import('@push.rocks/early'); + early.start('gitzone'); + const plugins = await import('./plugins.js'); + const gitzoneCli = await import('./gitzone.cli.js'); + early.stop().then(() => { + gitzoneCli.run(); + }); +}; diff --git a/ts/mod_audit/index.ts b/ts/mod_audit/index.ts new file mode 100644 index 0000000..3097e10 --- /dev/null +++ b/ts/mod_audit/index.ts @@ -0,0 +1 @@ +import * as paths from '../paths.js'; diff --git a/ts/mod_commit/index.ts b/ts/mod_commit/index.ts new file mode 100644 index 0000000..166e588 --- /dev/null +++ b/ts/mod_commit/index.ts @@ -0,0 +1,73 @@ +// this file contains code to create commits in a consistent way + +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; +import { logger } from '../gitzone.logging.js'; + +export const run = async (argvArg: any) => { + const commitInteract = new plugins.smartinteract.SmartInteract(); + commitInteract.addQuestions([ + { + type: 'list', + name: `commitType`, + message: `Choose TYPE of the commit:`, + choices: [`fix`, `feat`, `BREAKING CHANGE`], + default: `fix`, + }, + { + type: 'input', + name: `commitScope`, + message: `What is the SCOPE of the commit:`, + default: `core`, + }, + { + type: `input`, + name: `commitDescription`, + message: `What is the DESCRIPTION of the commit?`, + default: `update`, + }, + { + type: 'confirm', + name: `pushToOrigin`, + message: `Do you want to push this version now?`, + default: true, + }, + ]); + const answerBucket = await commitInteract.runQueue(); + const commitString = createCommitStringFromAnswerBucket(answerBucket); + const commitVersionType = (() => { + switch (answerBucket.getAnswerFor('commitType')) { + case 'fix': + return 'patch'; + case 'feat': + return 'minor'; + case 'BREAKING CHANGE': + return 'major'; + } + })(); + + logger.log('info', `OK! Creating commit with message '${commitString}'`); + const smartshellInstance = new plugins.smartshell.Smartshell({ + executor: 'bash', + sourceFilePaths: [], + }); + + logger.log('info', `Baking commitinfo into code`); + const commitInfo = new plugins.commitinfo.CommitInfo(paths.cwd, commitVersionType); + await commitInfo.writeIntoPotentialDirs(); + + logger.log('info', `Staging files for commit:`); + await smartshellInstance.exec(`git add -A`); + await smartshellInstance.exec(`git commit -m "${commitString}"`); + await smartshellInstance.exec(`npm version ${commitVersionType}`); + if (answerBucket.getAnswerFor('pushToOrigin') && !(process.env.CI === 'true')) { + await smartshellInstance.exec(`git push origin master --follow-tags`); + } +}; + +const createCommitStringFromAnswerBucket = (answerBucket: plugins.smartinteract.AnswerBucket) => { + const commitType = answerBucket.getAnswerFor('commitType'); + const commitScope = answerBucket.getAnswerFor('commitScope'); + const commitDescription = answerBucket.getAnswerFor('commitDescription'); + return `${commitType}(${commitScope}): ${commitDescription}`; +}; diff --git a/ts/mod_commit/mod.plugins.ts b/ts/mod_commit/mod.plugins.ts new file mode 100644 index 0000000..001b40f --- /dev/null +++ b/ts/mod_commit/mod.plugins.ts @@ -0,0 +1,7 @@ +export * from '../plugins.js'; + +import * as commitinfo from '@push.rocks/commitinfo'; +import * as smartinteract from '@push.rocks/smartinteract'; +import * as smartshell from '@push.rocks/smartshell'; + +export { commitinfo, smartinteract, smartshell }; diff --git a/ts/mod_deprecate/index.ts b/ts/mod_deprecate/index.ts new file mode 100644 index 0000000..b2fedd6 --- /dev/null +++ b/ts/mod_deprecate/index.ts @@ -0,0 +1,37 @@ +import * as plugins from './mod.plugins.js'; + +import { logger } from '../gitzone.logging.js'; + +export const run = async () => { + const smartInteract = new plugins.smartinteract.SmartInteract([ + { + name: `oldPackageName`, + message: `Whats the name of the OLD package?`, + type: `input`, + default: ``, + validate: (stringInput) => { + return stringInput !== '' && !process.env.CI; + }, + }, + { + name: `newPackageName`, + message: `Whats the name of the NEW package?`, + type: `input`, + default: ``, + validate: (stringInput) => { + return stringInput !== '' && !process.env.CI; + }, + }, + ]); + const answerBucket = await smartInteract.runQueue(); + const oldPackageName = answerBucket.getAnswerFor(`oldPackageName`); + const newPackageName = answerBucket.getAnswerFor(`newPackageName`); + logger.log('info', `Deprecating package ${oldPackageName} in favour of ${newPackageName}`); + const smartshellInstance = new plugins.smartshell.Smartshell({ + executor: 'bash', + }); + await smartshellInstance.exec( + `npm deprecate ${oldPackageName}@* ` + + `"${oldPackageName} has been deprecated in favour of ${newPackageName} - please upgrade asap!!!"` + ); +}; diff --git a/ts/mod_deprecate/mod.plugins.ts b/ts/mod_deprecate/mod.plugins.ts new file mode 100644 index 0000000..a4927b1 --- /dev/null +++ b/ts/mod_deprecate/mod.plugins.ts @@ -0,0 +1,6 @@ +export * from '../plugins.js'; + +import * as smartinteract from '@push.rocks/smartinteract'; +import * as smartshell from '@push.rocks/smartshell'; + +export { smartinteract, smartshell }; diff --git a/ts/mod_format/format.cleanup.ts b/ts/mod_format/format.cleanup.ts new file mode 100644 index 0000000..65be64e --- /dev/null +++ b/ts/mod_format/format.cleanup.ts @@ -0,0 +1,19 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +import { logger } from '../gitzone.logging.js'; +import { Project } from '../classes.project.js'; + +const filesToDelete = ['defaults.yml', 'yarn.lock', 'package-lock.json', 'tslint.json']; + +export const run = async (projectArg: Project) => { + for (const relativeFilePath of filesToDelete) { + const fileExists = plugins.smartfile.fs.fileExistsSync(relativeFilePath); + if (fileExists) { + logger.log('info', `Found ${relativeFilePath}! Removing it!`); + plugins.smartfile.fs.removeSync(plugins.path.join(paths.cwd, relativeFilePath)); + } else { + logger.log('info', `Project is free of ${relativeFilePath}`); + } + } +}; diff --git a/ts/mod_format/format.copy.ts b/ts/mod_format/format.copy.ts new file mode 100644 index 0000000..ebe8b0b --- /dev/null +++ b/ts/mod_format/format.copy.ts @@ -0,0 +1,6 @@ +import type { Project } from '../classes.project.js'; +import * as plugins from '../plugins.js'; + +export const run = async (projectArg: Project) => { + const gitzoneConfig = await projectArg.gitzoneConfig; +} diff --git a/ts/mod_format/format.gitignore.ts b/ts/mod_format/format.gitignore.ts new file mode 100644 index 0000000..7ae7fa3 --- /dev/null +++ b/ts/mod_format/format.gitignore.ts @@ -0,0 +1,21 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +import { Project } from '../classes.project.js'; + +import { logger } from '../gitzone.logging.js'; +const gitignorePath = plugins.path.join(paths.cwd, './.gitignore'); + +export const run = async (projectArg: Project) => { + const gitignoreExists = await plugins.smartfile.fs.fileExists(gitignorePath); + const templateModule = await import('../mod_template/index.js'); + const ciTemplate = await templateModule.getTemplate('gitignore'); + if (gitignoreExists) { + // lets get the existing gitignore file + const existingGitIgnoreString = plugins.smartfile.fs.toStringSync(gitignorePath); + let customPart = existingGitIgnoreString.split('# custom\n')[1]; + customPart ? null : (customPart = ''); + } + ciTemplate.writeToDisk(paths.cwd); + logger.log('info', 'Added a .gitignore!'); +}; diff --git a/ts/mod_format/format.license.ts b/ts/mod_format/format.license.ts new file mode 100644 index 0000000..410529a --- /dev/null +++ b/ts/mod_format/format.license.ts @@ -0,0 +1,24 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; +import { Project } from '../classes.project.js'; + +import { logger } from '../gitzone.logging.js'; + +const incompatibleLicenses: string[] = [ + "AGPL", + "GPL", + "SSPL", +]; + +export const run = async (projectArg: Project) => { + const licenseChecker = await plugins.smartlegal.createLicenseChecker(); + const licenseCheckResult = await licenseChecker.excludeLicenseWithinPath(paths.cwd, incompatibleLicenses); + if (licenseCheckResult.failingModules.length === 0) { + logger.log('info', 'Success -> licenses passed!'); + } else { + logger.log('error', 'Error -> licenses failed. Here is why:'); + for (const failedModule of licenseCheckResult.failingModules) { + console.log(`${failedModule.name} fails with license ${failedModule.license}`); + } + } +}; diff --git a/ts/mod_format/format.npmextra.ts b/ts/mod_format/format.npmextra.ts new file mode 100644 index 0000000..83ae5a4 --- /dev/null +++ b/ts/mod_format/format.npmextra.ts @@ -0,0 +1,70 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; +import * as gulpFunction from '@push.rocks/gulp-function'; +import { Project } from '../classes.project.js'; + +/** + * runs the npmextra file checking + */ +export const run = async (projectArg: Project) => { + const formatSmartstream = new plugins.smartstream.StreamWrapper([ + plugins.smartgulp.src([`npmextra.json`]), + gulpFunction.forEach(async (fileArg: plugins.smartfile.SmartFile) => { + const fileString = fileArg.contents.toString(); + const npmextraJson = JSON.parse(fileString); + + if (!npmextraJson.gitzone) { + npmextraJson.gitzone = {}; + } + + const expectedRepoInformation: string[] = [ + 'projectType', + 'module.githost', + 'module.gitscope', + 'module.gitrepo', + 'module.description', + 'module.npmPackagename', + 'module.license', + ]; + + const interactInstance = new plugins.smartinteract.SmartInteract(); + for (const expectedRepoInformationItem of expectedRepoInformation) { + if (!plugins.smartobject.smartGet(npmextraJson.gitzone, expectedRepoInformationItem)) { + interactInstance.addQuestions([ + { + message: `What is the value of ${expectedRepoInformationItem}`, + name: expectedRepoInformationItem, + type: 'input', + default: 'undefined variable', + }, + ]); + } + } + + const answerbucket = await interactInstance.runQueue(); + for (const expectedRepoInformationItem of expectedRepoInformation) { + const cliProvidedValue = answerbucket.getAnswerFor(expectedRepoInformationItem); + if (cliProvidedValue) { + plugins.smartobject.smartAdd( + npmextraJson.gitzone, + expectedRepoInformationItem, + cliProvidedValue + ); + } + } + + // delete obsolete + // tbd + + if (!npmextraJson.npmci) { + npmextraJson.npmci = {}; + } + + fileArg.setContentsFromString(JSON.stringify(npmextraJson, null, 2)); + }), + plugins.smartgulp.replace(), + ]); + await formatSmartstream.run().catch((error) => { + console.log(error); + }); +}; diff --git a/ts/mod_format/format.packagejson.ts b/ts/mod_format/format.packagejson.ts new file mode 100644 index 0000000..d83c71f --- /dev/null +++ b/ts/mod_format/format.packagejson.ts @@ -0,0 +1,120 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; +import * as gulpFunction from '@push.rocks/gulp-function'; +import { Project } from '../classes.project.js'; + +import { logger } from '../gitzone.logging.js'; + +/** + * ensures a certain dependency + */ +const ensureDependency = async ( + packageJsonObjectArg: any, + position: 'dep' | 'devDep' | 'everywhere', + constraint: 'exclude' | 'include' | 'latest', + dependencyArg: string +) => {}; + +export const run = async (projectArg: Project) => { + const formatStreamWrapper = new plugins.smartstream.StreamWrapper([ + plugins.smartgulp.src([`package.json`]), + gulpFunction.forEach(async (fileArg: plugins.smartfile.SmartFile) => { + const npmextraConfig = new plugins.npmextra.Npmextra(paths.cwd); + const gitzoneData: any = npmextraConfig.dataFor('gitzone', {}); + const fileString = fileArg.contents.toString(); + const packageJson = JSON.parse(fileString); + + // metadata + packageJson.repository = { + "type": "git", + "url": `git+https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git` + }; + packageJson.bugs = { + "url": `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}/issues` + }, + packageJson.homepage = `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}#readme`; + + + // Check for module type + if (!packageJson.type) { + logger.log('info', `setting packageJson.type to "module"`); + packageJson.type = 'module'; + } + + // Check for private or public + if (packageJson.private !== undefined) { + logger.log('info', 'Success -> found private/public info in package.json!'); + } else { + logger.log('error', 'found no private boolean! Setting it to private for now!'); + packageJson.private = true; + } + + // Check for license + if (packageJson.license) { + logger.log('info', 'Success -> found license in package.json!'); + } else { + logger.log('error', 'found no license! Setting it to UNLICENSED for now!'); + packageJson.license = 'UNLICENSED'; + } + + // Check for build script + if (packageJson.scripts.build) { + logger.log('info', 'Success -> found build script in package.json!'); + } else { + logger.log('error', 'found no build script! Putting a placeholder there for now!'); + packageJson.scripts.build = `echo "Not needed for now"`; + } + + // Check for buildDocs script + if (!packageJson.scripts.buildDocs) { + logger.log('info', 'found no buildDocs script! Putting tsdoc script there now.'); + packageJson.scripts.buildDocs = `tsdoc`; + } + + // check package.json + if (!packageJson.main) { + logger.log('error', 'no "main" property'); + process.exit(0); + } + if (!packageJson.typings) { + logger.log('error', 'no "typings" property'); + process.exit(0); + } + if (!packageJson.browserslist) { + packageJson.browserslist = ['last 1 chrome versions']; + } + if (!packageJson.main.includes('dist_') || !packageJson.typings.includes('dist_')) { + logger.log('error', 'check packagesJson main and typings'); + process.exit(0); + } + + // check for files + packageJson.files = [ + 'ts/**/*', + 'ts_web/**/*', + 'dist/**/*', + 'dist_*/**/*', + 'dist_ts/**/*', + 'dist_ts_web/**/*', + 'assets/**/*', + 'cli.js', + 'npmextra.json', + 'readme.md', + ]; + + // check for dependencies + await ensureDependency(packageJson, 'devDep', 'latest', '@push.rocks/tapbundle'); + await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest'); + await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild'); + + // exclude + // TODO + + fileArg.setContentsFromString(JSON.stringify(packageJson, null, 2)); + }), + plugins.smartgulp.replace(), + ]); + await formatStreamWrapper.run().catch((error) => { + console.log(error); + }); +}; diff --git a/ts/mod_format/format.prettier.ts b/ts/mod_format/format.prettier.ts new file mode 100644 index 0000000..0aa4a90 --- /dev/null +++ b/ts/mod_format/format.prettier.ts @@ -0,0 +1,58 @@ +import * as plugins from './mod.plugins.js'; +import prettier from 'prettier'; +import { Project } from '../classes.project.js'; + +import { logger } from '../gitzone.logging.js'; + +const prettierDefaultTypeScriptConfig: prettier.Options = { + printWidth: 100, + parser: 'typescript', + singleQuote: true, +}; + +const prettierDefaultMarkdownConfig: prettier.Options = { + singleQuote: true, + printWidth: 100, + parser: 'markdown', +}; + +const filesToFormat = [`ts/**/*.ts`, `test/**/*.ts`, `readme.md`, `docs/**/*.md`]; + +const choosePrettierConfig = (fileArg: plugins.smartfile.SmartFile) => { + switch (fileArg.parsedPath.ext) { + case '.ts': + return prettierDefaultTypeScriptConfig; + case '.md': + return prettierDefaultMarkdownConfig; + default: + return {}; + } +}; + +const prettierTypeScriptPipestop = plugins.through2.obj( + async (fileArg: plugins.smartfile.SmartFile, enc, cb) => { + const fileString = fileArg.contentBuffer.toString(); + const chosenConfig = choosePrettierConfig(fileArg); + const filePasses = prettier.check(fileString, chosenConfig); + if (filePasses) { + logger.log('info', `OK! -> ${fileArg.path} passes!`); + cb(null); + } else { + logger.log('info', `${fileArg.path} is being reformated!`); + const formatedFileString = await prettier.format(fileString, chosenConfig); + fileArg.setContentsFromString(formatedFileString); + cb(null, fileArg); + } + } +); + +export const run = async (projectArg: Project) => { + const formatStreamWrapper = new plugins.smartstream.StreamWrapper([ + plugins.smartgulp.src(filesToFormat), + prettierTypeScriptPipestop, + plugins.smartgulp.replace(), + ]); + await formatStreamWrapper.run().catch((error) => { + console.log(error); + }); +}; diff --git a/ts/mod_format/format.readme.ts b/ts/mod_format/format.readme.ts new file mode 100644 index 0000000..f7a4e0b --- /dev/null +++ b/ts/mod_format/format.readme.ts @@ -0,0 +1,47 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; +import { GitzoneConfig } from '../classes.gitzoneconfig.js'; +import { Project } from '../classes.project.js'; + +export const run = async (projectArg: Project) => { + const readmePath = plugins.path.join(paths.cwd, 'readme.md'); + const readmeFile = await plugins.smartfile.SmartFile.fromFilePath(readmePath); + + // lets do our transformation + + let usageInfo: string = ''; + const gitzoneConfig = await GitzoneConfig.fromCwd(); + + if (readmeFile) { + const readmeFileString = readmeFile.contentBuffer.toString(); + const stringArray1 = readmeFileString.split('## Usage\n'); + if (stringArray1[1]) { + const stringArray2 = stringArray1[1].split( + '\nFor further information read the linked docs at the top of this readme.' + ); + const stringArray3 = stringArray2[0].split('\n\n## Contribution'); + usageInfo = stringArray3[0]; + } + } + + if (gitzoneConfig.data.module && gitzoneConfig.data.module.license === 'MIT') { + usageInfo += + '\n\n## Contribution\n\n' + + 'We are always happy for code contributions. If you are not the code contributing type that is ok. ' + + 'Still, maintaining Open Source repositories takes considerable time and thought. ' + + 'If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: ' + + 'You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)\n'; + } + + const templateModule = await import('../mod_template/index.js'); + const readmeTemplate = await templateModule.getTemplate('readme'); + console.log(gitzoneConfig.data); + await readmeTemplate.supplyVariables({ + module: { + ...gitzoneConfig.data.module, + }, + usageInfo, + }); + await readmeTemplate.askCliForMissingVariables(); + await readmeTemplate.writeToDisk(paths.cwd); +}; diff --git a/ts/mod_format/format.templates.ts b/ts/mod_format/format.templates.ts new file mode 100644 index 0000000..0d63694 --- /dev/null +++ b/ts/mod_format/format.templates.ts @@ -0,0 +1,71 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +import { logger } from '../gitzone.logging.js'; +import { Project } from '../classes.project.js'; + +/** + * takes care of updating files from templates + */ +export const run = async (project: Project) => { + const templateModule = await import('../mod_template/index.js'); + + // update tslint + // getting template + const tslintTemplate = await templateModule.getTemplate('tslint'); + await tslintTemplate.writeToDisk(paths.cwd); + logger.log('info', 'Updated tslint.json!'); + + // update vscode + const vscodeTemplate = await templateModule.getTemplate('vscode'); + await vscodeTemplate.writeToDisk(paths.cwd); + logger.log('info', `Updated vscode template!`); + + // update gitlab ci and Dockerfile + switch (project.gitzoneConfig.data.projectType) { + case 'npm': + case 'wcc': + if (project.gitzoneConfig.data.npmciOptions.npmAccessLevel === 'public') { + const ciTemplateDefault = await templateModule.getTemplate('ci_default'); + ciTemplateDefault.writeToDisk(paths.cwd); + } else { + const ciTemplateDefault = await templateModule.getTemplate('ci_default_private'); + ciTemplateDefault.writeToDisk(paths.cwd); + } + logger.log('info', 'Updated .gitlabci.yml!'); + break; + case 'service': + case 'website': + const ciTemplateDocker = await templateModule.getTemplate('ci_docker'); + await ciTemplateDocker.writeToDisk(paths.cwd); + logger.log('info', 'Updated .gitlabci.yml!'); + + // lets care about docker + const dockerTemplate = await templateModule.getTemplate('dockerfile_service'); + dockerTemplate.writeToDisk(paths.cwd); + logger.log('info', 'Updated Dockerfile!'); + + // lets care about cli + const cliTemplate = await templateModule.getTemplate('cli'); + await cliTemplate.writeToDisk(paths.cwd); + logger.log('info', 'Updated cli.ts.js and cli.js!'); + break; + default: + break; + } + + // update html + if (project.gitzoneConfig.data.projectType === 'website') { + const websiteUpdateTemplate = await templateModule.getTemplate('website_update'); + await websiteUpdateTemplate.writeToDisk(paths.cwd); + logger.log('info', `Updated html for website!`); + } else if (project.gitzoneConfig.data.projectType === 'service') { + const websiteUpdateTemplate = await templateModule.getTemplate('service_update'); + await websiteUpdateTemplate.writeToDisk(paths.cwd); + logger.log('info', `Updated html for element template!`); + } else if (project.gitzoneConfig.data.projectType === 'wcc') { + const wccUpdateTemplate = await templateModule.getTemplate('wcc_update'); + await wccUpdateTemplate.writeToDisk(paths.cwd); + logger.log('info', `Updated html for wcc template!`); + } +}; diff --git a/ts/mod_format/index.ts b/ts/mod_format/index.ts new file mode 100644 index 0000000..bed6305 --- /dev/null +++ b/ts/mod_format/index.ts @@ -0,0 +1,38 @@ +import * as plugins from './mod.plugins.js'; +import { Project } from '../classes.project.js'; + +export let run = async (write: boolean = true): Promise => { + const project = await Project.fromCwd(); + + // cleanup + const formatCleanup = await import('./format.cleanup.js'); + await formatCleanup.run(project); + + // npmextra + const formatNpmextra = await import('./format.npmextra.js'); + await formatNpmextra.run(project); + + // license + const formatLicense = await import('./format.license.js'); + await formatLicense.run(project); + + // format package.json + const formatPackageJson = await import('./format.packagejson.js'); + await formatPackageJson.run(project); + + // format .gitlab-ci.yml + const formatTemplates = await import('./format.templates.js'); + await formatTemplates.run(project); + + // format .gitignore + const formatGitignore = await import('./format.gitignore.js'); + await formatGitignore.run(project); + + // format TypeScript + const formatPrettier = await import('./format.prettier.js'); + await formatPrettier.run(project); + + // format readme.md + const formatReadme = await import('./format.readme.js'); + // await formatReadme.run(); +}; diff --git a/ts/mod_format/mod.plugins.ts b/ts/mod_format/mod.plugins.ts new file mode 100644 index 0000000..2d9efb0 --- /dev/null +++ b/ts/mod_format/mod.plugins.ts @@ -0,0 +1,13 @@ +export * from '../plugins.js'; + +import * as lik from '@push.rocks/lik'; +import * as smartfile from '@push.rocks/smartfile'; +import * as smartgulp from '@push.rocks/smartgulp'; +import * as smartinteract from '@push.rocks/smartinteract'; +import * as smartlegal from '@push.rocks/smartlegal'; +import * as smartobject from '@push.rocks/smartobject'; +import * as smartnpm from '@push.rocks/smartnpm'; +import * as smartstream from '@push.rocks/smartstream'; +import * as through2 from 'through2'; + +export { lik, smartfile, smartgulp, smartinteract, smartlegal, smartobject, smartnpm, smartstream, through2 }; diff --git a/ts/mod_helpers/index.ts b/ts/mod_helpers/index.ts new file mode 100644 index 0000000..ba29208 --- /dev/null +++ b/ts/mod_helpers/index.ts @@ -0,0 +1,10 @@ +import * as plugins from './mod.plugins.js'; + +export const run = async (argvArg) => { + const command = argvArg._[1]; + switch (command) { + case 'shortid': + console.log('Here is new shortid'); + console.log(plugins.smartunique.shortId()); + } +}; diff --git a/ts/mod_helpers/mod.plugins.ts b/ts/mod_helpers/mod.plugins.ts new file mode 100644 index 0000000..3b677c2 --- /dev/null +++ b/ts/mod_helpers/mod.plugins.ts @@ -0,0 +1,5 @@ +export * from '../plugins.js'; + +import * as smartunique from '@push.rocks/smartunique'; + +export { smartunique }; diff --git a/ts/mod_meta/index.ts b/ts/mod_meta/index.ts new file mode 100644 index 0000000..79e05b9 --- /dev/null +++ b/ts/mod_meta/index.ts @@ -0,0 +1,26 @@ +import * as plugins from './meta.plugins.js'; +import * as paths from '../paths.js'; +import { Meta } from './meta.classes.meta.js'; +import { logger } from '../gitzone.logging.js'; + +export const run = async (argvArg) => { + const command = argvArg._[1]; + const metaInstance = new Meta(paths.cwd); + + switch (true) { + case command === 'update': + await metaInstance.updateLocalRepos(); + break; + case command === 'add': + await metaInstance.addProject(argvArg._[2], argvArg._[3]); + break; + case command === 'remove': + await metaInstance.removeProject(argvArg._[2]); + break; + case command === 'init': + await metaInstance.initProject(); + break; + default: + logger.log('error', `You have to specify a command!`); + } +}; diff --git a/ts/mod_meta/meta.classes.meta.ts b/ts/mod_meta/meta.classes.meta.ts new file mode 100644 index 0000000..781c7ed --- /dev/null +++ b/ts/mod_meta/meta.classes.meta.ts @@ -0,0 +1,234 @@ +import * as plugins from './meta.plugins.js'; +import * as paths from '../paths.js'; +import * as interfaces from './meta.interfaces.js'; + +import { logger } from '../gitzone.logging.js'; + +export class Meta { + public cwd: string; + public dirName: string; + public filePaths: { + metaJson: string; + gitIgnore: string; + packageJson: string; + }; + + constructor(cwdArg: string) { + this.cwd = cwdArg; + this.dirName = plugins.path.basename(this.cwd); + this.filePaths = { + metaJson: plugins.path.join(this.cwd, './.meta.json'), + gitIgnore: plugins.path.join(this.cwd, './.gitignore'), + packageJson: plugins.path.join(this.cwd, './package.json'), + }; + } + + /** + * the meta repo data + */ + public metaRepoData: interfaces.IMetaRepoData; + public smartshellInstance = new plugins.smartshell.Smartshell({ + executor: 'bash', + }); + + /** + * sorts the metaRepoData + */ + public async sortMetaRepoData() { + const stringifiedMetadata = plugins.smartjson.stringify(this.metaRepoData, []); + this.metaRepoData = plugins.smartjson.parse(stringifiedMetadata); + } + + /** + * reads the meta file from disk + */ + public async readDirectory() { + await this.syncToRemote(true); + logger.log('info', `reading directory`); + const metaFileExists = plugins.smartfile.fs.fileExistsSync(this.filePaths.metaJson); + if (!metaFileExists) { + throw new Error(`meta file does not exist at ${this.filePaths.metaJson}`); + } + this.metaRepoData = plugins.smartfile.fs.toObjectSync(this.filePaths.metaJson); + } + + /** + * generates the gitignore file and stores it on disk + */ + public async generateGitignore(): Promise { + await this.sortMetaRepoData(); + let gitignoreString = `# ignored repo directories\n`; + gitignoreString += `.nogit/\n`; + gitignoreString += `.pnpm-store/\n`; + for (const key of Object.keys(this.metaRepoData.projects)) { + gitignoreString = `${gitignoreString}${key}\n`; + } + return gitignoreString; + } + + /** + * write to disk + */ + public async writeToDisk() { + // write .meta.json to disk + plugins.smartfile.memory.toFsSync( + JSON.stringify(this.metaRepoData, null, 2), + this.filePaths.metaJson + ); + // write .gitignore to disk + plugins.smartfile.memory.toFsSync(await this.generateGitignore(), this.filePaths.gitIgnore); + } + + /** + * push to remote + */ + public async syncToRemote(gitCleanArg = false) { + logger.log('info', `syncing from origin master`); + await this.smartshellInstance.exec(`cd ${this.cwd} && git pull origin master`); + if (gitCleanArg) { + logger.log('info', `cleaning the repository from old directories`); + await this.smartshellInstance.exec(`cd ${this.cwd} && git clean -fd`); + } + logger.log('info', `syncing to remote origin master`); + await this.smartshellInstance.exec(`cd ${this.cwd} && git push origin master`); + } + + /** + * update the locally cloned repositories + */ + public async updateLocalRepos() { + await this.syncToRemote(); + const projects = plugins.smartfile.fs.toObjectSync(this.filePaths.metaJson).projects; + const preExistingFolders = plugins.smartfile.fs.listFoldersSync(this.cwd); + for (const preExistingFolderArg of preExistingFolders) { + if ( + preExistingFolderArg !== '.git' && + !Object.keys(projects).find((projectFolder) => + projectFolder.startsWith(preExistingFolderArg) + ) + ) { + const response = await plugins.smartinteraction.SmartInteract.getCliConfirmation( + `Do you want to delete superfluous directory >>${preExistingFolderArg}<< ?`, + true + ); + if (response) { + logger.log('warn', `Deleting >>${preExistingFolderArg}< is already cloned`) + : missingRepos.push(key); + } + + logger.log('info', `found ${missingRepos.length} missing repos`); + for (const missingRepo of missingRepos) { + await this.smartshellInstance.exec( + `cd ${this.cwd} && git clone ${this.metaRepoData.projects[missingRepo]} ${missingRepo}` + ); + } + + logger.log('info', `write changes to disk`); + await this.writeToDisk(); + + logger.log('info', `persist changes with a git commit`); + await this.smartshellInstance.exec( + `cd ${this.cwd} && git add -A && git commit -m "updated structure"` + ); + await this.syncToRemote(); + + // go recursive + const folders = await plugins.smartfile.fs.listFolders(this.cwd); + const childMetaRepositories: string[] = []; + for (const folder of folders) { + logger.log('info', folder); + } + console.log('Recursion still needs to be implemented'); + } + + // project manipulation + + /** + * init a new meta project + */ + public async initProject() { + await this.syncToRemote(true); + const fileExists = await plugins.smartfile.fs.fileExists(this.filePaths.metaJson); + if (!fileExists) { + await plugins.smartfile.memory.toFs( + JSON.stringify({ + projects: {}, + }), + this.filePaths.metaJson + ); + logger.log(`success`, `created a new .meta.json in directory ${this.cwd}`); + await plugins.smartfile.memory.toFs( + JSON.stringify({ + name: this.dirName, + version: '1.0.0', + }), + this.filePaths.packageJson + ); + logger.log(`success`, `created a new package.json in directory ${this.cwd}`); + } else { + logger.log(`error`, `directory ${this.cwd} already has a .metaJson file. Doing nothing.`); + } + await this.smartshellInstance.exec( + `cd ${this.cwd} && git add -A && git commit -m "feat(project): init meta project for ${this.dirName}"` + ); + await this.updateLocalRepos(); + } + + /** + * adds a project + */ + public async addProject(projectNameArg: string, gitUrlArg) { + await this.readDirectory(); + + const existingProject = this.metaRepoData.projects[projectNameArg]; + + if (existingProject) { + throw new Error('Project already exists! Please remove it first before adding it again.'); + } + + this.metaRepoData.projects[projectNameArg] = gitUrlArg; + + await this.sortMetaRepoData(); + await this.writeToDisk(); + await this.smartshellInstance.exec( + `cd ${this.cwd} && git add -A && git commit -m "feat(project): add ${projectNameArg}"` + ); + await this.updateLocalRepos(); + } + + /** + * removes a project + */ + public async removeProject(projectNameArg: string) { + await this.readDirectory(); + + const existingProject = this.metaRepoData.projects[projectNameArg]; + + if (!existingProject) { + logger.log('error', `Project ${projectNameArg} does not exist! So it cannot be removed`); + return; + } + + delete this.metaRepoData.projects[projectNameArg]; + + logger.log('info', 'removing project from .meta.json'); + await this.sortMetaRepoData(); + await this.writeToDisk(); + + logger.log('info', 'removing directory from cwd'); + await plugins.smartfile.fs.remove(plugins.path.join(paths.cwd, projectNameArg)); + await this.updateLocalRepos(); + } +} diff --git a/ts/mod_meta/meta.interfaces.ts b/ts/mod_meta/meta.interfaces.ts new file mode 100644 index 0000000..970edd4 --- /dev/null +++ b/ts/mod_meta/meta.interfaces.ts @@ -0,0 +1,3 @@ +export interface IMetaRepoData { + projects: { [key: string]: string }; +} diff --git a/ts/mod_meta/meta.plugins.ts b/ts/mod_meta/meta.plugins.ts new file mode 100644 index 0000000..64da469 --- /dev/null +++ b/ts/mod_meta/meta.plugins.ts @@ -0,0 +1,8 @@ +export * from '../plugins.js'; + +import * as smartfile from '@push.rocks/smartfile'; +import * as smartinteraction from '@push.rocks/smartinteract'; +import * as smartjson from '@push.rocks/smartjson'; +import * as smartshell from '@push.rocks/smartshell'; + +export { smartfile, smartinteraction, smartjson, smartshell }; diff --git a/ts/mod_open/index.ts b/ts/mod_open/index.ts new file mode 100644 index 0000000..98999e5 --- /dev/null +++ b/ts/mod_open/index.ts @@ -0,0 +1,15 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +export let run = (argvArg) => { + let projectInfo = new plugins.projectinfo.ProjectInfo(paths.cwd); + if (argvArg._[1] === 'ci') { + plugins.smartopen.openUrl( + `https://gitlab.com/${projectInfo.git.gituser}/${projectInfo.git.gitrepo}/settings/ci_cd` + ); + } else if (argvArg._[1] === 'pipelines') { + plugins.smartopen.openUrl( + `https://gitlab.com/${projectInfo.git.gituser}/${projectInfo.git.gitrepo}/pipelines` + ); + } +}; diff --git a/ts/mod_open/mod.plugins.ts b/ts/mod_open/mod.plugins.ts new file mode 100644 index 0000000..8c6fc74 --- /dev/null +++ b/ts/mod_open/mod.plugins.ts @@ -0,0 +1,5 @@ +export * from '../plugins.js'; +import * as smartopen from '@push.rocks/smartopen'; +import * as projectinfo from '@push.rocks/projectinfo'; + +export { projectinfo, smartopen }; diff --git a/ts/mod_standard/index.ts b/ts/mod_standard/index.ts new file mode 100644 index 0000000..bb7bd0f --- /dev/null +++ b/ts/mod_standard/index.ts @@ -0,0 +1,29 @@ +/* ----------------------------------------------- + * executes as standard task + * ----------------------------------------------- */ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +import { logger } from '../gitzone.logging.js'; + +export let run = () => { + const done = plugins.smartpromise.defer(); + logger.log('warn', 'no action specified'); + logger.log( + 'info', + ` + You can do one of the following things: + * create a new project with 'gitzone template [template]' + the following templates exist: ${(() => { + let projects = `\n`; + for (const template of plugins.smartfile.fs.listFoldersSync(paths.templatesDir)) { + projects += ` - ${template}\n`; + } + return projects; + })()} + * format a project with 'gitzone format' + ` + ); + done.resolve(); + return done.promise; +}; diff --git a/ts/mod_standard/mod.plugins.ts b/ts/mod_standard/mod.plugins.ts new file mode 100644 index 0000000..b0ba262 --- /dev/null +++ b/ts/mod_standard/mod.plugins.ts @@ -0,0 +1,4 @@ +export * from '../plugins.js'; + +import * as smartfile from '@push.rocks/smartfile'; +export { smartfile }; diff --git a/ts/mod_start/index.ts b/ts/mod_start/index.ts new file mode 100644 index 0000000..e6c5ddb --- /dev/null +++ b/ts/mod_start/index.ts @@ -0,0 +1,26 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +import { logger } from '../gitzone.logging.js'; + +/** + * executes basic project setup for continuing to work. + * TODO: switch to smartgit + * @param argvArg + */ +export const run = async (argvArg: any) => { + logger.log('info', `preparing the project at ${paths.cwd} for development`); + const smartshellInstance = new plugins.smartshell.Smartshell({ + executor: 'bash', + }); + + await smartshellInstance.execStrict(`cd ${paths.cwd} && git checkout master`); + await smartshellInstance.execStrict(`cd ${paths.cwd} && git pull origin master`); + await smartshellInstance.execStrict(`cd ${paths.cwd} && npm ci`); + + await provideNoGitFiles(); +}; + +const provideNoGitFiles = async () => { + logger.log('warn', 'nogit provision not yet implemented!'); +}; diff --git a/ts/mod_start/mod.plugins.ts b/ts/mod_start/mod.plugins.ts new file mode 100644 index 0000000..ef8a904 --- /dev/null +++ b/ts/mod_start/mod.plugins.ts @@ -0,0 +1,6 @@ +export * from '../plugins.js'; + +// pushrocks scope +import * as smartshell from '@push.rocks/smartshell'; + +export { smartshell }; diff --git a/ts/mod_template/index.ts b/ts/mod_template/index.ts new file mode 100644 index 0000000..4feb9c9 --- /dev/null +++ b/ts/mod_template/index.ts @@ -0,0 +1,52 @@ +import * as plugins from './mod.plugins.js'; +import * as paths from '../paths.js'; + +import { logger } from '../gitzone.logging.js'; + +export const getTemplatePath = (templateNameArg: string) => { + return plugins.path.join(paths.templatesDir, templateNameArg); +}; + +/** + * receives a template name and returns wether there is a corresponding template + */ +export const isTemplate = async (templateNameArg: string) => { + return plugins.smartfile.fs.isDirectory(getTemplatePath(templateNameArg)); +}; + +export const getTemplate = async (templateNameArg: string) => { + if (isTemplate(templateNameArg)) { + const localScafTemplate = new plugins.smartscaf.ScafTemplate(getTemplatePath(templateNameArg)); + await localScafTemplate.readTemplateFromDir(); + return localScafTemplate; + } else { + return null; + } +}; + +export const run = async (argvArg: any) => { + let chosenTemplate: string = argvArg._[1]; + + if (!chosenTemplate) { + const smartinteract = new plugins.smartinteract.SmartInteract(); + const answerBucket = await smartinteract.askQuestion({ + type: 'list', + default: 'npm', + message: 'What template do you want to scaffold? (Only showing mpost common options)', + name: 'templateName', + choices: ['npm', 'service', 'wcc', 'website'], + }); + chosenTemplate = answerBucket.value; + } + + if (await isTemplate(chosenTemplate)) { + logger.log('info', `found requested template ${chosenTemplate}`); + } else { + logger.log('error', `Template ${chosenTemplate} not available`); + return; + } + + const localScafTemplate = await getTemplate(chosenTemplate); + await localScafTemplate.askCliForMissingVariables(); + await localScafTemplate.writeToDisk(paths.cwd); +}; diff --git a/ts/mod_template/mod.plugins.ts b/ts/mod_template/mod.plugins.ts new file mode 100644 index 0000000..7bb6e39 --- /dev/null +++ b/ts/mod_template/mod.plugins.ts @@ -0,0 +1,7 @@ +export * from '../plugins.js'; + +import * as smartfile from '@push.rocks/smartfile'; +import * as smartinteract from '@push.rocks/smartinteract'; +import * as smartscaf from '@push.rocks/smartscaf'; + +export { smartfile, smartinteract, smartscaf }; diff --git a/ts/paths.ts b/ts/paths.ts new file mode 100644 index 0000000..482fce9 --- /dev/null +++ b/ts/paths.ts @@ -0,0 +1,9 @@ +import * as plugins from './plugins.js'; + +export let packageDir = plugins.path.join( + plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), + '../' +); +export let assetsDir = plugins.path.join(packageDir, './assets'); +export let templatesDir = plugins.path.join(assetsDir, 'templates'); +export let cwd = process.cwd(); diff --git a/ts/plugins.ts b/ts/plugins.ts new file mode 100644 index 0000000..e4ca84e --- /dev/null +++ b/ts/plugins.ts @@ -0,0 +1,21 @@ +import * as smartlog from '@push.rocks/smartlog'; +import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local'; +import * as npmextra from '@push.rocks/npmextra'; +import * as path from 'path'; +import * as projectinfo from '@push.rocks/projectinfo'; +import * as smartcli from '@push.rocks/smartcli'; +import * as smartpath from '@push.rocks/smartpath'; +import * as smartpromise from '@push.rocks/smartpromise'; +import * as smartupdate from '@push.rocks/smartupdate'; + +export { + smartlog, + smartlogDestinationLocal, + npmextra, + path, + projectinfo, + smartcli, + smartpath, + smartpromise, + smartupdate, +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..dfe5a55 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "useDefineForClassFields": false, + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "esModuleInterop": true, + "verbatimModuleSyntax": true + }, + "exclude": [ + "dist_*/**/*.d.ts" + ] +}