diff --git a/.gitea/workflows/docker_nottags.yaml b/.gitea/workflows/docker_nottags.yaml index c8b6565..5154a0e 100644 --- a/.gitea/workflows/docker_nottags.yaml +++ b/.gitea/workflows/docker_nottags.yaml @@ -6,8 +6,8 @@ on: - '**' env: - IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci - NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitea.lossless.digital/${{gitea.repository}}.git + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} @@ -27,7 +27,7 @@ jobs: - name: Install pnpm and npmci run: | pnpm install -g pnpm - pnpm install -g @shipzone/npmci + pnpm install -g @ship.zone/npmci npmci npm prepare - name: Audit production dependencies @@ -54,7 +54,7 @@ jobs: - name: Prepare run: | pnpm install -g pnpm - pnpm install -g @shipzone/npmci + pnpm install -g @ship.zone/npmci npmci npm prepare - name: Test stable diff --git a/.gitea/workflows/docker_tags.yaml b/.gitea/workflows/docker_tags.yaml index 5af83c9..74684e0 100644 --- a/.gitea/workflows/docker_tags.yaml +++ b/.gitea/workflows/docker_tags.yaml @@ -6,8 +6,8 @@ on: - '*' env: - IMAGE: registry.gitlab.com/hosttoday/ht-docker-node:npmci - NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@gitea.lossless.digital/${{gitea.repository}}.git + IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci + NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} @@ -27,7 +27,7 @@ jobs: - name: Prepare run: | pnpm install -g pnpm - pnpm install -g @shipzone/npmci + pnpm install -g @ship.zone/npmci npmci npm prepare - name: Audit production dependencies @@ -54,7 +54,7 @@ jobs: - name: Prepare run: | pnpm install -g pnpm - pnpm install -g @shipzone/npmci + pnpm install -g @ship.zone/npmci npmci npm prepare - name: Test stable @@ -74,7 +74,7 @@ jobs: if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest container: - image: registry.gitlab.com/hosttoday/ht-docker-dbase:npmci + image: code.foss.global/hosttoday/ht-docker-dbase:npmci steps: - uses: actions/checkout@v3 @@ -82,15 +82,15 @@ jobs: - name: Prepare run: | pnpm install -g pnpm - pnpm install -g @shipzone/npmci + pnpm install -g @ship.zone/npmci - name: Release run: | npmci docker login npmci docker build npmci docker test - # npmci docker push gitea.lossless.digital - npmci docker push dockerregistry.lossless.digital + # npmci docker push + npmci docker push metadata: needs: test diff --git a/Dockerfile b/Dockerfile index e85966b..b8dec57 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # gitzone dockerfile_service ## STAGE 1 // BUILD -FROM registry.gitlab.com/hosttoday/ht-docker-node:npmci as node1 +FROM code.foss.global/hosttoday/ht-docker-node:npmci as node1 COPY ./ /app WORKDIR /app ARG NPMCI_TOKEN_NPM2 @@ -12,7 +12,7 @@ RUN pnpm run build # gitzone dockerfile_service ## STAGE 2 // install production -FROM registry.gitlab.com/hosttoday/ht-docker-node:npmci as node2 +FROM code.foss.global/hosttoday/ht-docker-node:npmci as node2 WORKDIR /app COPY --from=node1 /app /app RUN rm -rf .pnpm-store @@ -24,7 +24,7 @@ RUN rm -rf node_modules/ && pnpm install --prod ## STAGE 3 // rebuild dependencies for alpine -FROM registry.gitlab.com/hosttoday/ht-docker-node:alpinenpmci as node3 +FROM code.foss.global/hosttoday/ht-docker-node:alpinenpmci as node3 WORKDIR /app COPY --from=node2 /app /app ARG NPMCI_TOKEN_NPM2 @@ -34,7 +34,7 @@ RUN pnpm config set store-dir .pnpm-store RUN pnpm rebuild -r ## STAGE 4 // the final production image with all dependencies in place -FROM registry.gitlab.com/hosttoday/ht-docker-node:alpine as node4 +FROM code.foss.global/hosttoday/ht-docker-node:alpine as node4 WORKDIR /app COPY --from=node3 /app /app diff --git a/changelog.md b/changelog.md index f188c77..86013bb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +## 2024-10-27 - 1.2.4 - fix(ci) +Fix Docker images and npm registry URL in CI workflows + +- Updated Docker image registry URL from 'registry.gitlab.com' to 'code.foss.global'. +- Fixed npmci package installation path from '@shipzone/npmci' to '@ship.zone/npmci'. + ## 2024-10-23 - 1.2.3 - fix(cli) Set up CLI client definition and registry configuration diff --git a/package.json b/package.json index 77365df..8875868 100644 --- a/package.json +++ b/package.json @@ -18,19 +18,21 @@ "start": "node cli.js", "startTs": "node cli.ts.js", "watch": "tswatch website", - "publish": "tspublish" + "publish": "tspublish", + "buildDocs": "tsdoc" }, "devDependencies": { - "@git.zone/tsbuild": "^2.1.84", - "@git.zone/tsbundle": "^2.0.15", - "@git.zone/tspublish": "^1.3.0", + "@git.zone/tsbuild": "^2.1.85", + "@git.zone/tsbundle": "^2.1.0", + "@git.zone/tspublish": "^1.4.0", "@git.zone/tstest": "^1.0.90", - "@git.zone/tswatch": "^2.0.23", + "@git.zone/tswatch": "^2.0.25", "@push.rocks/tapbundle": "^5.3.0", - "@types/node": "^22.7.7" + "@types/node": "^22.8.1" }, "dependencies": { "@api.global/typedrequest": "3.1.10", + "@api.global/typedrequest-interfaces": "^3.0.19", "@api.global/typedserver": "^3.0.51", "@api.global/typedsocket": "^3.0.1", "@apiclient.xyz/cloudflare": "^6.0.1", @@ -40,7 +42,7 @@ "@design.estate/dees-catalog": "^1.2.0", "@design.estate/dees-domtools": "^2.0.64", "@design.estate/dees-element": "^2.0.39", - "@git.zone/tsrun": "^1.2.49", + "@git.zone/tsrun": "^1.3.3", "@push.rocks/early": "^4.0.3", "@push.rocks/npmextra": "^5.0.23", "@push.rocks/projectinfo": "^5.0.1", @@ -59,6 +61,7 @@ "@push.rocks/smartjwt": "^2.2.1", "@push.rocks/smartlog": "^3.0.7", "@push.rocks/smartlog-destination-clickhouse": "^1.0.13", + "@push.rocks/smartlog-interfaces": "^3.0.2", "@push.rocks/smartpath": "^5.0.18", "@push.rocks/smartpromise": "^4.0.4", "@push.rocks/smartrequest": "^2.0.22", @@ -70,7 +73,6 @@ "@push.rocks/smartunique": "^3.0.9", "@push.rocks/taskbuffer": "^3.0.2", "@push.rocks/webjwt": "^1.0.9", - "@serve.zone/interfaces": "^1.1.2", "@tsclass/tsclass": "^4.1.2" }, "files": [ @@ -125,4 +127,4 @@ "security", "logging" ] -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e68ae52..4e9a289 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ dependencies: '@api.global/typedrequest': specifier: 3.1.10 version: 3.1.10 + '@api.global/typedrequest-interfaces': + specifier: ^3.0.19 + version: 3.0.19 '@api.global/typedserver': specifier: ^3.0.51 version: 3.0.51 @@ -36,8 +39,8 @@ dependencies: specifier: ^2.0.39 version: 2.0.39 '@git.zone/tsrun': - specifier: ^1.2.49 - version: 1.2.49(@types/node@22.7.9) + specifier: ^1.3.3 + version: 1.3.3 '@push.rocks/early': specifier: ^4.0.3 version: 4.0.4 @@ -52,7 +55,7 @@ dependencies: version: 6.0.5 '@push.rocks/smartacme': specifier: ^5.0.0 - version: 5.0.0(@aws-sdk/client-sso-oidc@3.677.0) + version: 5.0.0(@aws-sdk/client-sso-oidc@3.679.0) '@push.rocks/smartbucket': specifier: ^3.0.23 version: 3.0.23 @@ -64,7 +67,7 @@ dependencies: version: 2.0.17 '@push.rocks/smartdata': specifier: ^5.2.10 - version: 5.2.10(@aws-sdk/client-sso-oidc@3.677.0) + version: 5.2.10(@aws-sdk/client-sso-oidc@3.679.0) '@push.rocks/smartdelay': specifier: ^3.0.5 version: 3.0.5 @@ -92,6 +95,9 @@ dependencies: '@push.rocks/smartlog-destination-clickhouse': specifier: ^1.0.13 version: 1.0.13 + '@push.rocks/smartlog-interfaces': + specifier: ^3.0.2 + version: 3.0.2 '@push.rocks/smartpath': specifier: ^5.0.18 version: 5.0.18 @@ -125,35 +131,32 @@ dependencies: '@push.rocks/webjwt': specifier: ^1.0.9 version: 1.0.9 - '@serve.zone/interfaces': - specifier: ^1.1.2 - version: 1.1.2 '@tsclass/tsclass': specifier: ^4.1.2 version: 4.1.2 devDependencies: '@git.zone/tsbuild': - specifier: ^2.1.84 - version: 2.1.84 + specifier: ^2.1.85 + version: 2.1.85 '@git.zone/tsbundle': - specifier: ^2.0.15 - version: 2.0.15 + specifier: ^2.1.0 + version: 2.1.0 '@git.zone/tspublish': - specifier: ^1.3.0 - version: 1.3.2 + specifier: ^1.4.0 + version: 1.4.0 '@git.zone/tstest': specifier: ^1.0.90 - version: 1.0.90(@types/node@22.7.9) + version: 1.0.90 '@git.zone/tswatch': - specifier: ^2.0.23 - version: 2.0.23(@types/node@22.7.9) + specifier: ^2.0.25 + version: 2.0.25 '@push.rocks/tapbundle': specifier: ^5.3.0 version: 5.3.0 '@types/node': - specifier: ^22.7.7 - version: 22.7.9 + specifier: ^22.8.1 + version: 22.8.1 packages: @@ -294,7 +297,7 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 tslib: 2.8.0 dev: false @@ -302,7 +305,7 @@ packages: resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 tslib: 2.8.0 dev: false @@ -311,8 +314,8 @@ packages: dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-locate-window': 3.568.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-locate-window': 3.679.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.0 dev: false @@ -323,8 +326,8 @@ packages: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-locate-window': 3.568.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-locate-window': 3.679.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.0 dev: false @@ -334,7 +337,7 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 tslib: 2.8.0 dev: false @@ -347,31 +350,31 @@ packages: /@aws-crypto/util@5.2.0: resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.0 dev: false - /@aws-sdk/client-cognito-identity@3.677.0: - resolution: {integrity: sha512-wGhbHAZGa5VeVLCyAfhyFWXl+JfsHSgSl0eodH6xqKoR60LTDJZbBgQZizUwSj8EoSzsglBvgPLYZaLfXTKM/g==} + /@aws-sdk/client-cognito-identity@3.679.0: + resolution: {integrity: sha512-vJzQ6QpaMu8itJMe3FH1/0rwMjL0ELh63iLTxiAmhiV/SvCwNNoSFLd2HdKxbV0Bg/x8lUiPVq3pl6+cxaIrEQ==} engines: {node: '>=16.0.0'} requiresBuild: true dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/client-sts': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/credential-provider-node': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/middleware-host-header': 3.667.0 - '@aws-sdk/middleware-logger': 3.667.0 - '@aws-sdk/middleware-recursion-detection': 3.667.0 - '@aws-sdk/middleware-user-agent': 3.677.0 - '@aws-sdk/region-config-resolver': 3.667.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-endpoints': 3.667.0 - '@aws-sdk/util-user-agent-browser': 3.675.0 - '@aws-sdk/util-user-agent-node': 3.677.0 + '@aws-sdk/client-sso-oidc': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/client-sts': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/credential-provider-node': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/middleware-host-header': 3.679.0 + '@aws-sdk/middleware-logger': 3.679.0 + '@aws-sdk/middleware-recursion-detection': 3.679.0 + '@aws-sdk/middleware-user-agent': 3.679.0 + '@aws-sdk/region-config-resolver': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-endpoints': 3.679.0 + '@aws-sdk/util-user-agent-browser': 3.679.0 + '@aws-sdk/util-user-agent-node': 3.679.0 '@smithy/config-resolver': 3.0.10 '@smithy/core': 2.5.1 '@smithy/fetch-http-handler': 3.2.9 @@ -403,34 +406,34 @@ packages: dev: false optional: true - /@aws-sdk/client-s3@3.677.0: - resolution: {integrity: sha512-TrfT7hyjs0FRh5MosduFZsskHhjvBKL451Wo5f80IcnxvNL8YZouh6kblUSiHKUxuc32WSiAKbXJJaPWdXs75Q==} + /@aws-sdk/client-s3@3.679.0: + resolution: {integrity: sha512-P93tUbJXiDtSPgBfFpnjaijLV38hyPlE3g0XybsPTmSYNV6A9Jt1TUIF6vX+o6LdFuq3FerCiagUjhfDANWkAw==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/client-sts': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/credential-provider-node': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/middleware-bucket-endpoint': 3.667.0 - '@aws-sdk/middleware-expect-continue': 3.667.0 - '@aws-sdk/middleware-flexible-checksums': 3.677.0 - '@aws-sdk/middleware-host-header': 3.667.0 - '@aws-sdk/middleware-location-constraint': 3.667.0 - '@aws-sdk/middleware-logger': 3.667.0 - '@aws-sdk/middleware-recursion-detection': 3.667.0 - '@aws-sdk/middleware-sdk-s3': 3.677.0 - '@aws-sdk/middleware-ssec': 3.667.0 - '@aws-sdk/middleware-user-agent': 3.677.0 - '@aws-sdk/region-config-resolver': 3.667.0 - '@aws-sdk/signature-v4-multi-region': 3.677.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-endpoints': 3.667.0 - '@aws-sdk/util-user-agent-browser': 3.675.0 - '@aws-sdk/util-user-agent-node': 3.677.0 - '@aws-sdk/xml-builder': 3.662.0 + '@aws-sdk/client-sso-oidc': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/client-sts': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/credential-provider-node': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/middleware-bucket-endpoint': 3.679.0 + '@aws-sdk/middleware-expect-continue': 3.679.0 + '@aws-sdk/middleware-flexible-checksums': 3.679.0 + '@aws-sdk/middleware-host-header': 3.679.0 + '@aws-sdk/middleware-location-constraint': 3.679.0 + '@aws-sdk/middleware-logger': 3.679.0 + '@aws-sdk/middleware-recursion-detection': 3.679.0 + '@aws-sdk/middleware-sdk-s3': 3.679.0 + '@aws-sdk/middleware-ssec': 3.679.0 + '@aws-sdk/middleware-user-agent': 3.679.0 + '@aws-sdk/region-config-resolver': 3.679.0 + '@aws-sdk/signature-v4-multi-region': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-endpoints': 3.679.0 + '@aws-sdk/util-user-agent-browser': 3.679.0 + '@aws-sdk/util-user-agent-node': 3.679.0 + '@aws-sdk/xml-builder': 3.679.0 '@smithy/config-resolver': 3.0.10 '@smithy/core': 2.5.1 '@smithy/eventstream-serde-browser': 3.0.11 @@ -469,26 +472,26 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sso-oidc@3.677.0(@aws-sdk/client-sts@3.677.0): - resolution: {integrity: sha512-2zgZkRIU7DsnUVOy+9bjfJ0IYMzi9ONWXQt/WqMa7HOnj4RfenfpipyhHYxGZR5kmehgv53EI79yvUu+SAfGNg==} + /@aws-sdk/client-sso-oidc@3.679.0(@aws-sdk/client-sts@3.679.0): + resolution: {integrity: sha512-/dBYWcCwbA/id4sFCIVZvf0UsvzHCC68SryxeNQk/PDkY9N4n5yRcMUkZDaEyQCjowc3kY4JOXp2AdUP037nhA==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.677.0 + '@aws-sdk/client-sts': ^3.679.0 dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/credential-provider-node': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/middleware-host-header': 3.667.0 - '@aws-sdk/middleware-logger': 3.667.0 - '@aws-sdk/middleware-recursion-detection': 3.667.0 - '@aws-sdk/middleware-user-agent': 3.677.0 - '@aws-sdk/region-config-resolver': 3.667.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-endpoints': 3.667.0 - '@aws-sdk/util-user-agent-browser': 3.675.0 - '@aws-sdk/util-user-agent-node': 3.677.0 + '@aws-sdk/client-sts': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/credential-provider-node': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/middleware-host-header': 3.679.0 + '@aws-sdk/middleware-logger': 3.679.0 + '@aws-sdk/middleware-recursion-detection': 3.679.0 + '@aws-sdk/middleware-user-agent': 3.679.0 + '@aws-sdk/region-config-resolver': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-endpoints': 3.679.0 + '@aws-sdk/util-user-agent-browser': 3.679.0 + '@aws-sdk/util-user-agent-node': 3.679.0 '@smithy/config-resolver': 3.0.10 '@smithy/core': 2.5.1 '@smithy/fetch-http-handler': 3.2.9 @@ -519,22 +522,22 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sso@3.677.0: - resolution: {integrity: sha512-/y6EskFhOa2w9VwXaXoyOrGeBjnOj/72wsxDOslS908qH+nf7m40pBK6e/iBelg04vlx0gqhlbfK8hLbaT6KHA==} + /@aws-sdk/client-sso@3.679.0: + resolution: {integrity: sha512-/0cAvYnpOZTo/Y961F1kx2fhDDLUYZ0SQQ5/75gh3xVImLj7Zw+vp74ieqFbqWLYGMaq8z1Arr9A8zG95mbLdg==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/middleware-host-header': 3.667.0 - '@aws-sdk/middleware-logger': 3.667.0 - '@aws-sdk/middleware-recursion-detection': 3.667.0 - '@aws-sdk/middleware-user-agent': 3.677.0 - '@aws-sdk/region-config-resolver': 3.667.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-endpoints': 3.667.0 - '@aws-sdk/util-user-agent-browser': 3.675.0 - '@aws-sdk/util-user-agent-node': 3.677.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/middleware-host-header': 3.679.0 + '@aws-sdk/middleware-logger': 3.679.0 + '@aws-sdk/middleware-recursion-detection': 3.679.0 + '@aws-sdk/middleware-user-agent': 3.679.0 + '@aws-sdk/region-config-resolver': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-endpoints': 3.679.0 + '@aws-sdk/util-user-agent-browser': 3.679.0 + '@aws-sdk/util-user-agent-node': 3.679.0 '@smithy/config-resolver': 3.0.10 '@smithy/core': 2.5.1 '@smithy/fetch-http-handler': 3.2.9 @@ -565,24 +568,24 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sts@3.677.0: - resolution: {integrity: sha512-N5fs1GLSthnwrs44b4IJI//dcShuIT42g4pM8FCUJZwbrWn9Sp9F876R1mvb8A9TAy2S4qCXi7TkHS0REnuicQ==} + /@aws-sdk/client-sts@3.679.0: + resolution: {integrity: sha512-3CvrT8w1RjFu1g8vKA5Azfr5V83r2/b68Ock43WE003Bq/5Y38mwmYX7vk0fPHzC3qejt4YMAWk/C3fSKOy25g==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/core': 3.677.0 - '@aws-sdk/credential-provider-node': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/middleware-host-header': 3.667.0 - '@aws-sdk/middleware-logger': 3.667.0 - '@aws-sdk/middleware-recursion-detection': 3.667.0 - '@aws-sdk/middleware-user-agent': 3.677.0 - '@aws-sdk/region-config-resolver': 3.667.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-endpoints': 3.667.0 - '@aws-sdk/util-user-agent-browser': 3.675.0 - '@aws-sdk/util-user-agent-node': 3.677.0 + '@aws-sdk/client-sso-oidc': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/core': 3.679.0 + '@aws-sdk/credential-provider-node': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/middleware-host-header': 3.679.0 + '@aws-sdk/middleware-logger': 3.679.0 + '@aws-sdk/middleware-recursion-detection': 3.679.0 + '@aws-sdk/middleware-user-agent': 3.679.0 + '@aws-sdk/region-config-resolver': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-endpoints': 3.679.0 + '@aws-sdk/util-user-agent-browser': 3.679.0 + '@aws-sdk/util-user-agent-node': 3.679.0 '@smithy/config-resolver': 3.0.10 '@smithy/core': 2.5.1 '@smithy/fetch-http-handler': 3.2.9 @@ -613,11 +616,11 @@ packages: - aws-crt dev: false - /@aws-sdk/core@3.677.0: - resolution: {integrity: sha512-5auvc1wmXmd7u9Y9nM95Ia+VX7J2FiZLuADitHqE4mHPH9riDgOY+uK/yM+UKr+lfq4zKiZQG7i8cfabZlCY8g==} + /@aws-sdk/core@3.679.0: + resolution: {integrity: sha512-CS6PWGX8l4v/xyvX8RtXnBisdCa5+URzKd0L6GvHChype9qKUVxO/Gg6N/y43Hvg7MNWJt9FBPNWIxUB+byJwg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/core': 2.5.1 '@smithy/node-config-provider': 3.1.9 '@smithy/property-provider': 3.1.8 @@ -630,13 +633,13 @@ packages: tslib: 2.8.0 dev: false - /@aws-sdk/credential-provider-cognito-identity@3.677.0: - resolution: {integrity: sha512-ODw8MKhT41KLpKlGIH1yFO2FIOCAW3Nnn2uCu1eAm807aI0OK31ntUNrY+GFzXX7ixv+KFoiJu3ih+w+Oxw5gA==} + /@aws-sdk/credential-provider-cognito-identity@3.679.0: + resolution: {integrity: sha512-XvWd6RPk7TA7tmqITT+NXvJ6ltJP8BUtLO1NAvja4HKExPKR9HAyoOeeH7KM3lVRED4e4LUnLb3fzteH20IXaA==} engines: {node: '>=16.0.0'} requiresBuild: true dependencies: - '@aws-sdk/client-cognito-identity': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/client-cognito-identity': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 tslib: 2.8.0 @@ -645,23 +648,23 @@ packages: dev: false optional: true - /@aws-sdk/credential-provider-env@3.677.0: - resolution: {integrity: sha512-0ctcqKzclr9TiNIkB8I+YRogjWH/4mLWQGv/bgb8ElHqph+rPy4pOubj1Ax01sbs7XdwDaImjBYV5xXE+BEsYw==} + /@aws-sdk/credential-provider-env@3.679.0: + resolution: {integrity: sha512-EdlTYbzMm3G7VUNAMxr9S1nC1qUNqhKlAxFU8E7cKsAe8Bp29CD5HAs3POc56AVo9GC4yRIS+/mtlZSmrckzUA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/credential-provider-http@3.677.0: - resolution: {integrity: sha512-c4TnShdzk37dhL1HGGzZ2PDKIIEmo1IbT/4y5hSRdNc8Z8fu6spE5GoeVsv6p/HdSGPS7XTy6aOFCMCk4AeIzQ==} + /@aws-sdk/credential-provider-http@3.679.0: + resolution: {integrity: sha512-ZoKLubW5DqqV1/2a3TSn+9sSKg0T8SsYMt1JeirnuLJF0mCoYFUaWMyvxxKuxPoqvUsaycxKru4GkpJ10ltNBw==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/fetch-http-handler': 3.2.9 '@smithy/node-http-handler': 3.2.5 '@smithy/property-provider': 3.1.8 @@ -672,20 +675,20 @@ packages: tslib: 2.8.0 dev: false - /@aws-sdk/credential-provider-ini@3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0): - resolution: {integrity: sha512-hW+oHj5zplPLzTk74LG+gZVOKQnmBPyRIbwg3uZWr23xfOxh/Osu9Wq8qwgu2+UyFHr+6/DRFjZJ6avNA2jpKw==} + /@aws-sdk/credential-provider-ini@3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0): + resolution: {integrity: sha512-Rg7t8RwUzKcumpipG4neZqaeJ6DF+Bco1+FHn5BZB68jpvwvjBjcQUuWkxj18B6ctYHr1fkunnzeKEn/+vy7+w==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.677.0 + '@aws-sdk/client-sts': ^3.679.0 dependencies: - '@aws-sdk/client-sts': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/credential-provider-env': 3.677.0 - '@aws-sdk/credential-provider-http': 3.677.0 - '@aws-sdk/credential-provider-process': 3.677.0 - '@aws-sdk/credential-provider-sso': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0) - '@aws-sdk/credential-provider-web-identity': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/types': 3.667.0 + '@aws-sdk/client-sts': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/credential-provider-env': 3.679.0 + '@aws-sdk/credential-provider-http': 3.679.0 + '@aws-sdk/credential-provider-process': 3.679.0 + '@aws-sdk/credential-provider-sso': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0) + '@aws-sdk/credential-provider-web-identity': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/types': 3.679.0 '@smithy/credential-provider-imds': 3.2.5 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 @@ -696,17 +699,17 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0): - resolution: {integrity: sha512-DwFriiDx2SSdj7VhRv/0fm8UIK7isy+WZAlqUdZ9xDsX4x1AD5KwMv9AwGhJrMuTjnPSxRSwjt23S7ZXwUfhdw==} + /@aws-sdk/credential-provider-node@3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0): + resolution: {integrity: sha512-E3lBtaqCte8tWs6Rkssc8sLzvGoJ10TLGvpkijOlz43wPd6xCRh1YLwg6zolf9fVFtEyUs/GsgymiASOyxhFtw==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.677.0 - '@aws-sdk/credential-provider-http': 3.677.0 - '@aws-sdk/credential-provider-ini': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/credential-provider-process': 3.677.0 - '@aws-sdk/credential-provider-sso': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0) - '@aws-sdk/credential-provider-web-identity': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/types': 3.667.0 + '@aws-sdk/credential-provider-env': 3.679.0 + '@aws-sdk/credential-provider-http': 3.679.0 + '@aws-sdk/credential-provider-ini': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/credential-provider-process': 3.679.0 + '@aws-sdk/credential-provider-sso': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0) + '@aws-sdk/credential-provider-web-identity': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/types': 3.679.0 '@smithy/credential-provider-imds': 3.2.5 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 @@ -718,26 +721,26 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-process@3.677.0: - resolution: {integrity: sha512-pBqHjIFvHBJb2NOsVqdIHWcOzXDoNXBokxTvMggb3WYML6ixwrH7kpd1CAzegeQlvZD4SCcRoy3ahv5rbuR+og==} + /@aws-sdk/credential-provider-process@3.679.0: + resolution: {integrity: sha512-u/p4TV8kQ0zJWDdZD4+vdQFTMhkDEJFws040Gm113VHa/Xo1SYOjbpvqeuFoz6VmM0bLvoOWjxB9MxnSQbwKpQ==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/credential-provider-sso@3.677.0(@aws-sdk/client-sso-oidc@3.677.0): - resolution: {integrity: sha512-OkRP3z8yI22t9LS9At5fYr6RN7zKSDiGgeyjEnrqiGHOWGPMJN2GKa8IAFC4dgXt4Nm/EfmEW7UweiqzEKJKOA==} + /@aws-sdk/credential-provider-sso@3.679.0(@aws-sdk/client-sso-oidc@3.679.0): + resolution: {integrity: sha512-SAtWonhi9asxn0ukEbcE81jkyanKgqpsrtskvYPpO9Z9KOednM4Cqt6h1bfcS9zaHjN2zu815Gv8O7WiV+F/DQ==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/client-sso': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/token-providers': 3.667.0(@aws-sdk/client-sso-oidc@3.677.0) - '@aws-sdk/types': 3.667.0 + '@aws-sdk/client-sso': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/token-providers': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0) + '@aws-sdk/types': 3.679.0 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 '@smithy/types': 3.6.0 @@ -747,38 +750,38 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.677.0(@aws-sdk/client-sts@3.677.0): - resolution: {integrity: sha512-yjuI6hSt1rLFqBQiNKx/nF75Ao72xR8ybqKztzebtFNCrYl8oXVkRiigg5XKNCDmelsx1lcU9IcSiuPHzlGtUQ==} + /@aws-sdk/credential-provider-web-identity@3.679.0(@aws-sdk/client-sts@3.679.0): + resolution: {integrity: sha512-a74tLccVznXCaBefWPSysUcLXYJiSkeUmQGtalNgJ1vGkE36W5l/8czFiiowdWdKWz7+x6xf0w+Kjkjlj42Ung==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.677.0 + '@aws-sdk/client-sts': ^3.679.0 dependencies: - '@aws-sdk/client-sts': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/client-sts': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/credential-providers@3.677.0(@aws-sdk/client-sso-oidc@3.677.0): - resolution: {integrity: sha512-fUEDkRI2GuN+p9xyZewlRQC2vFXjxPOoQGugQTmOawTxVUYkFpssg4ID0HUtkKuJYHjaoD2bCyKvOcnL1JU6AA==} + /@aws-sdk/credential-providers@3.679.0(@aws-sdk/client-sso-oidc@3.679.0): + resolution: {integrity: sha512-ZjZZb6OERw/UKlSqcJ24AUJIf/ekDLPZrPpo0kPMV70EQ0GkBiklIZ8qULu9bEcI2I4UIapBKRiXTrK4gA6YHg==} engines: {node: '>=16.0.0'} requiresBuild: true dependencies: - '@aws-sdk/client-cognito-identity': 3.677.0 - '@aws-sdk/client-sso': 3.677.0 - '@aws-sdk/client-sts': 3.677.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/credential-provider-cognito-identity': 3.677.0 - '@aws-sdk/credential-provider-env': 3.677.0 - '@aws-sdk/credential-provider-http': 3.677.0 - '@aws-sdk/credential-provider-ini': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/credential-provider-node': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0)(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/credential-provider-process': 3.677.0 - '@aws-sdk/credential-provider-sso': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0) - '@aws-sdk/credential-provider-web-identity': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/types': 3.667.0 + '@aws-sdk/client-cognito-identity': 3.679.0 + '@aws-sdk/client-sso': 3.679.0 + '@aws-sdk/client-sts': 3.679.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/credential-provider-cognito-identity': 3.679.0 + '@aws-sdk/credential-provider-env': 3.679.0 + '@aws-sdk/credential-provider-http': 3.679.0 + '@aws-sdk/credential-provider-ini': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/credential-provider-node': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0)(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/credential-provider-process': 3.679.0 + '@aws-sdk/credential-provider-sso': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0) + '@aws-sdk/credential-provider-web-identity': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/types': 3.679.0 '@smithy/credential-provider-imds': 3.2.5 '@smithy/property-provider': 3.1.8 '@smithy/types': 3.6.0 @@ -789,12 +792,12 @@ packages: dev: false optional: true - /@aws-sdk/middleware-bucket-endpoint@3.667.0: - resolution: {integrity: sha512-XGz4jMAkDoTyFdtLz7ZF+C05IAhCTC1PllpvTBaj821z/L0ilhbqVhrT/f2Buw8Id/K5A390csGXgusXyrFFjA==} + /@aws-sdk/middleware-bucket-endpoint@3.679.0: + resolution: {integrity: sha512-5EpiPhhGgnF+uJR4DzWUk6Lx3pOn9oM6JGXxeHsiynfoBfq7vHMleq+uABHHSQS+y7XzbyZ7x8tXNQlliMwOsg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-arn-parser': 3.568.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-arn-parser': 3.679.0 '@smithy/node-config-provider': 3.1.9 '@smithy/protocol-http': 4.1.5 '@smithy/types': 3.6.0 @@ -802,24 +805,24 @@ packages: tslib: 2.8.0 dev: false - /@aws-sdk/middleware-expect-continue@3.667.0: - resolution: {integrity: sha512-0TiSL9S5DSG95NHGIz6qTMuV7GDKVn8tvvGSrSSZu/wXO3JaYSH0AElVpYfc4PtPRqVpEyNA7nnc7W56mMCLWQ==} + /@aws-sdk/middleware-expect-continue@3.679.0: + resolution: {integrity: sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/protocol-http': 4.1.5 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/middleware-flexible-checksums@3.677.0: - resolution: {integrity: sha512-mTv3zRH+3/hW8hY0K855UrBmzW4pLb7n8MjlyL2dR8+wfXXw6DsSxGmEb4Jq13OjLTwSxyZs00JdpKtzgiIieA==} + /@aws-sdk/middleware-flexible-checksums@3.679.0: + resolution: {integrity: sha512-2Nf3rnrcog3GRRdXxc623wkQPH3WXhz8oZ+KHuXBeBKX01zbp7bz22QAZKqw3Oo2lv+LQNEDzIfQYn7leXLZGQ==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/is-array-buffer': 3.0.0 '@smithy/node-config-provider': 3.1.9 '@smithy/protocol-http': 4.1.5 @@ -829,51 +832,51 @@ packages: tslib: 2.8.0 dev: false - /@aws-sdk/middleware-host-header@3.667.0: - resolution: {integrity: sha512-Z7fIAMQnPegs7JjAQvlOeWXwpMRfegh5eCoIP6VLJIeR6DLfYKbP35JBtt98R6DXslrN2RsbTogjbxPEDQfw1w==} + /@aws-sdk/middleware-host-header@3.679.0: + resolution: {integrity: sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/protocol-http': 4.1.5 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/middleware-location-constraint@3.667.0: - resolution: {integrity: sha512-ob85H3HhT3/u5O+x0o557xGZ78vSNeSSwMaSitxdsfs2hOuoUl1uk+OeLpi1hkuJnL41FPpokV7TVII2XrFfmg==} + /@aws-sdk/middleware-location-constraint@3.679.0: + resolution: {integrity: sha512-SA1C1D3XgoKTGxyNsOqd016ONpk46xJLWDgJUd00Zb21Ox5wYCoY6aDRKiaMRW+1VfCJdezs1Do3XLyIU9KxyA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/middleware-logger@3.667.0: - resolution: {integrity: sha512-PtTRNpNm/5c746jRgZCNg4X9xEJIwggkGJrF0GP9AB1ANg4pc/sF2Fvn1NtqPe9wtQ2stunJprnm5WkCHN7QiA==} + /@aws-sdk/middleware-logger@3.679.0: + resolution: {integrity: sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/middleware-recursion-detection@3.667.0: - resolution: {integrity: sha512-U5glWD3ehFohzpUpopLtmqAlDurGWo2wRGPNgi4SwhWU7UDt6LS7E/UvJjqC0CUrjlzOw+my2A+Ncf+fisMhxQ==} + /@aws-sdk/middleware-recursion-detection@3.679.0: + resolution: {integrity: sha512-sQoAZFsQiW/LL3DfKMYwBoGjYDEnMbA9WslWN8xneCmBAwKo6IcSksvYs23PP8XMIoBGe2I2J9BSr654XWygTQ==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/protocol-http': 4.1.5 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/middleware-sdk-s3@3.677.0: - resolution: {integrity: sha512-3U8FHgWuxhAl97HMdaFs/SJlhpb5+i//FHv0JWYm2oAPZflIRFeJn1bgVtD7ka1NY2iJjpnqX8hHJPS547MnFQ==} + /@aws-sdk/middleware-sdk-s3@3.679.0: + resolution: {integrity: sha512-4zcT193F7RkEfqlS6ZdwyNQ0UUp9s66msNXgItugasTbjf7oqfWDas7N+BG8ADB/Ql3wvRUh9I+zdrVkxxw3BQ==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-arn-parser': 3.568.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-arn-parser': 3.679.0 '@smithy/core': 2.5.1 '@smithy/node-config-provider': 3.1.9 '@smithy/protocol-http': 4.1.5 @@ -887,33 +890,33 @@ packages: tslib: 2.8.0 dev: false - /@aws-sdk/middleware-ssec@3.667.0: - resolution: {integrity: sha512-1wuAUZIkmZIvOmGg5qNQU821CGFHhkuKioxXgNh0DpUxZ9+AeiV7yorJr+bqkb2KBFv1i1TnzGRecvKf/KvZIQ==} + /@aws-sdk/middleware-ssec@3.679.0: + resolution: {integrity: sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/middleware-user-agent@3.677.0: - resolution: {integrity: sha512-A3gzUsTsvyv/JCmD0p2fkbiOyp+tpAiAADDwzi+eYeyzH4xzqnrzSkGk5KSb58uUQo27eeBzRXHd46d0u+sMrQ==} + /@aws-sdk/middleware-user-agent@3.679.0: + resolution: {integrity: sha512-4hdeXhPDURPqQLPd9jCpUEo9fQITXl3NM3W1MwcJpE0gdUM36uXkQOYsTPeeU/IRCLVjK8Htlh2oCaM9iJrLCA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/core': 3.677.0 - '@aws-sdk/types': 3.667.0 - '@aws-sdk/util-endpoints': 3.667.0 + '@aws-sdk/core': 3.679.0 + '@aws-sdk/types': 3.679.0 + '@aws-sdk/util-endpoints': 3.679.0 '@smithy/core': 2.5.1 '@smithy/protocol-http': 4.1.5 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/region-config-resolver@3.667.0: - resolution: {integrity: sha512-iNr+JhhA902JMKHG9IwT9YdaEx6KGl6vjAL5BRNeOjfj4cZYMog6Lz/IlfOAltMtT0w88DAHDEFrBd2uO0l2eg==} + /@aws-sdk/region-config-resolver@3.679.0: + resolution: {integrity: sha512-Ybx54P8Tg6KKq5ck7uwdjiKif7n/8g1x+V0V9uTjBjRWqaIgiqzXwKWoPj6NCNkE7tJNtqI4JrNxp/3S3HvmRw==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/node-config-provider': 3.1.9 '@smithy/types': 3.6.0 '@smithy/util-config-provider': 3.0.0 @@ -921,75 +924,75 @@ packages: tslib: 2.8.0 dev: false - /@aws-sdk/signature-v4-multi-region@3.677.0: - resolution: {integrity: sha512-VJvYwPnyPMBbvKDAO58t90/y2AtdRp4epax6QR0XScZEBuS777gQ3wJb1JyHLeEAEolKj/dd6jV5Iq+/lsZIIQ==} + /@aws-sdk/signature-v4-multi-region@3.679.0: + resolution: {integrity: sha512-g1D57e7YBhgXihCWIRBcTUvKquS3FS27xuA24EynY9teiTIq7vHkASxxDnMMMcmKHnCKLI5pkznjk0PuDJ4uJw==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/middleware-sdk-s3': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/middleware-sdk-s3': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/protocol-http': 4.1.5 '@smithy/signature-v4': 4.2.1 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/token-providers@3.667.0(@aws-sdk/client-sso-oidc@3.677.0): - resolution: {integrity: sha512-ZecJlG8p6D4UTYlBHwOWX6nknVtw/OBJ3yPXTSajBjhUlj9lE2xvejI8gl4rqkyLXk7z3bki+KR4tATbMaM9yg==} + /@aws-sdk/token-providers@3.679.0(@aws-sdk/client-sso-oidc@3.679.0): + resolution: {integrity: sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.667.0 + '@aws-sdk/client-sso-oidc': ^3.679.0 dependencies: - '@aws-sdk/client-sso-oidc': 3.677.0(@aws-sdk/client-sts@3.677.0) - '@aws-sdk/types': 3.667.0 + '@aws-sdk/client-sso-oidc': 3.679.0(@aws-sdk/client-sts@3.679.0) + '@aws-sdk/types': 3.679.0 '@smithy/property-provider': 3.1.8 '@smithy/shared-ini-file-loader': 3.1.9 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/types@3.667.0: - resolution: {integrity: sha512-gYq0xCsqFfQaSL/yT1Gl1vIUjtsg7d7RhnUfsXaHt8xTxOKRTdH9GjbesBjXOzgOvB0W0vfssfreSNGFlOOMJg==} + /@aws-sdk/types@3.679.0: + resolution: {integrity: sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q==} engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/util-arn-parser@3.568.0: - resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} + /@aws-sdk/util-arn-parser@3.679.0: + resolution: {integrity: sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg==} engines: {node: '>=16.0.0'} dependencies: tslib: 2.8.0 dev: false - /@aws-sdk/util-endpoints@3.667.0: - resolution: {integrity: sha512-X22SYDAuQJWnkF1/q17pkX3nGw5XMD9YEUbmt87vUnRq7iyJ3JOpl6UKOBeUBaL838wA5yzdbinmCITJ/VZ1QA==} + /@aws-sdk/util-endpoints@3.679.0: + resolution: {integrity: sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 '@smithy/util-endpoints': 2.1.4 tslib: 2.8.0 dev: false - /@aws-sdk/util-locate-window@3.568.0: - resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==} + /@aws-sdk/util-locate-window@3.679.0: + resolution: {integrity: sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA==} engines: {node: '>=16.0.0'} dependencies: tslib: 2.8.0 dev: false - /@aws-sdk/util-user-agent-browser@3.675.0: - resolution: {integrity: sha512-HW4vGfRiX54RLcsYjLuAhcBBJ6lRVEZd7njfGpAwBB9s7BH8t48vrpYbyA5XbbqbTvXfYBnugQCUw9HWjEa1ww==} + /@aws-sdk/util-user-agent-browser@3.679.0: + resolution: {integrity: sha512-CusSm2bTBG1kFypcsqU8COhnYc6zltobsqs3nRrvYqYaOqtMnuE46K4XTWpnzKgwDejgZGOE+WYyprtAxrPvmQ==} dependencies: - '@aws-sdk/types': 3.667.0 + '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 bowser: 2.11.0 tslib: 2.8.0 dev: false - /@aws-sdk/util-user-agent-node@3.677.0: - resolution: {integrity: sha512-gFhL0zVY/um0Eu2aWil82pjWaZL4yBmOnjz0+RDz18okFBHaz1Om8o/H+1Vvj+xsnuDYV4ezVMyAaXVtTcYOnw==} + /@aws-sdk/util-user-agent-node@3.679.0: + resolution: {integrity: sha512-Bw4uXZ+NU5ed6TNfo4tBbhBSW+2eQxXYjYBGl5gLUNUpg2pDFToQAP6rXBFiwcG52V2ny5oLGiD82SoYuYkAVg==} engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -997,26 +1000,27 @@ packages: aws-crt: optional: true dependencies: - '@aws-sdk/middleware-user-agent': 3.677.0 - '@aws-sdk/types': 3.667.0 + '@aws-sdk/middleware-user-agent': 3.679.0 + '@aws-sdk/types': 3.679.0 '@smithy/node-config-provider': 3.1.9 '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@aws-sdk/xml-builder@3.662.0: - resolution: {integrity: sha512-ikLkXn0igUpnJu2mCZjklvmcDGWT9OaLRv3JyC/cRkTaaSrblPjPM7KKsltxdMTLQ+v7fjCN0TsJpxphMfaOPA==} + /@aws-sdk/xml-builder@3.679.0: + resolution: {integrity: sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ==} engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.6.0 tslib: 2.8.0 dev: false - /@babel/code-frame@7.25.9: - resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} + /@babel/code-frame@7.26.0: + resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 picocolors: 1.1.1 dev: true @@ -1025,16 +1029,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.25.9: - resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - dev: true - /@babel/runtime@7.23.4: resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} engines: {node: '>=6.9.0'} @@ -1049,12 +1043,6 @@ packages: dependencies: '@api.global/typedrequest-interfaces': 3.0.19 - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - /@design.estate/dees-catalog@1.2.0: resolution: {integrity: sha512-QVp36XMzX7PEGKJxVaZ09jPFPV2AVYDhNaP1KRWegoiI/PQ3+YilXC7P7WSTPxBojTi28AdPzt9brpaORFY/Qg==} dependencies: @@ -1134,207 +1122,408 @@ packages: - supports-color dev: false - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} + /@esbuild/aix-ppc64@0.23.1: + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + + /@esbuild/aix-ppc64@0.24.0: + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] requiresBuild: true dev: true optional: true - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} + /@esbuild/android-arm64@0.23.1: + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-arm64@0.24.0: + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} + /@esbuild/android-arm@0.23.1: + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-arm@0.24.0: + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} + /@esbuild/android-x64@0.23.1: + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-x64@0.24.0: + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} cpu: [x64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} + /@esbuild/darwin-arm64@0.23.1: + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@esbuild/darwin-arm64@0.24.0: + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} + /@esbuild/darwin-x64@0.23.1: + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@esbuild/darwin-x64@0.24.0: + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} + /@esbuild/freebsd-arm64@0.23.1: + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + /@esbuild/freebsd-arm64@0.24.0: + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} + /@esbuild/freebsd-x64@0.23.1: + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /@esbuild/freebsd-x64@0.24.0: + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} + /@esbuild/linux-arm64@0.23.1: + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-arm64@0.24.0: + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} + /@esbuild/linux-arm@0.23.1: + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-arm@0.24.0: + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} + /@esbuild/linux-ia32@0.23.1: + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-ia32@0.24.0: + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} + /@esbuild/linux-loong64@0.23.1: + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-loong64@0.24.0: + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} + /@esbuild/linux-mips64el@0.23.1: + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-mips64el@0.24.0: + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} + /@esbuild/linux-ppc64@0.23.1: + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-ppc64@0.24.0: + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} + /@esbuild/linux-riscv64@0.23.1: + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-riscv64@0.24.0: + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} + /@esbuild/linux-s390x@0.23.1: + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-s390x@0.24.0: + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} + /@esbuild/linux-x64@0.23.1: + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-x64@0.24.0: + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} + /@esbuild/netbsd-x64@0.23.1: + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + /@esbuild/netbsd-x64@0.24.0: + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} + /@esbuild/openbsd-arm64@0.23.1: + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + requiresBuild: true + optional: true + + /@esbuild/openbsd-arm64@0.24.0: + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.23.1: + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + /@esbuild/openbsd-x64@0.24.0: + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} + /@esbuild/sunos-x64@0.23.1: + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + /@esbuild/sunos-x64@0.24.0: + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} + /@esbuild/win32-arm64@0.23.1: + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@esbuild/win32-arm64@0.24.0: + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} + /@esbuild/win32-ia32@0.23.1: + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@esbuild/win32-ia32@0.24.0: + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} + /@esbuild/win32-x64@0.23.1: + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@esbuild/win32-x64@0.24.0: + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} cpu: [x64] os: [win32] requiresBuild: true @@ -1380,8 +1569,8 @@ packages: '@fortawesome/fontawesome-common-types': 6.6.0 dev: false - /@git.zone/tsbuild@2.1.84: - resolution: {integrity: sha512-OR7c06zfsOnqn693ITJnk9B6Yrei/Qa+0c6vp3ixHRGqh1VYUdI5GOIESC4uk8j4R5komR+uou9Jq8IWYkdjIw==} + /@git.zone/tsbuild@2.1.85: + resolution: {integrity: sha512-f4gVezjEDPAVv2IwtaESz99dRHA+Ja1RatHiPCN459zightltVVsSkjMpXVvnB4c/ZmKsy/awnVHw92eW9MWbg==} hasBin: true dependencies: '@push.rocks/early': 4.0.4 @@ -1394,8 +1583,8 @@ packages: typescript: 5.5.2 dev: true - /@git.zone/tsbundle@2.0.15: - resolution: {integrity: sha512-ZrPkScaBQ7hHx6BUchRFfPB9tvb7RlNXwjk9qjkp6AcBcF38JgLcu/UDKDqRsuaFJpkK9oclyhA5bDA7SjXWZg==} + /@git.zone/tsbundle@2.1.0: + resolution: {integrity: sha512-O6aAO29B3IP+o4USNx2YuMwQ0N9aUmG5Ye7n0UY0ssJxDGolwzJi8xnoMOilTl0qwZP5Lob8R7lYM2X7Ir70WA==} hasBin: true dependencies: '@push.rocks/early': 4.0.4 @@ -1408,15 +1597,15 @@ packages: '@push.rocks/smartpromise': 4.0.4 '@push.rocks/smartspawn': 3.0.3 '@types/html-minifier': 4.0.5 - esbuild: 0.19.12 + esbuild: 0.24.0 html-minifier: 4.0.0 - typescript: 5.3.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true - /@git.zone/tspublish@1.3.2: - resolution: {integrity: sha512-UYh55rd5VeoO7jeTJlNoVopH3/yc9t9IBJAX475MGm9d4by1UAUBmF/i/DUpsNjtx7eg2lqrU2MghetnKdX9Sg==} + /@git.zone/tspublish@1.4.0: + resolution: {integrity: sha512-j+uiAAc3Cf0ATKBbkADI9PpdVr4ZyrAQ3b8QJHbPiYn7IPr+7RggXymgVCRRQokDZlQhgce8AqZwJyfdzFlGcA==} hasBin: true dependencies: '@push.rocks/smartcli': 4.0.11 @@ -1427,26 +1616,21 @@ packages: '@push.rocks/smartshell': 3.0.6 dev: true - /@git.zone/tsrun@1.2.49(@types/node@22.7.9): - resolution: {integrity: sha512-RnUDdny6jAuuBLx7HqUE38JsHx9nnUUYkDM5vAOREoc6oCI9XVM0QeqIdwFmDz6eeDLBH1+yqjSQPoW5UvflJA==} + /@git.zone/tsrun@1.3.3: + resolution: {integrity: sha512-DDzWunkxXLtXJTxBf4EioXLwhuqdA2VzdTmOzWrw4Z4Qnms/YM67q36yajwNohAajPYyRz5DayU0ikrceFXyVw==} hasBin: true dependencies: '@push.rocks/smartfile': 11.0.21 '@push.rocks/smartshell': 3.0.6 - ts-node: 10.9.2(@types/node@22.7.9)(typescript@5.5.2) - typescript: 5.5.2 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' + tsx: 4.19.2 - /@git.zone/tstest@1.0.90(@types/node@22.7.9): + /@git.zone/tstest@1.0.90: resolution: {integrity: sha512-McytXK46GiReEps7wHWW6zOHYCFF4sywjj6auHjhGqzOogA2Wju1YtZRL+o+OAUb61kQxNFRras6Xg/4Zth0Bw==} hasBin: true dependencies: '@api.global/typedserver': 3.0.51 - '@git.zone/tsbundle': 2.0.15 - '@git.zone/tsrun': 1.2.49(@types/node@22.7.9) + '@git.zone/tsbundle': 2.1.0 + '@git.zone/tsrun': 1.3.3 '@push.rocks/consolecolor': 2.0.2 '@push.rocks/smartbrowser': 2.0.6 '@push.rocks/smartdelay': 3.0.5 @@ -1459,22 +1643,19 @@ packages: figures: 6.1.0 ws: 8.18.0 transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - bufferutil - encoding - supports-color - utf-8-validate dev: true - /@git.zone/tswatch@2.0.23(@types/node@22.7.9): - resolution: {integrity: sha512-ADloBDzuyyOjzDLwOVx+5lBEKJdx+r58Qat+oCDOOlRMwDOJcjI4qQOU8PVzFYCh7otraia6aNeXWXfKgKA92g==} + /@git.zone/tswatch@2.0.25: + resolution: {integrity: sha512-2A2TzJhw5AHI2BUOEjtZJzNgmRDMKZc4+p+yCdgj3mYcD7l1XeM6HTTcyRTxGDrDXggVIWN1O+UxU6ftHg94ag==} hasBin: true dependencies: '@api.global/typedserver': 3.0.51 - '@git.zone/tsbundle': 2.0.15 - '@git.zone/tsrun': 1.2.49(@types/node@22.7.9) + '@git.zone/tsbundle': 2.1.0 + '@git.zone/tsrun': 1.3.3 '@push.rocks/early': 4.0.4 '@push.rocks/lik': 6.1.0 '@push.rocks/smartchok': 1.0.34 @@ -1485,9 +1666,6 @@ packages: '@push.rocks/smartshell': 3.0.6 '@push.rocks/taskbuffer': 3.1.7 transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - supports-color dev: true @@ -1512,19 +1690,6 @@ packages: wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - /@jridgewell/sourcemap-codec@1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - /@leichtgewicht/ip-codec@2.0.5: resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} @@ -1720,7 +1885,7 @@ packages: '@types/symbol-tree': 3.2.5 symbol-tree: 3.2.4 - /@push.rocks/mongodump@1.0.8(@aws-sdk/client-sso-oidc@3.677.0): + /@push.rocks/mongodump@1.0.8(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-oDufyjNBg8I50OaJvbHhc0RnRpJQ544dr9her0G6sA8JmI3hD2/amTdcPLVIX1kzYf5GsTUKeWuRaZgdNqz3ew==} dependencies: '@pushrocks/lik': 6.0.2 @@ -1729,7 +1894,7 @@ packages: '@pushrocks/smartpath': 5.0.5 '@pushrocks/smartpromise': 3.1.10 '@tsclass/tsclass': 4.1.2 - mongodb: 4.17.2(@aws-sdk/client-sso-oidc@3.677.0) + mongodb: 4.17.2(@aws-sdk/client-sso-oidc@3.679.0) transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt @@ -1767,12 +1932,12 @@ packages: '@push.rocks/smartlog': 3.0.7 '@push.rocks/smartpath': 5.0.18 - /@push.rocks/smartacme@5.0.0(@aws-sdk/client-sso-oidc@3.677.0): + /@push.rocks/smartacme@5.0.0(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-/7zcwlFZN2Q+2iqQiZ4h72G9cSpW5ebIkGxup6wiTyutP4oUGTAI+TQF+XssSaWsJhXSLL30I3AXX6ZmI0rTdg==} dependencies: '@api.global/typedserver': 3.0.51 '@push.rocks/lik': 6.1.0 - '@push.rocks/smartdata': 5.2.10(@aws-sdk/client-sso-oidc@3.677.0) + '@push.rocks/smartdata': 5.2.10(@aws-sdk/client-sso-oidc@3.679.0) '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdns': 5.0.4 '@push.rocks/smartlog': 3.0.7 @@ -1861,7 +2026,7 @@ packages: /@push.rocks/smartbucket@3.0.23: resolution: {integrity: sha512-Ad+pcO0fXTptgaaUHA4X2jfU1qEztNQD6nzRXWpnPtT2WtaO4obSG16nEs1KiuY8uc4LvH+X5SWT31okHU7IVA==} dependencies: - '@aws-sdk/client-s3': 3.677.0 + '@aws-sdk/client-s3': 3.679.0 '@push.rocks/smartmime': 2.0.2 '@push.rocks/smartpath': 5.0.18 '@push.rocks/smartpromise': 4.0.4 @@ -1924,13 +2089,13 @@ packages: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - /@push.rocks/smartdata@5.2.10(@aws-sdk/client-sso-oidc@3.677.0): + /@push.rocks/smartdata@5.2.10(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-ZknoguU4O6NwPUMHEyVANHzbRYqHV05iYa3fV/ISKP+JJZQsZzm8qgFWpfRMeN3ljzqvdo6hy+RdU5g29kgZKg==} dependencies: '@push.rocks/lik': 6.1.0 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartlog': 3.0.7 - '@push.rocks/smartmongo': 2.0.10(@aws-sdk/client-sso-oidc@3.677.0) + '@push.rocks/smartmongo': 2.0.10(@aws-sdk/client-sso-oidc@3.679.0) '@push.rocks/smartpromise': 4.0.4 '@push.rocks/smartrx': 3.0.7 '@push.rocks/smartstring': 4.0.15 @@ -2144,14 +2309,14 @@ packages: file-type: 19.6.0 mime: 4.0.4 - /@push.rocks/smartmongo@2.0.10(@aws-sdk/client-sso-oidc@3.677.0): + /@push.rocks/smartmongo@2.0.10(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-K6jereWHHuEoTIlDDC3zum8DZYHzB74LCXx85+RSeKa8aeP9XYvGEbuIAr/e1MuX4WGZeHt6w2458dgyDW4w1w==} dependencies: - '@push.rocks/mongodump': 1.0.8(@aws-sdk/client-sso-oidc@3.677.0) - '@push.rocks/smartdata': 5.2.10(@aws-sdk/client-sso-oidc@3.677.0) + '@push.rocks/mongodump': 1.0.8(@aws-sdk/client-sso-oidc@3.679.0) + '@push.rocks/smartdata': 5.2.10(@aws-sdk/client-sso-oidc@3.679.0) '@push.rocks/smartpath': 5.0.18 '@push.rocks/smartpromise': 4.0.4 - mongodb-memory-server: 8.16.1(@aws-sdk/client-sso-oidc@3.677.0) + mongodb-memory-server: 8.16.1(@aws-sdk/client-sso-oidc@3.679.0) transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - '@aws-sdk/credential-providers' @@ -2791,14 +2956,6 @@ packages: /@sec-ant/readable-stream@0.4.1: resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - /@serve.zone/interfaces@1.1.2: - resolution: {integrity: sha512-ajHArBX7iJcUPYjYoO1rx78Mz5IzHIKzxt34kWKk5fSDrOkAoNwk0P/zpm0JZ6ClQy7/maOHTiSsNpdbBNvhQg==} - dependencies: - '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/smartlog-interfaces': 3.0.2 - '@tsclass/tsclass': 4.1.2 - dev: false - /@sindresorhus/is@5.6.0: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} @@ -3324,22 +3481,10 @@ packages: dependencies: type-fest: 4.26.1 - /@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==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/babel__code-frame@7.0.6: @@ -3350,7 +3495,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/buffer-json@2.0.3: resolution: {integrity: sha512-ItD4UfF3Q5jA+PEV6ZUWEHvlWaXJbd0rpuBKOIrEebM053FHaJddKsgUf0vy7nLSTs44nqFj3Mh8J3TiT0xv4g==} @@ -3372,21 +3517,21 @@ packages: /@types/clean-css@4.2.11: resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 source-map: 0.6.1 dev: true /@types/co-body@6.1.3: resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 '@types/qs': 6.9.16 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/content-disposition@0.5.8: resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} @@ -3405,13 +3550,13 @@ packages: '@types/connect': 3.4.38 '@types/express': 5.0.0 '@types/keygrip': 1.0.6 - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/debounce@1.2.4: resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} @@ -3428,15 +3573,15 @@ packages: /@types/express-serve-static-core@4.19.6: resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - /@types/express-serve-static-core@5.0.0: - resolution: {integrity: sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==} + /@types/express-serve-static-core@5.0.1: + resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3454,7 +3599,7 @@ packages: resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 5.0.0 + '@types/express-serve-static-core': 5.0.1 '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 dev: true @@ -3469,37 +3614,37 @@ packages: /@types/from2@2.3.5: resolution: {integrity: sha512-giavnjf3kNlJnE+HpZA1CQ3UKHxgehzsTuIMGda8pGMbOiLYGVNADEskey44OZcADHm/HOoBany8IV+0x28XFw==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/fs-extra@11.0.4: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/fs-extra@9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: false /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: false /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/gunzip-maybe@1.4.2: resolution: {integrity: sha512-2uqXZg1jTCKE1Pjbab8qb74+f2+i9h/jz8rQ+jRR+zaNJF75zWwrpbX8/TjF4m56m3KFOg9umHdCJ074KwiVxg==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/hast@3.0.4: @@ -3515,8 +3660,8 @@ packages: '@types/uglify-js': 3.17.5 dev: true - /@types/http-assert@1.5.5: - resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==} + /@types/http-assert@1.5.6: + resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} dev: true /@types/http-cache-semantics@4.0.4: @@ -3550,12 +3695,12 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/jsonwebtoken@9.0.7: resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: false /@types/keygrip@1.0.6: @@ -3574,11 +3719,11 @@ packages: '@types/accepts': 1.3.7 '@types/content-disposition': 0.5.8 '@types/cookies': 0.9.0 - '@types/http-assert': 1.5.5 + '@types/http-assert': 1.5.6 '@types/http-errors': 2.0.4 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/mdast@4.0.4: @@ -3611,10 +3756,10 @@ packages: /@types/node-forge@1.3.11: resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 - /@types/node@22.7.9: - resolution: {integrity: sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==} + /@types/node@22.8.1: + resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==} dependencies: undici-types: 6.19.8 @@ -3645,13 +3790,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/serve-static@1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.7.9 + '@types/node': 22.8.1 '@types/send': 0.17.4 /@types/sinon-chai@3.2.12: @@ -3677,19 +3822,19 @@ packages: /@types/tar-stream@2.2.3: resolution: {integrity: sha512-if3mugZfjVkXOMZdFjIHySxY13r6GXPpyOlsDmLffvyI7tLz9wXE8BFjNivXsvUeyJ1KNlOpfLnag+ISmxgxPw==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/tar-stream@3.1.3: resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: false /@types/through2@2.0.41: resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 /@types/trusted-types@2.0.7: resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -3722,7 +3867,7 @@ packages: /@types/whatwg-url@8.2.2: resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 '@types/webidl-conversions': 7.0.3 dev: false @@ -3736,20 +3881,20 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/ws@8.5.12: resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 dev: true optional: true @@ -3775,7 +3920,7 @@ packages: es-module-lexer: 1.5.4 get-stream: 6.0.1 is-stream: 2.0.1 - isbinaryfile: 5.0.3 + isbinaryfile: 5.0.4 koa: 2.15.3 koa-etag: 4.0.0 koa-send: 5.0.1 @@ -3815,7 +3960,7 @@ packages: resolution: {integrity: sha512-84E1025aUSjvZU1j17eCTwV7m5Zg3cZHErV3+CaJM9JPCesZwLraIa0ONIQ9w4KLgcDgJFw9UnJ0LbFf42h6tg==} engines: {node: '>=18.0.0'} dependencies: - '@babel/code-frame': 7.25.9 + '@babel/code-frame': 7.26.0 '@types/babel__code-frame': 7.0.6 '@types/co-body': 6.1.3 '@types/convert-source-map': 2.0.3 @@ -3887,17 +4032,6 @@ packages: - supports-color dev: false - /acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - dependencies: - acorn: 8.13.0 - - /acorn@8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} - engines: {node: '>=0.4.0'} - hasBin: true - /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3938,13 +4072,6 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -3983,9 +4110,6 @@ packages: dev: false optional: true - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -4035,8 +4159,8 @@ packages: possible-typed-array-names: 1.0.0 dev: true - /axe-core@4.10.1: - resolution: {integrity: sha512-qPC9o+kD8Tir0lzNGLeghbOrWMr3ZJpaRlCIb6Uobt/7N4FiEDvqUMnxzCHRHmg8vOg14kr5gVNyScRmbMaJ9g==} + /axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} dev: true @@ -4262,16 +4386,7 @@ packages: /chai-a11y-axe@1.5.0: resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==} dependencies: - axe-core: 4.10.1 - dev: true - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + axe-core: 4.10.2 dev: true /character-entities-html4@2.1.0: @@ -4343,22 +4458,12 @@ packages: engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true - /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -4445,9 +4550,6 @@ packages: object-assign: 4.1.1 vary: 1.1.2 - /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==} @@ -4648,10 +4750,6 @@ packages: resolution: {integrity: sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==} dev: true - /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'} @@ -4738,7 +4836,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.7.9 + '@types/node': 22.8.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -4776,45 +4874,72 @@ packages: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} dev: true - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} + /esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} hasBin: true requiresBuild: true 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 + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + /esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 dev: 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'} - dev: true - /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -5133,6 +5258,13 @@ packages: /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] + requiresBuild: true + optional: true + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -5186,6 +5318,11 @@ packages: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 + /get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + dependencies: + resolve-pkg-maps: 1.0.0 + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -5286,11 +5423,6 @@ packages: webidl-conversions: 7.0.0 whatwg-mimetype: 3.0.0 - /has-flag@3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} - engines: {node: '>=4'} - dev: true - /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -5328,8 +5460,8 @@ packages: dependencies: function-bind: 1.1.2 - /hast-util-sanitize@5.0.1: - resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} + /hast-util-sanitize@5.0.2: + resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} dependencies: '@types/hast': 3.0.4 '@ungap/structured-clone': 1.2.0 @@ -5657,8 +5789,8 @@ packages: /isarray@1.0.0: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} - /isbinaryfile@5.0.3: - resolution: {integrity: sha512-VR4gNjFaDP8csJQvzInG20JvBj8MaHYLxNOMXysxRbGM7tcsHZwCjhch3FubFtZBkuDbN55i4dUukGeIrzF+6g==} + /isbinaryfile@5.0.4: + resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} engines: {node: '>= 18.0.0'} dev: true @@ -6053,8 +6185,8 @@ packages: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - /mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + /mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -6077,7 +6209,7 @@ packages: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -6097,7 +6229,7 @@ packages: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -6107,7 +6239,7 @@ packages: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -6118,7 +6250,7 @@ packages: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -6128,7 +6260,7 @@ packages: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -6136,7 +6268,7 @@ packages: /mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-gfm-autolink-literal: 2.0.1 mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -6568,7 +6700,7 @@ packages: whatwg-url: 13.0.0 dev: false - /mongodb-memory-server-core@8.16.1(@aws-sdk/client-sso-oidc@3.677.0): + /mongodb-memory-server-core@8.16.1(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-skRGr7vzVIyefKm/YTn73sWI/7ghIb+gBxYNt42kGO7zeOfy+3S2Xg3kHYLkBz1IrOmTyV2HpFVzbZ1HF8grsQ==} engines: {node: '>=12.22.0'} dependencies: @@ -6580,7 +6712,7 @@ packages: get-port: 5.1.1 https-proxy-agent: 5.0.1 md5-file: 5.0.0 - mongodb: 4.17.2(@aws-sdk/client-sso-oidc@3.677.0) + mongodb: 4.17.2(@aws-sdk/client-sso-oidc@3.679.0) new-find-package-json: 2.0.0 semver: 7.6.3 tar-stream: 2.2.0 @@ -6593,12 +6725,12 @@ packages: - supports-color dev: false - /mongodb-memory-server@8.16.1(@aws-sdk/client-sso-oidc@3.677.0): + /mongodb-memory-server@8.16.1(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-Zje3i+xKN+nxALkOOraDfIvc9X8mNy979IvJdjUghvf5PbwvX5ZPr5gUtCcmzz2VRj97WsZbdUSkxny+GXZTIA==} engines: {node: '>=12.22.0'} requiresBuild: true dependencies: - mongodb-memory-server-core: 8.16.1(@aws-sdk/client-sso-oidc@3.677.0) + mongodb-memory-server-core: 8.16.1(@aws-sdk/client-sso-oidc@3.679.0) tslib: 2.8.0 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' @@ -6606,7 +6738,7 @@ packages: - supports-color dev: false - /mongodb@4.17.2(@aws-sdk/client-sso-oidc@3.677.0): + /mongodb@4.17.2(@aws-sdk/client-sso-oidc@3.679.0): resolution: {integrity: sha512-mLV7SEiov2LHleRJPMPrK2PMyhXFZt2UQLC4VD4pnth3jMjYKHhtqfwwkkvS/NXuo/Fp3vbhaNcXrIDaLRb9Tg==} engines: {node: '>=12.9.0'} dependencies: @@ -6614,7 +6746,7 @@ packages: mongodb-connection-string-url: 2.6.0 socks: 2.8.3 optionalDependencies: - '@aws-sdk/credential-providers': 3.677.0(@aws-sdk/client-sso-oidc@3.677.0) + '@aws-sdk/credential-providers': 3.679.0(@aws-sdk/client-sso-oidc@3.679.0) '@mongodb-js/saslprep': 1.1.9 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' @@ -7256,7 +7388,7 @@ packages: resolution: {integrity: sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==} dependencies: '@types/mdast': 4.0.4 - hast-util-sanitize: 5.0.1 + hast-util-sanitize: 5.0.2 hast-util-to-html: 9.0.3 mdast-util-to-hast: 13.2.0 unified: 11.0.5 @@ -7265,7 +7397,7 @@ packages: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 micromark-util-types: 2.0.0 unified: 11.0.5 transitivePeerDependencies: @@ -7293,6 +7425,9 @@ packages: path-is-absolute: 1.0.1 dev: true + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + /responselike@3.0.0: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} @@ -7671,13 +7806,6 @@ packages: /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'} - dependencies: - has-flag: 3.0.0 - dev: true - /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -7871,36 +7999,6 @@ packages: /trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - /ts-node@10.9.2(@types/node@22.7.9)(typescript@5.5.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 - 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': 22.7.9 - acorn: 8.13.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true @@ -7913,6 +8011,16 @@ packages: engines: {node: '>=0.6.x'} dev: true + /tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + /turndown-plugin-gfm@1.0.2: resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} @@ -7941,16 +8049,17 @@ packages: media-typer: 0.3.0 mime-types: 2.1.35 - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /typescript@5.5.2: resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} hasBin: true + dev: true + + /typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true /uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} @@ -8054,9 +8163,6 @@ packages: 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'} @@ -8310,9 +8416,5 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index eca0236..6e27ccc 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/cloudly', - version: '1.2.3', + version: '1.2.4', description: 'A comprehensive multi-cloud manager leveraging Docker Swarmkit to orchestrate containerized applications across various cloud services and provide robust configuration and API integration.' } diff --git a/ts/classes.cloudly.ts b/ts/classes.cloudly.ts index 62c8721..c6f9bea 100644 --- a/ts/classes.cloudly.ts +++ b/ts/classes.cloudly.ts @@ -17,7 +17,7 @@ import { MongodbConnector } from './connector.mongodb/connector.js'; import { CloudlyCoreflowManager } from './manager.coreflow/coreflowmanager.js'; import { ClusterManager } from './manager.cluster/classes.clustermanager.js'; import { CloudlyTaskmanager } from './manager.task/taskmanager.js'; -import { CloudlySecretManager } from './manager.secret/classes.secretmanager.js' +import { CloudlySecretManager } from './manager.secret/classes.secretmanager.js'; import { CloudlyServerManager } from './manager.server/classes.servermanager.js'; import { ExternalApiManager } from './manager.status/statusmanager.js'; import { ImageManager } from './manager.image/classes.imagemanager.js'; diff --git a/ts/classes.config.ts b/ts/classes.config.ts index c6050b5..825984d 100644 --- a/ts/classes.config.ts +++ b/ts/classes.config.ts @@ -9,50 +9,53 @@ import type { Cloudly } from './classes.cloudly.js'; export class CloudlyConfig { public cloudlyRef: Cloudly; public appData: plugins.npmextra.AppData; - public data: plugins.servezoneInterfaces.data.ICloudlyConfig - + public data: plugins.servezoneInterfaces.data.ICloudlyConfig; constructor(cloudlyRefArg: Cloudly) { this.cloudlyRef = cloudlyRefArg; } public async init() { - this.appData = await plugins.npmextra.AppData.createAndInit({ - envMapping: { - cfToken: 'CF_TOKEN', - environment: 'SERVEZONE_ENVIRONMENT' as 'production' | 'integration', - letsEncryptEmail: 'hard:domains@lossless.org', - hetznerToken: 'HETZNER_API_TOKEN', - letsEncryptPrivateKey: null, - publicUrl: 'SERVEZONE_URL', - publicPort: 'SERVEZONE_PORT', - mongoDescriptor: { - mongoDbUrl: 'MONGODB_URL', - mongoDbName: 'MONGODB_DATABASE', - mongoDbUser: 'MONGODB_USER', - mongoDbPass: 'MONGODB_PASSWORD', + this.appData = + await plugins.npmextra.AppData.createAndInit( + { + envMapping: { + cfToken: 'CF_TOKEN', + environment: 'SERVEZONE_ENVIRONMENT' as 'production' | 'integration', + letsEncryptEmail: 'hard:domains@lossless.org', + hetznerToken: 'HETZNER_API_TOKEN', + letsEncryptPrivateKey: null, + publicUrl: 'SERVEZONE_URL', + publicPort: 'SERVEZONE_PORT', + mongoDescriptor: { + mongoDbUrl: 'MONGODB_URL', + mongoDbName: 'MONGODB_DATABASE', + mongoDbUser: 'MONGODB_USER', + mongoDbPass: 'MONGODB_PASSWORD', + }, + s3Descriptor: { + endpoint: 'S3_ENDPOINT', + accessKey: 'S3_ACCESSKEY', + accessSecret: 'S3_SECRETKEY', + port: 'S3_PORT', // Note: This will remain as a string. Ensure to parse it to an integer where it's used. + useSsl: true, + }, + sslMode: + 'SERVEZONE_SSLMODE' as plugins.servezoneInterfaces.data.ICloudlyConfig['sslMode'], + servezoneAdminaccount: 'SERVEZONE_ADMINACCOUNT', + }, + requiredKeys: [ + 'cfToken', + 'hetznerToken', + 'letsEncryptEmail', + 'publicUrl', + 'publicPort', + 'sslMode', + 'environment', + 'mongoDescriptor', + ], }, - s3Descriptor: { - endpoint: 'S3_ENDPOINT', - accessKey: 'S3_ACCESSKEY', - accessSecret: 'S3_SECRETKEY', - port: 'S3_PORT', // Note: This will remain as a string. Ensure to parse it to an integer where it's used. - useSsl: true, - }, - sslMode: 'SERVEZONE_SSLMODE' as plugins.servezoneInterfaces.data.ICloudlyConfig['sslMode'], - servezoneAdminaccount: 'SERVEZONE_ADMINACCOUNT', - }, - requiredKeys: [ - 'cfToken', - 'hetznerToken', - 'letsEncryptEmail', - 'publicUrl', - 'publicPort', - 'sslMode', - 'environment', - 'mongoDescriptor', - ], - }); + ); const kvStore = await this.appData.getKvStore(); diff --git a/ts/classes.server.ts b/ts/classes.server.ts index 6beb15e..e049978 100644 --- a/ts/classes.server.ts +++ b/ts/classes.server.ts @@ -45,16 +45,16 @@ export class CloudlyServer { logger.log('info', `Using letsencrypt for ssl mode. Trying to obtain a certificate...`); logger.log('info', `This might take 10 minutes...`); sslCert = await this.cloudlyRef.letsencryptConnector.getCertificateForDomain( - this.cloudlyRef.config.data.publicUrl + this.cloudlyRef.config.data.publicUrl, ); logger.log( 'success', - `Successfully obtained certificate for cloudly domain ${this.cloudlyRef.config.data.publicUrl}` + `Successfully obtained certificate for cloudly domain ${this.cloudlyRef.config.data.publicUrl}`, ); } else if (this.cloudlyRef.config.data.sslMode === 'external') { logger.log( 'info', - `Using external certificate for ssl mode, meaning cloudly is not in charge of ssl termination.` + `Using external certificate for ssl mode, meaning cloudly is not in charge of ssl termination.`, ); } @@ -95,7 +95,7 @@ export class CloudlyServer { this.typedServer.typedrouter.addTypedRouter(this.typedrouter); this.typedServer.server.addRoute( '/curlfresh/:scriptname', - this.cloudlyRef.serverManager.curlfreshInstance.handler + this.cloudlyRef.serverManager.curlfreshInstance.handler, ); await this.typedServer.start(); } diff --git a/ts/connector.letsencrypt/connector.ts b/ts/connector.letsencrypt/connector.ts index 3714537..fb03ea5 100644 --- a/ts/connector.letsencrypt/connector.ts +++ b/ts/connector.letsencrypt/connector.ts @@ -24,19 +24,19 @@ export class LetsencryptConnector { environment: this.cloudlyRef.config.data.environment, setChallenge: async (dnsChallenge) => { await this.cloudlyRef.cloudflareConnector.cloudflare.convenience.acmeSetDnsChallenge( - dnsChallenge + dnsChallenge, ); }, removeChallenge: async (dnsChallenge) => { await this.cloudlyRef.cloudflareConnector.cloudflare.convenience.acmeRemoveDnsChallenge( - dnsChallenge + dnsChallenge, ); }, mongoDescriptor: this.cloudlyRef.config.data.mongoDescriptor, }); - await this.smartacme.start().catch(err => { + await this.smartacme.start().catch((err) => { console.error('error in init', err); - console.log(`trying again in a few minutes`) + console.log(`trying again in a few minutes`); }); } diff --git a/ts/connector.mongodb/connector.ts b/ts/connector.mongodb/connector.ts index 0cfe999..0988fde 100644 --- a/ts/connector.mongodb/connector.ts +++ b/ts/connector.mongodb/connector.ts @@ -11,7 +11,9 @@ export class MongodbConnector { } public async init() { - this.smartdataDb = new plugins.smartdata.SmartdataDb(this.cloudlyRef.config.data.mongoDescriptor); + this.smartdataDb = new plugins.smartdata.SmartdataDb( + this.cloudlyRef.config.data.mongoDescriptor, + ); await this.smartdataDb.init(); } diff --git a/ts/index.ts b/ts/index.ts index a493b2b..15d802c 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -7,7 +7,6 @@ import { logger } from './logger.js'; const cloudlyQenv = new plugins.qenv.Qenv(paths.packageDir, paths.nogitDir, true); early.stop(); - /** * starts the cloudly instance */ @@ -17,7 +16,7 @@ const runCli = async () => { logger.log( 'info', - `running in environment ${await cloudlyQenv.getEnvVarOnDemand('SERVEZONE_ENVIRONMENT')}` + `running in environment ${await cloudlyQenv.getEnvVarOnDemand('SERVEZONE_ENVIRONMENT')}`, ); await cloudlyInstance.start(); @@ -27,4 +26,4 @@ const runCli = async () => { export { runCli, Cloudly }; type ICloudlyConfig = plugins.servezoneInterfaces.data.ICloudlyConfig; -export { type ICloudlyConfig } +export { type ICloudlyConfig }; diff --git a/ts/logger.ts b/ts/logger.ts index 53379f7..bc950c7 100644 --- a/ts/logger.ts +++ b/ts/logger.ts @@ -9,8 +9,8 @@ export const logger = new plugins.smartlog.Smartlog({ zone: null, companyunit: null, containerName: null, - } + }, }); logger.enableConsole({ - captureAll: false + captureAll: false, }); diff --git a/ts/manager.auth/classes.authmanager.ts b/ts/manager.auth/classes.authmanager.ts index 3479fbd..afbc184 100644 --- a/ts/manager.auth/classes.authmanager.ts +++ b/ts/manager.auth/classes.authmanager.ts @@ -5,7 +5,6 @@ import { logger } from '../logger.js'; import { Authorization } from './classes.authorization.js'; import { User } from './classes.user.js'; - export interface IJwtData { userId: string; status: 'loggedIn' | 'loggedOut'; @@ -13,7 +12,7 @@ export interface IJwtData { } export class CloudlyAuthManager { - cloudlyRef: Cloudly + cloudlyRef: Cloudly; public get db() { return this.cloudlyRef.mongodbConnector.smartdataDb; } @@ -38,7 +37,9 @@ export class CloudlyAuthManager { await this.smartjwtInstance.init(); const kvStore = await this.cloudlyRef.config.appData.getKvStore(); - const existingJwtKeys: plugins.tsclass.network.IJwtKeypair = (await kvStore.readKey('jwtKeypair')) as plugins.tsclass.network.IJwtKeypair; + const existingJwtKeys: plugins.tsclass.network.IJwtKeypair = (await kvStore.readKey( + 'jwtKeypair', + )) as plugins.tsclass.network.IJwtKeypair; if (!existingJwtKeys) { await this.smartjwtInstance.createNewKeyPair(); @@ -76,40 +77,61 @@ export class CloudlyAuthManager { type: user.data.type, }, }; - } - ) + }, + ), ); } - public async stop () {} + public async stop() {} - public validIdentityGuard = new plugins.smartguard.Guard<{identity: plugins.servezoneInterfaces.data.IIdentity}>(async (dataArg) => { - const jwt = dataArg.identity.jwt; - const jwtData: IJwtData = await this.smartjwtInstance.verifyJWTAndGetData(jwt); - const expired = jwtData.expiresAt < Date.now(); - plugins.smartexpect.expect(jwtData.status).setFailMessage('user not logged in').toEqual('loggedIn'); - plugins.smartexpect.expect(expired).setFailMessage(`jwt expired`).toBeFalse(); - plugins.smartexpect.expect(dataArg.identity.expiresAt).setFailMessage(`expiresAt >>identity valid until:${dataArg.identity.expiresAt}, but jwt says: ${jwtData.expiresAt}<< has been tampered with`).toEqual(jwtData.expiresAt); - plugins.smartexpect.expect(dataArg.identity.userId).setFailMessage('userId has been tampered with').toEqual(jwtData.userId); - if (expired) { - throw new Error('identity is expired'); - } - return true; - }, { - failedHint: 'identity is not valid.', - name: 'validIdentityGuard', - }); + public validIdentityGuard = new plugins.smartguard.Guard<{ + identity: plugins.servezoneInterfaces.data.IIdentity; + }>( + async (dataArg) => { + const jwt = dataArg.identity.jwt; + const jwtData: IJwtData = await this.smartjwtInstance.verifyJWTAndGetData(jwt); + const expired = jwtData.expiresAt < Date.now(); + plugins.smartexpect + .expect(jwtData.status) + .setFailMessage('user not logged in') + .toEqual('loggedIn'); + plugins.smartexpect.expect(expired).setFailMessage(`jwt expired`).toBeFalse(); + plugins.smartexpect + .expect(dataArg.identity.expiresAt) + .setFailMessage( + `expiresAt >>identity valid until:${dataArg.identity.expiresAt}, but jwt says: ${jwtData.expiresAt}<< has been tampered with`, + ) + .toEqual(jwtData.expiresAt); + plugins.smartexpect + .expect(dataArg.identity.userId) + .setFailMessage('userId has been tampered with') + .toEqual(jwtData.userId); + if (expired) { + throw new Error('identity is expired'); + } + return true; + }, + { + failedHint: 'identity is not valid.', + name: 'validIdentityGuard', + }, + ); - public adminIdentityGuard = new plugins.smartguard.Guard<{identity: plugins.servezoneInterfaces.data.IIdentity}>(async (dataArg) => { - await plugins.smartguard.passGuardsOrReject(dataArg, [this.validIdentityGuard]); - const jwt = dataArg.identity.jwt; - const jwtData: IJwtData = await this.smartjwtInstance.verifyJWTAndGetData(jwt); - const user = await this.CUser.getInstance({id: jwtData.userId}); - const isAdminBool = user.data.role === 'admin'; - console.log(`user is admin: ${isAdminBool}`); - return isAdminBool; - }, { - failedHint: 'user is not admin.', - name: 'adminIdentityGuard', - }) -} \ No newline at end of file + public adminIdentityGuard = new plugins.smartguard.Guard<{ + identity: plugins.servezoneInterfaces.data.IIdentity; + }>( + async (dataArg) => { + await plugins.smartguard.passGuardsOrReject(dataArg, [this.validIdentityGuard]); + const jwt = dataArg.identity.jwt; + const jwtData: IJwtData = await this.smartjwtInstance.verifyJWTAndGetData(jwt); + const user = await this.CUser.getInstance({ id: jwtData.userId }); + const isAdminBool = user.data.role === 'admin'; + console.log(`user is admin: ${isAdminBool}`); + return isAdminBool; + }, + { + failedHint: 'user is not admin.', + name: 'adminIdentityGuard', + }, + ); +} diff --git a/ts/manager.auth/classes.authorization.ts b/ts/manager.auth/classes.authorization.ts index 8347989..7c16386 100644 --- a/ts/manager.auth/classes.authorization.ts +++ b/ts/manager.auth/classes.authorization.ts @@ -1,6 +1,4 @@ import * as plugins from '../plugins.js'; @plugins.smartdata.managed() -export class Authorization extends plugins.smartdata.SmartDataDbDoc { - -} \ No newline at end of file +export class Authorization extends plugins.smartdata.SmartDataDbDoc {} diff --git a/ts/manager.auth/classes.user.ts b/ts/manager.auth/classes.user.ts index 12a420a..5b1ee3a 100644 --- a/ts/manager.auth/classes.user.ts +++ b/ts/manager.auth/classes.user.ts @@ -14,11 +14,13 @@ export class User extends plugins.smartdata.SmartDataDbDoc< user.data = { type: 'machine', username: userNameArg, - tokens: [{ - token: 'machineUser', - expiresAt: Date.now() + 3600 * 1000 * 24 * 365, - assignedRoles: ['admin'], - }], + tokens: [ + { + token: 'machineUser', + expiresAt: Date.now() + 3600 * 1000 * 24 * 365, + assignedRoles: ['admin'], + }, + ], role: 'api', }; await user.save(); diff --git a/ts/manager.cert/cert.ts b/ts/manager.cert/cert.ts index 789f6d9..43e904a 100644 --- a/ts/manager.cert/cert.ts +++ b/ts/manager.cert/cert.ts @@ -1,5 +1,3 @@ import * as plugins from '../plugins.js'; -export class Cert extends plugins.smartdata.SmartDataDbDoc { - -} \ No newline at end of file +export class Cert extends plugins.smartdata.SmartDataDbDoc {} diff --git a/ts/manager.cert/certmanager.ts b/ts/manager.cert/certmanager.ts index 183483b..9ebd919 100644 --- a/ts/manager.cert/certmanager.ts +++ b/ts/manager.cert/certmanager.ts @@ -11,4 +11,4 @@ export class CertManager { constructor(cloudly: Cloudly) { this.cloudlyRef = cloudly; } -} \ No newline at end of file +} diff --git a/ts/manager.cluster/classes.cluster.ts b/ts/manager.cluster/classes.cluster.ts index 34e49b4..d9ed3b6 100644 --- a/ts/manager.cluster/classes.cluster.ts +++ b/ts/manager.cluster/classes.cluster.ts @@ -4,11 +4,12 @@ import * as plugins from '../plugins.js'; * cluster defines a swarmkit cluster */ @plugins.smartdata.managed() -export class Cluster extends plugins.smartdata.SmartDataDbDoc { +export class Cluster extends plugins.smartdata.SmartDataDbDoc< + Cluster, + plugins.servezoneInterfaces.data.ICluster +> { // STATIC - public static async fromConfigObject( - configObjectArg: plugins.servezoneInterfaces.data.ICluster - ) { + public static async fromConfigObject(configObjectArg: plugins.servezoneInterfaces.data.ICluster) { const newCluster = new Cluster(); Object.assign(newCluster, configObjectArg); return newCluster; diff --git a/ts/manager.cluster/classes.clustermanager.ts b/ts/manager.cluster/classes.clustermanager.ts index c78426a..5df5ed5 100644 --- a/ts/manager.cluster/classes.clustermanager.ts +++ b/ts/manager.cluster/classes.clustermanager.ts @@ -40,7 +40,7 @@ export class ClusterManager { return { clusterConfig: await cluster.createSavableObject(), }; - }) + }), ); this.typedrouter.addTypedHandler( @@ -49,10 +49,10 @@ export class ClusterManager { const clusters = await this.getAllClusters(); return { clusters: await Promise.all( - clusters.map((clusterArg) => clusterArg.createSavableObject()) + clusters.map((clusterArg) => clusterArg.createSavableObject()), ), }; - }) + }), ); // delete cluster @@ -63,7 +63,7 @@ export class ClusterManager { return { success: true, }; - }) + }), ); } diff --git a/ts/manager.coreflow/coreflowmanager.ts b/ts/manager.coreflow/coreflowmanager.ts index 8f7f912..bbfccf1 100644 --- a/ts/manager.coreflow/coreflowmanager.ts +++ b/ts/manager.coreflow/coreflowmanager.ts @@ -18,17 +18,23 @@ export class CloudlyCoreflowManager { new plugins.typedrequest.TypedHandler('getIdentityByToken', async (requestData) => { const user = await this.cloudlyRef.authManager.CUser.getInstance({ data: { - tokens: [{ - token: requestData.token, - }] // find the proper user here. - } as any + tokens: [ + { + token: requestData.token, + }, + ], // find the proper user here. + } as any, }); if (!user) { - throw new plugins.typedrequest.TypedResponseError('The supplied token is not valid. No matching user found.'); + throw new plugins.typedrequest.TypedResponseError( + 'The supplied token is not valid. No matching user found.', + ); } if (user.data.type !== 'machine') { - throw new plugins.typedrequest.TypedResponseError('The supplied token is not valid. The user is not a machine.'); + throw new plugins.typedrequest.TypedResponseError( + 'The supplied token is not valid. The user is not a machine.', + ); } let cluster: Cluster; if (user.data.role === 'cluster') { @@ -42,18 +48,20 @@ export class CloudlyCoreflowManager { type: 'machine', // if someone authenticates by token, they are a machine, no matter what. userId: user.id, expiresAt: expiryTimestamp, - ...(cluster ? { - clusterId: cluster.id, - clusterName: cluster.data.name, - } : {}), + ...(cluster + ? { + clusterId: cluster.id, + clusterName: cluster.data.name, + } + : {}), jwt: await this.cloudlyRef.authManager.smartjwtInstance.createJWT({ status: 'loggedIn', userId: user.id, expiresAt: expiryTimestamp, - }) + }), }, }; - }) + }), ); // lets enable the getting of cluster configs @@ -64,17 +72,14 @@ export class CloudlyCoreflowManager { const identity = dataArg.identity; console.log('trying to get clusterConfigSet'); console.log(dataArg); - const cluster = - await this.cloudlyRef.clusterManager.getClusterBy_Identity( - identity - ); + const cluster = await this.cloudlyRef.clusterManager.getClusterBy_Identity(identity); console.log('got cluster config and sending it back to coreflow'); return { configData: await cluster.createSavableObject(), deploymentDirectives: [], }; - } - ) + }, + ), ); // lets enable getting of certificates @@ -84,14 +89,14 @@ export class CloudlyCoreflowManager { async (dataArg) => { console.log(`incoming API request for certificate ${dataArg.domainName}`); const cert = await this.cloudlyRef.letsencryptConnector.getCertificateForDomain( - dataArg.domainName + dataArg.domainName, ); console.log(`got certificate ready for reponse ${dataArg.domainName}`); return { certificate: await cert.createSavableObject(), }; - } - ) + }, + ), ); } } diff --git a/ts/manager.image/classes.image.ts b/ts/manager.image/classes.image.ts index 6179991..a246789 100644 --- a/ts/manager.image/classes.image.ts +++ b/ts/manager.image/classes.image.ts @@ -2,8 +2,14 @@ import * as plugins from '../plugins.js'; import type { ImageManager } from './classes.imagemanager.js'; @plugins.smartdata.managed() -export class Image extends plugins.smartdata.SmartDataDbDoc { - public static async create(imageDataArg: Partial) { +export class Image extends plugins.smartdata.SmartDataDbDoc< + Image, + plugins.servezoneInterfaces.data.IImage, + ImageManager +> { + public static async create( + imageDataArg: Partial, + ) { const image = new Image(); image.id = await this.getNewId(); console.log(imageDataArg); @@ -14,7 +20,7 @@ export class Image extends plugins.smartdata.SmartDataDbDoc( @@ -48,7 +48,7 @@ export class ImageManager { return { image: await image.createSavableObject(), }; - }) + }), ); this.typedrouter.addTypedHandler( @@ -61,8 +61,8 @@ export class ImageManager { }); await image.delete(); return {}; - } - ) + }, + ), ); this.typedrouter.addTypedHandler( @@ -75,11 +75,11 @@ export class ImageManager { images: await Promise.all( images.map((image) => { return image.createSavableObject(); - }) + }), ), }; - } - ) + }, + ), ); this.typedrouter.addTypedHandler( @@ -97,7 +97,7 @@ export class ImageManager { } const imageVersion = reqArg.versionString; console.log( - `got request to push image version ${imageVersion} for image ${refImage.data.name}` + `got request to push image version ${imageVersion} for image ${refImage.data.name}`, ); const imagePushStream = reqArg.imageStream; (async () => { @@ -111,13 +111,16 @@ export class ImageManager { }, }); imagePushStream.writeToWebstream(smartWebDuplex.writable); - await this.dockerImageStore.storeImage(refImage.id, plugins.smartstream.SmartDuplex.fromWebReadableStream(smartWebDuplex.readable)); + await this.dockerImageStore.storeImage( + refImage.id, + plugins.smartstream.SmartDuplex.fromWebReadableStream(smartWebDuplex.readable), + ); })(); return { allowed: true, }; - } - ) + }, + ), ); this.typedrouter.addTypedHandler( @@ -128,20 +131,20 @@ export class ImageManager { id: reqArg.imageId, }); const imageVersion = image.data.versions.find( - (version) => version.versionString === reqArg.versionString + (version) => version.versionString === reqArg.versionString, ); const readable = this.imageDir.fastGetStream( { path: await image.getStoragePath(reqArg.versionString), }, - 'webstream' + 'webstream', ); const imageVirtualStream = new plugins.typedrequest.VirtualStream(); return { imageStream: imageVirtualStream, }; - } - ) + }, + ), ); } @@ -151,7 +154,7 @@ export class ImageManager { await this.cloudlyRef.config.appData.waitForAndGetKey('s3Descriptor'); console.log(this.cloudlyRef.config.data.s3Descriptor); this.smartbucketInstance = new plugins.smartbucket.SmartBucket( - this.cloudlyRef.config.data.s3Descriptor + this.cloudlyRef.config.data.s3Descriptor, ); const bucket = await this.smartbucketInstance.getBucketByName('cloudly-test'); await bucket.fastPut({ path: 'images/00init', contents: 'init' }); diff --git a/ts/manager.log/logmanager.ts b/ts/manager.log/logmanager.ts index 83cec78..57151a8 100644 --- a/ts/manager.log/logmanager.ts +++ b/ts/manager.log/logmanager.ts @@ -12,4 +12,4 @@ export class LogManager { this.cloudlyRef = cloudlyRefArg; this.cloudlyRef.typedrouter.addTypedRouter(this.typedRouter); } -} \ No newline at end of file +} diff --git a/ts/manager.secret/classes.secretbundle.ts b/ts/manager.secret/classes.secretbundle.ts index 09b61f4..567faad 100644 --- a/ts/manager.secret/classes.secretbundle.ts +++ b/ts/manager.secret/classes.secretbundle.ts @@ -23,7 +23,7 @@ export class SecretBundle extends plugins.smartdata.SmartDataDbDoc< secretGroups.push( await SecretGroup.getInstance({ id: secretGroupId, - }) + }), ); } return secretGroups; diff --git a/ts/manager.secret/classes.secretmanager.ts b/ts/manager.secret/classes.secretmanager.ts index 19ffd65..386e7bf 100644 --- a/ts/manager.secret/classes.secretmanager.ts +++ b/ts/manager.secret/classes.secretmanager.ts @@ -40,23 +40,23 @@ export class CloudlySecretManager { 'adminGetConfigBundlesAndSecretGroups', async (dataArg, toolsArg) => { await toolsArg.passGuards([this.cloudlyRef.authManager.adminIdentityGuard], dataArg); - dataArg.identity.jwt + dataArg.identity.jwt; const secretBundles = await SecretBundle.getInstances({}); const secretGroups = await SecretGroup.getInstances({}); return { secretBundles: [ ...(await Promise.all( - secretBundles.map((configBundle) => configBundle.createSavableObject()) + secretBundles.map((configBundle) => configBundle.createSavableObject()), )), ], secretGroups: [ ...(await Promise.all( - secretGroups.map((secretGroup) => secretGroup.createSavableObject()) + secretGroups.map((secretGroup) => secretGroup.createSavableObject()), )), ], }; - } - ) + }, + ), ); this.typedrouter.addTypedHandler( @@ -72,8 +72,8 @@ export class CloudlySecretManager { return { ok: true, }; - } - ) + }, + ), ); this.typedrouter.addTypedHandler( @@ -96,8 +96,8 @@ export class CloudlySecretManager { return { ok: true, }; - } - ) + }, + ), ); // lets add typedrouter routes for accessing the configvailt from apps @@ -116,19 +116,19 @@ export class CloudlySecretManager { }, }); const authorization = await wantedBundle.getAuthorizationFromAuthKey( - dataArg.authorization + dataArg.authorization, ); return { envBundle: { configKeyValueObject: await wantedBundle.getKeyValueObjectForEnvironment( - authorization.environment + authorization.environment, ), environment: authorization.environment, timeSensitive: false, }, }; - } - ) + }, + ), ); } diff --git a/ts/manager.server/classes.curlfresh.ts b/ts/manager.server/classes.curlfresh.ts index 63b7a47..6ca7b3e 100644 --- a/ts/manager.server/classes.curlfresh.ts +++ b/ts/manager.server/classes.curlfresh.ts @@ -5,7 +5,7 @@ import type { CloudlyServerManager } from './classes.servermanager.js'; export class CurlFresh { public optionsArg = { npmRegistry: 'https://registry.npmjs.org', - } + }; public scripts = { 'setup.sh': `#!/bin/bash @@ -50,7 +50,7 @@ bash -c "spark installdaemon" public handler = new plugins.typedserver.servertools.Handler('ALL', async (req, res) => { logger.log('info', 'curlfresh handler called. a server might be coming online soon :)'); const scriptname = req.params.scriptname; - switch(scriptname) { + switch (scriptname) { case 'setup.sh': logger.log('info', 'sending setup.sh'); res.type('application/x-sh'); @@ -66,22 +66,25 @@ bash -c "spark installdaemon" this.serverManagerRef = serverManagerRefArg; } public async getServerUserData(): Promise { - const sslMode = await this.serverManagerRef.cloudlyRef.config.appData.waitForAndGetKey('sslMode'); + const sslMode = + await this.serverManagerRef.cloudlyRef.config.appData.waitForAndGetKey('sslMode'); let protocol: 'http' | 'https'; if (sslMode === 'none') { protocol = 'http'; } else { protocol = 'https'; } - - const domain = await this.serverManagerRef.cloudlyRef.config.appData.waitForAndGetKey('publicUrl'); - const port = await this.serverManagerRef.cloudlyRef.config.appData.waitForAndGetKey('publicPort'); - + + const domain = + await this.serverManagerRef.cloudlyRef.config.appData.waitForAndGetKey('publicUrl'); + const port = + await this.serverManagerRef.cloudlyRef.config.appData.waitForAndGetKey('publicPort'); + const serverUserData = `#cloud-config runcmd: - curl -o- ${protocol}://${domain}:${port}/curlfresh/setup.sh | sh - ` + `; console.log(serverUserData); return serverUserData; - }; + } } diff --git a/ts/manager.server/classes.server.ts b/ts/manager.server/classes.server.ts index 725ec25..2d5934b 100644 --- a/ts/manager.server/classes.server.ts +++ b/ts/manager.server/classes.server.ts @@ -4,10 +4,13 @@ import * as plugins from '../plugins.js'; * cluster defines a swarmkit cluster */ @plugins.smartdata.Manager() -export class Server extends plugins.smartdata.SmartDataDbDoc { +export class Server extends plugins.smartdata.SmartDataDbDoc< + Server, + plugins.servezoneInterfaces.data.IServer +> { // STATIC public static async createFromHetznerServer( - hetznerServerArg: plugins.hetznercloud.HetznerServer + hetznerServerArg: plugins.hetznercloud.HetznerServer, ) { const newServer = new Server(); newServer.id = plugins.smartunique.shortId(8); @@ -16,7 +19,7 @@ export class Server extends plugins.smartdata.SmartDataDbDoc { - +export class Service extends plugins.smartdata.SmartDataDbDoc< + Service, + plugins.servezoneInterfaces.data.IService, + ServiceManager +> { @plugins.smartdata.svDb() public id: string; @plugins.smartdata.svDb() public data: plugins.servezoneInterfaces.data.IService['data']; - - -} \ No newline at end of file +} diff --git a/ts/manager.service/classes.servicemanager.ts b/ts/manager.service/classes.servicemanager.ts index 11f1fe9..d52ca11 100644 --- a/ts/manager.service/classes.servicemanager.ts +++ b/ts/manager.service/classes.servicemanager.ts @@ -5,7 +5,7 @@ import { Service } from './classes.service.js'; export class ServiceManager { public typedrouter = new plugins.typedrequest.TypedRouter(); public cloudlyRef: Cloudly; - + get db() { return this.cloudlyRef.mongodbConnector.smartdataDb; } @@ -15,4 +15,4 @@ export class ServiceManager { constructor(cloudlyRef: Cloudly) { this.cloudlyRef = cloudlyRef; } -} \ No newline at end of file +} diff --git a/ts/manager.status/statusmanager.ts b/ts/manager.status/statusmanager.ts index e8e1098..066aa9b 100644 --- a/ts/manager.status/statusmanager.ts +++ b/ts/manager.status/statusmanager.ts @@ -16,7 +16,7 @@ export class ExternalApiManager { return { networkNodes, }; - }) + }), ); } } diff --git a/ts/paths.ts b/ts/paths.ts index 12e8708..dd0bc19 100644 --- a/ts/paths.ts +++ b/ts/paths.ts @@ -1,6 +1,9 @@ import * as plugins from './plugins.js'; -export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../'); +export const packageDir = plugins.path.join( + plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), + '../', +); export const nogitDir = plugins.path.join(packageDir, '.nogit/'); export const dockerImageStoreDir = plugins.path.join(nogitDir, './dockerimagestore/'); export const distServeDir = plugins.path.join(packageDir, './dist_serve'); diff --git a/ts_interfaces/00_commitinfo_data.ts b/ts_interfaces/00_commitinfo_data.ts new file mode 100644 index 0000000..a70d43f --- /dev/null +++ b/ts_interfaces/00_commitinfo_data.ts @@ -0,0 +1,8 @@ +/** + * autocreated commitinfo by @push.rocks/commitinfo + */ +export const commitinfo = { + name: '@serve.zone/interfaces', + version: '1.1.2', + description: 'interfaces for working with containers' +} diff --git a/ts_interfaces/data/cloudlyconfig.ts b/ts_interfaces/data/cloudlyconfig.ts new file mode 100644 index 0000000..c19f376 --- /dev/null +++ b/ts_interfaces/data/cloudlyconfig.ts @@ -0,0 +1,16 @@ +import * as plugins from '../plugins.js'; + +export interface ICloudlyConfig { + cfToken?: string; + hetznerToken?: string; + environment?: 'production' | 'integration'; + letsEncryptEmail?: string; + letsEncryptPrivateKey?: string; + jwtKeypair?: plugins.tsclass.network.IJwtKeypair; + mongoDescriptor?: plugins.tsclass.database.IMongoDescriptor; + s3Descriptor?: plugins.tsclass.storage.IS3Descriptor; + publicUrl?: string; + publicPort?: string; + sslMode?: 'none' | 'letsencrypt' | 'external'; + servezoneAdminaccount?: string; +} \ No newline at end of file diff --git a/ts_interfaces/data/cluster.ts b/ts_interfaces/data/cluster.ts new file mode 100644 index 0000000..ddf773e --- /dev/null +++ b/ts_interfaces/data/cluster.ts @@ -0,0 +1,36 @@ +import * as plugins from '../plugins.js'; + +import { type IDockerRegistryInfo } from '../data/docker.js'; +import type { IServer } from './server.js'; + +export interface ICluster { + id: string; + data: { + name: string; + + /** + * a cluster has a machine user that governs access rights. + */ + userId: string; + + /** + * how can the cluster reach cloudly + */ + cloudlyUrl?: string; + + /** + * what servers are expected to be part of the cluster + */ + servers: IServer[]; + + /** + * ACME info. This is used to get SSL certificates. + */ + acmeInfo: { + serverAddress: string; + serverSecret: string; + }; + + sshKeys: plugins.tsclass.network.ISshKey[]; + }; +} diff --git a/ts_interfaces/data/config.ts b/ts_interfaces/data/config.ts new file mode 100644 index 0000000..5806ab1 --- /dev/null +++ b/ts_interfaces/data/config.ts @@ -0,0 +1 @@ +export type TConfigType = 'server' | 'cluster' | 'coreflow' | 'service'; diff --git a/ts_interfaces/data/deployment.ts b/ts_interfaces/data/deployment.ts new file mode 100644 index 0000000..2dd87e4 --- /dev/null +++ b/ts_interfaces/data/deployment.ts @@ -0,0 +1,14 @@ +import * as plugins from '../plugins.js'; + +/** + * results from a DeploymentDirective + * tracks the status of a deployment + */ +export interface IDeployment { + id: string; + deploymentDirectiveId: string; + affectedServiceIds: string[]; + usedImageId: string; + deploymentLog: string[]; + status: 'scheduled' | 'running' | 'deployed' | 'failed'; +} \ No newline at end of file diff --git a/ts_interfaces/data/deploymentdirective.ts b/ts_interfaces/data/deploymentdirective.ts new file mode 100644 index 0000000..5775a7d --- /dev/null +++ b/ts_interfaces/data/deploymentdirective.ts @@ -0,0 +1,14 @@ +import type { IServiceRessources } from "./docker.js"; + +/** + * used for tellilng a cluster about a disired deployment + * and specifies its configuration + */ +export interface IDeploymentDirective { + id: string; + name: string; + imageClaim: string; + ports: { hostPort: number; containerPort: number }[]; + environment: { [key: string]: string }; + resources?: IServiceRessources; +} \ No newline at end of file diff --git a/ts_interfaces/data/docker.ts b/ts_interfaces/data/docker.ts new file mode 100644 index 0000000..ef0c503 --- /dev/null +++ b/ts_interfaces/data/docker.ts @@ -0,0 +1,15 @@ +import * as plugins from '../plugins.js'; + +export interface IDockerRegistryInfo { + serveraddress: string; + username: string; + password: string; +} + +export interface IServiceRessources { + cpuLimit?: number; + cpuReservation?: number; + memorySizeLimitMB?: number; + memorySizeReservationMB?: number; + volumeMounts?: plugins.tsclass.container.IVolumeMount[]; +} diff --git a/ts_interfaces/data/env.ts b/ts_interfaces/data/env.ts new file mode 100644 index 0000000..622b1a3 --- /dev/null +++ b/ts_interfaces/data/env.ts @@ -0,0 +1,6 @@ + +export interface IEnvBundle { + environment: string; + timeSensitive: boolean; + configKeyValueObject: {[key: string]: string}; +} \ No newline at end of file diff --git a/ts_interfaces/data/event.ts b/ts_interfaces/data/event.ts new file mode 100644 index 0000000..d548bc7 --- /dev/null +++ b/ts_interfaces/data/event.ts @@ -0,0 +1,11 @@ +import * as plugins from '../plugins.js'; + +export interface IEvent_Cloudly_ContainerVersionNotification + extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedEvent, + IEvent_Cloudly_ContainerVersionNotification + > { + name: 'newContainerVersion'; + uniqueEventId: string; + payload: plugins.tsclass.container.IContainer; +} diff --git a/ts_interfaces/data/image.ts b/ts_interfaces/data/image.ts new file mode 100644 index 0000000..5f0ab8d --- /dev/null +++ b/ts_interfaces/data/image.ts @@ -0,0 +1,15 @@ +import * as plugins from '../plugins.js'; + +export interface IImage { + id: string; + data: { + name: string; + description: string; + versions: Array<{ + versionString: string; + storagePath?: string; + size: number; + createdAt: number; + }>; + }; +} diff --git a/ts_interfaces/data/index.ts b/ts_interfaces/data/index.ts new file mode 100644 index 0000000..15ef9b6 --- /dev/null +++ b/ts_interfaces/data/index.ts @@ -0,0 +1,17 @@ +export * from './cloudlyconfig.js'; +export * from './cluster.js'; +export * from './config.js'; +export * from './deployment.js'; +export * from './deploymentdirective.js'; +export * from './docker.js'; +export * from './env.js'; +export * from './event.js'; +export * from './image.js'; +export * from './secretbundle.js'; +export * from './secretgroup.js' +export * from './server.js'; +export * from './service.js'; +export * from './status.js'; +export * from './traffic.js'; +export * from './user.js'; +export * from './version.js'; diff --git a/ts_interfaces/data/secretbundle.ts b/ts_interfaces/data/secretbundle.ts new file mode 100644 index 0000000..629ef4f --- /dev/null +++ b/ts_interfaces/data/secretbundle.ts @@ -0,0 +1,42 @@ +export interface ISecretBundle { + id: string; + data: { + name: string; + description: string; + + /** + * determines if the secret is a service or an external secret + * if external secret additional checks are put in place to protect the secret + */ + type: 'service' | 'npmci' | 'gitzone' | 'external'; + + /** + * You can add specific secret groups using this + */ + includedSecretGroupIds: string[]; + + /** + * You can add specific tags using this + */ + includedTags: { + key: string; + value?: string; + }[]; + + /** + * add images + */ + includedImages: { + imageId: string; + permissions: ('read' | 'write')[]; + }[]; + + /** + * authrozations select a specific environment of a config bundle + */ + authorizations: Array<{ + secretAccessKey: string; + environment: string; + }>; + }; +} diff --git a/ts_interfaces/data/secretgroup.ts b/ts_interfaces/data/secretgroup.ts new file mode 100644 index 0000000..10fe73e --- /dev/null +++ b/ts_interfaces/data/secretgroup.ts @@ -0,0 +1,54 @@ +export interface ISecretGroup { + /** + * the insatnce id. This should be a random id, except for default + */ + id: string; + + data: { + name: string; + description: string; + + /** + * the key of the secretgroup like CI_RUNNER_TOKEN + */ + key: string; + + /** + * the priority of the secretgroup + * will be used to determine which secretgroup will be used + * when there are multiple secretgroups with the same key + */ + priority?: number; + + /** + * any tags that can be used to filter the secretgroup + * can be used for putting secrets into projects + */ + tags: { + key: string; + value: string; + }[]; + /** + * the values for this secretGroup + */ + environments: { + [key: string]: { + value: string; + + /** + * can be used to update the value + */ + updateToken?: string; + + /** + * the linux timestamp of the last update + */ + lastUpdated: number; + history: { + timestamp: string; + value: string; + }[]; + }; + }; + }; +} diff --git a/ts_interfaces/data/server.ts b/ts_interfaces/data/server.ts new file mode 100644 index 0000000..7b04289 --- /dev/null +++ b/ts_interfaces/data/server.ts @@ -0,0 +1,36 @@ +import * as plugins from '../plugins.js'; + +import { type IDockerRegistryInfo } from './docker.js'; + +export interface IServerMetrics { + serverId: string; + cpuUsageInPercent: number; + memoryUsageinMB: number; + memoryAvailableInMB: number; + containerCount: number; + containerMetrics: Array<{ + containerId: string; + containerName: string; + cpuUsageInPercent: number; + memoryUsageInMB: number; + }>; +} + +export interface IServer { + id: string; + data: { + type: 'baremetal' | 'hetzner'; + + assignedClusterId: string; + + /** + * a list of debian packages to be installed + */ + requiredDebianPackages: string[]; + + /** + * a list of SSH keys to deploy + */ + sshKeys: plugins.tsclass.network.ISshKey[]; + }; +} diff --git a/ts_interfaces/data/service.ts b/ts_interfaces/data/service.ts new file mode 100644 index 0000000..3684db6 --- /dev/null +++ b/ts_interfaces/data/service.ts @@ -0,0 +1,26 @@ +import type { IServiceRessources } from './docker.js'; + +export interface IService { + id: string; + data: { + name: string; + imageId: string; + imageVersion: string; + environment: { [key: string]: string }; + secretBundleId: string; + scaleFactor: number; + balancingStrategy: 'round-robin' | 'least-connections'; + ports: { + web: number; + custom?: { [domain: string]: string }; + }; + resources?: IServiceRessources; + domains: { + name: string; + port?: number; + protocol?: 'http' | 'https' | 'ssh'; + }[]; + deploymentIds: string[]; + deploymentDirectiveIds: string[]; + }; +} diff --git a/ts_interfaces/data/status.ts b/ts_interfaces/data/status.ts new file mode 100644 index 0000000..6f2b5d5 --- /dev/null +++ b/ts_interfaces/data/status.ts @@ -0,0 +1,20 @@ +import * as plugins from '../plugins.js'; + +export interface IClusterStatus { + name: string; + ip: string; + nodesCount: number; + containersUnderManagementCount: number; + nodeStatusId: string; + containerStatusArray: IContainerStatus[]; +} + +export interface INodeStatus { + nodeId: string; +} + +export interface IContainerStatus { + serviceName: string; + dockerImageUrl: string; + dockerImageVersion: string; +} diff --git a/ts_interfaces/data/traffic.ts b/ts_interfaces/data/traffic.ts new file mode 100644 index 0000000..b5a3bd9 --- /dev/null +++ b/ts_interfaces/data/traffic.ts @@ -0,0 +1,5 @@ +import * as plugins from '../plugins.js'; + +interface IReverseProxyConfig extends plugins.tsclass.network.IReverseProxyConfig {} + +export { type IReverseProxyConfig }; diff --git a/ts_interfaces/data/user.ts b/ts_interfaces/data/user.ts new file mode 100644 index 0000000..2e143f4 --- /dev/null +++ b/ts_interfaces/data/user.ts @@ -0,0 +1,30 @@ +export interface IToken { + token: string; + expiresAt: number; + assignedRoles: string[]; +} + +/** + * an identity is assumed by authentication as a user + * an identity is ephemeral and has to be renewed regularly + */ +export interface IIdentity { + name: string; + userId: string; + type: 'machine' | 'human'; + role: 'admin' | 'user' | 'api' | 'cluster'; + expiresAt: number; + /** the jwt token should contain above data for verification */ + jwt: string; +} + +export interface IUser { + id: string; + data: { + type: 'machine' | 'human'; + role: 'admin' | 'user' | 'api' | 'cluster'; + username?: string; + password?: string; + tokens?: IToken[]; + } +} \ No newline at end of file diff --git a/ts_interfaces/data/version.ts b/ts_interfaces/data/version.ts new file mode 100644 index 0000000..73ce675 --- /dev/null +++ b/ts_interfaces/data/version.ts @@ -0,0 +1,11 @@ +export interface IContainerVersionData { + /** + * the docker image url + * example: registry.gitlab.com/hosttoday/ht-docker-node:latest + */ + dockerImageUrl: string; + /** + * the docker image version. Note: This is different from docker tags that are often used for versions. + */ + dockerImageVersion: string; +} diff --git a/ts_interfaces/index.ts b/ts_interfaces/index.ts new file mode 100644 index 0000000..e992c34 --- /dev/null +++ b/ts_interfaces/index.ts @@ -0,0 +1,9 @@ +import * as data from './data/index.js'; +import * as platformservice from './platformservice/index.js'; +import * as requests from './requests/index.js'; + +export { + data, + platformservice, + requests +} diff --git a/ts_interfaces/platformservice/00readme.md b/ts_interfaces/platformservice/00readme.md new file mode 100644 index 0000000..a160700 --- /dev/null +++ b/ts_interfaces/platformservice/00readme.md @@ -0,0 +1 @@ +The platform folder contains types that can be used for talking with the underlying platform by apps running on serve.zone. \ No newline at end of file diff --git a/ts_interfaces/platformservice/aibridge.ts b/ts_interfaces/platformservice/aibridge.ts new file mode 100644 index 0000000..54e51dc --- /dev/null +++ b/ts_interfaces/platformservice/aibridge.ts @@ -0,0 +1,23 @@ +import * as plugins from '../plugins.js'; + +export interface IChat { + systemMessage: string; + messages: { + role: 'assistant' | 'user'; + content: string; + }[]; +} + +export interface IReq_Chat extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_Chat +> { + method: 'chat', + request: { + chat: IChat; + }; + response: { + chat: IChat; + latestMessage: string; + } +} \ No newline at end of file diff --git a/ts_interfaces/platformservice/index.ts b/ts_interfaces/platformservice/index.ts new file mode 100644 index 0000000..f0c8924 --- /dev/null +++ b/ts_interfaces/platformservice/index.ts @@ -0,0 +1,13 @@ +import * as aibridge from './aibridge.js'; +import * as letter from './letter.js'; +import * as mta from './mta.js'; +import * as pushnotification from './pushnotification.js'; +import * as sms from './sms.js'; + +export { + aibridge, + letter, + mta, + pushnotification, + sms, +} diff --git a/ts_interfaces/platformservice/letter.ts b/ts_interfaces/platformservice/letter.ts new file mode 100644 index 0000000..9d94127 --- /dev/null +++ b/ts_interfaces/platformservice/letter.ts @@ -0,0 +1,34 @@ +import * as plugins from '../plugins.js'; + +export interface IRequest_SendLetter extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_SendLetter +> { + method: 'sendLetter'; + request: { + /** + * will be used in logs + */ + description: string; + /** + * if you send any PDF / invoice that you have not made sure to be letterxpress compliant + * we strongly recommend using a cover page + */ + needsCover: boolean; + title?: string; + from?: plugins.tsclass.business.IAddress; + to?: plugins.tsclass.business.IAddress; + coverBody?: string; + service: ('Einschreiben')[]; + pdfAttachments?: Array<{ + name: string; + binaryAttachmentString: string; + }> + }; + response: { + /** + * this process id allows status retrieval of the letter + */ + processId: string; + }; +} \ No newline at end of file diff --git a/ts_interfaces/platformservice/mta.ts b/ts_interfaces/platformservice/mta.ts new file mode 100644 index 0000000..c0aa236 --- /dev/null +++ b/ts_interfaces/platformservice/mta.ts @@ -0,0 +1,39 @@ +import * as plugins from '../plugins.js'; + +export type TTemplates = 'default' | 'linkaction' | 'notification'; + +export interface IRequest_SendEmail extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_SendEmail +> { + method: 'sendEmail'; + request: { + title: string; + from: string; + to: string; + body: string; + attachments?: Array<{ + name: string; + binaryAttachmentString: string; + }> + }; + response: { + /** + * the response id allows for handling of responses to that email + */ + responseId: string; + }; +} + +export interface IRequestRegisterRecipient extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequestRegisterRecipient +> { + method: 'registerRecepient'; + request: { + emailAddress: string; + }; + response: { + status: 'ok' | 'not ok'; + }; +} diff --git a/ts_interfaces/platformservice/pushnotification.ts b/ts_interfaces/platformservice/pushnotification.ts new file mode 100644 index 0000000..b99cff1 --- /dev/null +++ b/ts_interfaces/platformservice/pushnotification.ts @@ -0,0 +1,16 @@ +import * as plugins from '../plugins.js'; + +export interface IRequest_SendPushNotification extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_SendPushNotification +> { + method: 'sendPushNotification'; + request: { + deviceToken: string; + message: string; + } + response: { + ok: boolean; + status: string; + } +} \ No newline at end of file diff --git a/ts_interfaces/platformservice/sms.ts b/ts_interfaces/platformservice/sms.ts new file mode 100644 index 0000000..9150c99 --- /dev/null +++ b/ts_interfaces/platformservice/sms.ts @@ -0,0 +1,33 @@ +import * as plugins from '../plugins.js'; + +export interface IRequest_SendSms + extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_SendSms + > { + method: 'sendSms'; + request: { + toNumber: number; + fromName: string; + messageText: string; + }; + response: { + status: 'ok' | 'not ok'; + } + } + + export interface IRequest_SendVerificationCode + extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_SendVerificationCode + > { + method: 'sendVerificationCode'; + request: { + toNumber: number; + fromName: string; + }; + response: { + status: 'ok' | 'not ok'; + verificationCode: string; + } + } diff --git a/ts_interfaces/plugins.ts b/ts_interfaces/plugins.ts new file mode 100644 index 0000000..a620bd1 --- /dev/null +++ b/ts_interfaces/plugins.ts @@ -0,0 +1,20 @@ +// @apiglobal scope +import * as typedrequestInterfaces from '@api.global/typedrequest-interfaces'; + +export { + typedrequestInterfaces +} + +// @push.rocks scope +import * as smartlogInterfaces from '@push.rocks/smartlog-interfaces'; + +export { + smartlogInterfaces, +} + +// tsclass scope +import * as tsclass from '@tsclass/tsclass'; + +export { + tsclass +} diff --git a/ts_interfaces/requests/certificate.ts b/ts_interfaces/requests/certificate.ts new file mode 100644 index 0000000..5616a6c --- /dev/null +++ b/ts_interfaces/requests/certificate.ts @@ -0,0 +1,18 @@ +import * as plugins from '../plugins.js'; +import * as userInterfaces from '../data/user.js'; + +export interface IRequest_Any_Cloudly_GetCertificateForDomain + extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Any_Cloudly_GetCertificateForDomain + > { + method: 'getCertificateForDomain'; + request: { + identity: userInterfaces.IIdentity; + domainName: string; + type: 'ssl'; + }; + response: { + certificate: plugins.tsclass.network.ICert; + }; +} diff --git a/ts_interfaces/requests/cluster.ts b/ts_interfaces/requests/cluster.ts new file mode 100644 index 0000000..daaf91a --- /dev/null +++ b/ts_interfaces/requests/cluster.ts @@ -0,0 +1,67 @@ +import * as userInterfaces from '../data/user.js'; +import * as clusterInterfaces from '../data/cluster.js'; +import * as plugins from '../plugins.js'; + +/** + * get all clusters + */ +export interface IRequest_GetAllClusters extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_GetAllClusters +> { + method: 'getAllClusters'; + request: { + identity: userInterfaces.IIdentity; + }; + response: { + clusters: clusterInterfaces.ICluster[]; + }; +} + +export interface IRequest_CreateCluster extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_CreateCluster +> { + method: 'createCluster'; + request: { + identity: userInterfaces.IIdentity; + clusterName: string; + }; + response: { + clusterConfig: clusterInterfaces.ICluster; + }; +} + +/** + * updates a cluster + */ +export interface IRequest_UpdateCluster extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_UpdateCluster +> { + method: 'updateCluster'; + request: { + identity: userInterfaces.IIdentity; + clusterConfig: clusterInterfaces.ICluster; + }; + response: { + clusterConfig: clusterInterfaces.ICluster; + }; +} + +/** + * deletes a cluster + */ +export interface IRequest_DeleteCluster extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_DeleteCluster +> { + method: 'deleteCluster'; + request: { + identity: userInterfaces.IIdentity; + clusterId: string; + }; + response: { + success: boolean; + }; +} diff --git a/ts_interfaces/requests/config.ts b/ts_interfaces/requests/config.ts new file mode 100644 index 0000000..8428787 --- /dev/null +++ b/ts_interfaces/requests/config.ts @@ -0,0 +1,49 @@ +import * as plugins from '../plugins.js'; +import * as clusterInterfaces from '../data/cluster.js'; +import * as serverInterfaces from '../data/server.js'; +import * as userInterfaces from '../data/user.js'; +import type { IService } from '../data/service.js'; +import type { IDeploymentDirective } from '../data/deploymentdirective.js'; + +export interface IRequest_Any_Cloudly_GetServerConfig +extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Any_Cloudly_GetServerConfig +> { + method: 'getServerConfig'; + request: { + identity: userInterfaces.IIdentity; + serverId: string; + }; + response: { + configData: serverInterfaces.IServer; + }; +} + +export interface IRequest_Any_Cloudly_GetClusterConfig +extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Any_Cloudly_GetClusterConfig +> { + method: 'getClusterConfig'; + request: { + identity: userInterfaces.IIdentity; + }; + response: { + configData: clusterInterfaces.ICluster; + deploymentDirectives: IDeploymentDirective[]; + }; +} + +export interface IRequest_Cloudly_Coreflow_PushClusterConfig +extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Cloudly_Coreflow_PushClusterConfig +> { + method: 'pushClusterConfig'; + request: { + configData: clusterInterfaces.ICluster; + deploymentDirectives: IDeploymentDirective[]; + }; + response: {}; +} diff --git a/ts_interfaces/requests/identity.ts b/ts_interfaces/requests/identity.ts new file mode 100644 index 0000000..0aa5ea3 --- /dev/null +++ b/ts_interfaces/requests/identity.ts @@ -0,0 +1,23 @@ +import * as plugins from '../plugins.js'; +import * as userInterfaces from '../data/user.js' + +// ======== +// IDENTITY +// ======== + +/** + * get the identity that then will be used to get the config + */ +export interface IRequest_Any_Cloudly_CoreflowManager_GetIdentityByToken +extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Any_Cloudly_CoreflowManager_GetIdentityByToken +> { + method: 'getIdentityByToken'; + request: { + token: string; + }; + response: { + identity: userInterfaces.IIdentity; + }; +} diff --git a/ts_interfaces/requests/image.ts b/ts_interfaces/requests/image.ts new file mode 100644 index 0000000..0e1538e --- /dev/null +++ b/ts_interfaces/requests/image.ts @@ -0,0 +1,94 @@ +import * as plugins from '../plugins.js'; +import * as userInterfaces from '../data/user.js'; + +import type { IImage } from '../data/index.js'; + +export interface IRequest_GetAllImages extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_GetAllImages +> { + method: 'getAllImages'; + request: { + identity: userInterfaces.IIdentity; + }; + response: { + images: IImage[]; + }; +} + +/** + * gets a single image + */ +export interface IRequest_GetImage extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_GetImage +> { + method: 'getImage'; + request: { + identity: userInterfaces.IIdentity; + imageId: string; + }; + response: { + image: IImage; + }; +} + +export interface IRequest_CreateImage extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_CreateImage +> { + method: 'createImage'; + request: { + identity: userInterfaces.IIdentity; + name: string; + description: string; + }; + response: { + image: IImage; + }; + +} + +export interface IRequest_PushImageVersion extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_PushImageVersion +> { + method: 'pushImageVersion'; + request: { + identity: userInterfaces.IIdentity; + imageId: string; + versionString: string; + imageStream: plugins.typedrequestInterfaces.IVirtualStream; + }; + response: { + allowed: boolean; + }; +} + +export interface IRequest_PullImageVersion extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_PullImageVersion +> { + method: 'pullImageVersion'; + request: { + identity: userInterfaces.IIdentity; + imageId: string; + versionString: string; + }; + response: { + imageStream: plugins.typedrequestInterfaces.IVirtualStream; + }; +} + +export interface IRequest_DeleteImage extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_DeleteImage +> { + method: 'deleteImage'; + request: { + identity: userInterfaces.IIdentity; + imageId: string; + }; + response: { + }; +} diff --git a/ts_interfaces/requests/index.ts b/ts_interfaces/requests/index.ts new file mode 100644 index 0000000..93e2bf1 --- /dev/null +++ b/ts_interfaces/requests/index.ts @@ -0,0 +1,33 @@ +import * as plugins from '../plugins.js'; + +import * as certificateRequests from './certificate.js'; +import * as clusterRequests from './cluster.js'; +import * as configRequests from './config.js'; +import * as identityRequests from './identity.js'; +import * as imageRequests from './image.js'; +import * as informRequests from './inform.js'; +import * as logRequests from './log.js'; +import * as networkRequests from './network.js'; +import * as routingRequests from './routing.js'; +import * as secretRequests from './secret.js'; +import * as serverRequests from './server.js'; +import * as statusRequests from './status.js'; +import * as versionRequests from './version.js'; + +export { + certificateRequests as certificate, + clusterRequests as cluster, + configRequests as config, + identityRequests as identity, + imageRequests as image, + informRequests as inform, + logRequests as log, + networkRequests as network, + routingRequests as routing, + secretRequests as secret, + serverRequests as server, + statusRequests as status, + versionRequests as version, +}; + +export * from './inform.js'; \ No newline at end of file diff --git a/ts_interfaces/requests/inform.ts b/ts_interfaces/requests/inform.ts new file mode 100644 index 0000000..e2bb1ee --- /dev/null +++ b/ts_interfaces/requests/inform.ts @@ -0,0 +1,12 @@ +import * as plugins from '../plugins.js'; + +export interface IRequest_InformAboutNewContainerImage extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_InformAboutNewContainerImage +> { + method: 'servezonestandard_InformAboutNewContainerVersion'; + request: { + containerImageInfo: plugins.tsclass.container.IContainer + }; + response: {}; +} \ No newline at end of file diff --git a/ts_interfaces/requests/log.ts b/ts_interfaces/requests/log.ts new file mode 100644 index 0000000..5c49e5a --- /dev/null +++ b/ts_interfaces/requests/log.ts @@ -0,0 +1,13 @@ +import * as plugins from '../plugins.js'; + +export interface IRequest_Log extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Log +> { + method: 'log'; + request: { + authToken: string; + logPackages: plugins.smartlogInterfaces.ILogPackage[]; + }, + response: {}; +} \ No newline at end of file diff --git a/ts_interfaces/requests/network.ts b/ts_interfaces/requests/network.ts new file mode 100644 index 0000000..c5a54b1 --- /dev/null +++ b/ts_interfaces/requests/network.ts @@ -0,0 +1,9 @@ +import * as plugins from '../plugins.js'; + +export interface IRequest_Any_Cloudly_GetNetworkNodes { + method: 'getNetworkNodes'; + request: {}; + response: { + networkNodes: plugins.tsclass.network.INetworkNode[]; + }; +} diff --git a/ts_interfaces/requests/routing.ts b/ts_interfaces/requests/routing.ts new file mode 100644 index 0000000..caf6755 --- /dev/null +++ b/ts_interfaces/requests/routing.ts @@ -0,0 +1,12 @@ +import { type IReverseProxyConfig } from '../data/traffic.js'; + +export interface IRequest_Coreflow_Coretraffic_RoutingUpdate { + method: 'updateRouting'; + request: { + reverseConfigs: IReverseProxyConfig[]; + }; + response: { + status: 'ok' | 'error'; + errorText: string; + }; +} diff --git a/ts_interfaces/requests/secret.ts b/ts_interfaces/requests/secret.ts new file mode 100644 index 0000000..1792726 --- /dev/null +++ b/ts_interfaces/requests/secret.ts @@ -0,0 +1,94 @@ +import * as plugins from '../plugins.js'; +import * as data from '../data/index.js'; +import * as userInterfaces from '../data/user.js'; + +export interface IReq_GetEnvBundle extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_GetEnvBundle +> { + method: 'getEnvBundle'; + request: { + authorization: string; + /** + * specify this if you want to get a warning, if the envBundle is for an unexpected environment + */ + environment?: string; + }; + response: { + envBundle: data.IEnvBundle; + }; +} + +export interface IReq_Admin_LoginWithUsernameAndPassword extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_Admin_LoginWithUsernameAndPassword +> { + method: 'adminLoginWithUsernameAndPassword'; + request: { + username: string; + password: string; + }; + response: { + identity: userInterfaces.IIdentity; + } +} + +export interface IReq_Admin_GetConfigBundlesAndSecretGroups extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_Admin_GetConfigBundlesAndSecretGroups +> { + method: 'adminGetConfigBundlesAndSecretGroups'; + request: { + identity: userInterfaces.IIdentity; + }; + response: { + secretBundles: data.ISecretBundle[]; + secretGroups: data.ISecretGroup[]; + }; + +} + +export interface IReq_Admin_CreateConfigBundlesAndSecretGroups extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_Admin_CreateConfigBundlesAndSecretGroups +> { + method: 'adminCreateConfigBundlesAndSecretGroups'; + request: { + identity: userInterfaces.IIdentity; + secretBundles: data.ISecretBundle[]; + secretGroups: data.ISecretGroup[]; + }; + response: { + ok: boolean; + }; +} + +export interface IReq_Admin_UpdateConfigBundlesAndSecretGroups extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_Admin_UpdateConfigBundlesAndSecretGroups +> { + method: 'adminUpdateConfigBundlesAndSecretGroups'; + request: { + identity: userInterfaces.IIdentity; + configBundles: data.ISecretBundle[]; + secretGroups: data.ISecretGroup[]; + }; + response: { + ok: boolean; + }; +} + +export interface IReq_Admin_DeleteConfigBundlesAndSecretGroups extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IReq_Admin_DeleteConfigBundlesAndSecretGroups +> { + method: 'adminDeleteConfigBundlesAndSecretGroups'; + request: { + identity: userInterfaces.IIdentity; + secretBundleIds: string[]; + secretGroupIds: string[]; + }; + response: { + ok: boolean; + }; +} diff --git a/ts_interfaces/requests/server.ts b/ts_interfaces/requests/server.ts new file mode 100644 index 0000000..02c42ac --- /dev/null +++ b/ts_interfaces/requests/server.ts @@ -0,0 +1,47 @@ +import type { IServerMetrics } from '../data/server.js'; +import * as plugins from '../plugins.js'; + +/** + * This request can be used between any two players + * Examples: + * WebApp -> Cloudly (get metrics) + * Cloudly -> Webapp (send metrics) + * Cloudly -> Coreflow (get metrics) + * Coreflow -> Cloudly (send metrics) + */ +export interface IRequest_Any_Cloudly_ServerStatus +extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_Any_Cloudly_ServerStatus +> { + method: 'getOrSendServerMetrics', + request: { + getOrSend: 'get' | 'send'; + serverMetrics?: IServerMetrics; + }, + response: { + serverMetrics?: IServerMetrics; + }, +} + +/** + * this request can be used between any two players + * Examples: + * WebApp -> Cloudly + * Cloudly -> Coreflow + * Cloudly -> HostingProvider + */ +export interface IRequest_TriggerServerAction + extends plugins.typedrequestInterfaces.implementsTR< + plugins.typedrequestInterfaces.ITypedRequest, + IRequest_TriggerServerAction + > { + method: 'triggerServerAction'; + request: { + actionName: 'reboot' | 'rebuild'; + payload: any; + }; + response: { + actionConfirmed: boolean; + }; +} \ No newline at end of file diff --git a/ts_interfaces/requests/status.ts b/ts_interfaces/requests/status.ts new file mode 100644 index 0000000..ac45a5f --- /dev/null +++ b/ts_interfaces/requests/status.ts @@ -0,0 +1,12 @@ +import * as userInterfaces from '../data/user.js'; + +/** + * a status update dashboard + */ +export interface IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate { + method: 'cloudlyStatus'; + request: { + identity: userInterfaces.IIdentity; + }; + response: {}; +} diff --git a/ts_interfaces/requests/version.ts b/ts_interfaces/requests/version.ts new file mode 100644 index 0000000..e2e66eb --- /dev/null +++ b/ts_interfaces/requests/version.ts @@ -0,0 +1,8 @@ +import * as versionInterfaces from '../data/version.js'; + +// Containers +export interface IRequest_Any_Cloudly_VersionManager_InformCloudlyAboutNewContainerVersion { + method: 'informCloudlyAboutNewContainerVersion'; + request: versionInterfaces.IContainerVersionData; + response: {}; +} diff --git a/ts_interfaces/tspublish.json b/ts_interfaces/tspublish.json index d8a0196..6f3aeca 100644 --- a/ts_interfaces/tspublish.json +++ b/ts_interfaces/tspublish.json @@ -1,6 +1,8 @@ { "name": "@serve.zone/interfaces", "dependencies": [ + "@api.global/typedrequest-interfaces", + "@push.rocks/smartlog-interfaces", "@tsclass/tsclass" ], "registries": [ diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index eca0236..6e27ccc 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/cloudly', - version: '1.2.3', + version: '1.2.4', description: 'A comprehensive multi-cloud manager leveraging Docker Swarmkit to orchestrate containerized applications across various cloud services and provide robust configuration and API integration.' } diff --git a/tsconfig.json b/tsconfig.json index dfe5a55..7dd1f64 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,9 +6,21 @@ "module": "NodeNext", "moduleResolution": "NodeNext", "esModuleInterop": true, - "verbatimModuleSyntax": true + "verbatimModuleSyntax": true, + "baseUrl": ".", + "paths": { + "@serve.zone/api": [ + "./ts_apiclient/index.ts" + ], + "@serve.zone/cli": [ + "./ts_cliclient/index.ts" + ], + "@serve.zone/interfaces": [ + "./ts_interfaces/index.ts" + ] + } }, "exclude": [ "dist_*/**/*.d.ts" ] -} +} \ No newline at end of file