diff --git a/.github/workflows/cdk_release_code.yml b/.github/workflows/cdk_release_code.yml index 6ecfbcf94..89b60916b 100644 --- a/.github/workflows/cdk_release_code.yml +++ b/.github/workflows/cdk_release_code.yml @@ -39,15 +39,6 @@ on: LOG_RETENTION_DAYS: required: true type: string - CREATE_INT_RELEASE_NOTES: - type: boolean - default: false - CREATE_INT_RC_RELEASE_NOTES: - type: boolean - default: false - CREATE_PROD_RELEASE_NOTES: - type: boolean - default: false MARK_JIRA_RELEASED: type: boolean default: false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c95f03e6a..f2ca3c0a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: package_code: needs: [tag_release, get_config_values] - uses: ./.github/workflows/sam_package_code.yml + uses: ./.github/workflows/cdk_package_code.yml with: pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} permissions: @@ -60,25 +60,22 @@ jobs: release_dev: needs: [tag_release, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: dev APIGEE_ENVIRONMENT: internal-dev ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} LOG_LEVEL: DEBUG LOG_RETENTION_DAYS: 30 - CREATE_INT_RELEASE_NOTES: true - CREATE_PROD_RELEASE_NOTES: true TOGGLE_GET_STATUS_UPDATES: true ENABLE_ALERTS: true STATE_MACHINE_LOG_LEVEL: ALL @@ -98,21 +95,22 @@ jobs: PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_dev_sandbox: needs: [tag_release, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp-sandbox + STACK_NAME: pfp-api-sandbox + CDK_APP_NAME: PfPApiSandboxApp TARGET_ENVIRONMENT: dev APIGEE_ENVIRONMENT: internal-dev-sandbox ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_sandbox_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-sandbox-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} @@ -129,6 +127,7 @@ jobs: TARGET_SPINE_SERVER: sandbox TARGET_SERVICE_SEARCH_SERVER: sandbox PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_qa: needs: @@ -140,18 +139,17 @@ jobs: package_code, get_commit_id, ] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: qa APIGEE_ENVIRONMENT: internal-qa ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} @@ -172,3 +170,4 @@ jobs: TARGET_SPINE_SERVER: ${{ secrets.QA_TARGET_SPINE_SERVER }} TARGET_SERVICE_SEARCH_SERVER: ${{ secrets.QA_TARGET_SERVICE_SEARCH_SERVER }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} diff --git a/.github/workflows/delete_old_cloudformation_stacks.yml b/.github/workflows/delete_old_cloudformation_stacks.yml index 3bcfba094..f25cc79e5 100644 --- a/.github/workflows/delete_old_cloudformation_stacks.yml +++ b/.github/workflows/delete_old_cloudformation_stacks.yml @@ -1,72 +1,88 @@ -name: "Delete old cloudformation stacks" +name: "Delete old pull request deployments" on: workflow_dispatch: - inputs: - branch_name: - description: "Branch to run against, defaults to main" - required: false - default: "main" schedule: - cron: "0 0,12 * * *" - push: - branches: [main] -permissions: {} +permissions: {} jobs: + get_config_values: + uses: NHSDigital/eps-common-workflows/.github/workflows/get-repo-config.yml@889349f9d93e4846a642f7973b7c26b180bec5aa + with: + verify_published_from_main_image: false + permissions: + attestations: read + contents: read + packages: read delete-old-cloudformation-stacks: + needs: [get_config_values] runs-on: ubuntu-22.04 - permissions: + container: + image: ${{ needs.get_config_values.outputs.pinned_image }} + options: --user 1001:1001 --group-add 128 + defaults: + run: + shell: bash + permissions: &common_permissions id-token: write contents: read + packages: read steps: - - name: Checkout local github scripts + - name: copy .tool-versions + run: | + cp /home/vscode/.tool-versions "$HOME/.tool-versions" + - &checkout + name: Checkout local github scripts uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: - ref: ${{ github.event.inputs.branch_name || github.ref_name }} + fetch-depth: 0 persist-credentials: false - sparse-checkout: | - .github/scripts + - &install_dependencies + name: install dependencies + uses: ./.github/actions/install_dependencies + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@ec61189d14ec14c8efccab744f656cffd0e33f37 with: aws-region: eu-west-2 role-to-assume: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} - role-session-name: aws-pfp-delete-old-stacks - name: delete stacks shell: bash - working-directory: .github/scripts - run: ./delete_stacks.sh + run: npm run delete-old-pr-stacks --workspace packages/cdk env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} delete-old-proxygen-deployments: + needs: [get_config_values] runs-on: ubuntu-22.04 - permissions: - id-token: write - contents: read + container: + image: ${{ needs.get_config_values.outputs.pinned_image }} + options: --user 1001:1001 --group-add 128 + defaults: + run: + shell: bash + permissions: *common_permissions steps: - - name: Checkout local code - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - with: - ref: ${{ github.event.inputs.branch_name || github.ref_name }} - persist-credentials: false - fetch-depth: 0 + - name: copy .tool-versions + run: | + cp /home/vscode/.tool-versions "$HOME/.tool-versions" + - *checkout + - *install_dependencies - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@ec61189d14ec14c8efccab744f656cffd0e33f37 with: aws-region: eu-west-2 role-to-assume: ${{ secrets.PROXYGEN_PTL_ROLE }} - role-session-name: pfp-delete-old-proxygen - name: delete proxygen deployments shell: bash - working-directory: .github/scripts - run: ./delete_proxygen_deployments.sh + run: npm run delete-old-pr-deployments --workspace packages/specification env: - GITHUB_TOKEN: ${{ github.token }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f240ace5f..8248bba83 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,7 @@ jobs: package_code: needs: [tag_release, get_config_values] - uses: ./.github/workflows/sam_package_code.yml + uses: ./.github/workflows/cdk_package_code.yml with: pinned_image: ${{ needs.get_config_values.outputs.pinned_image }} permissions: @@ -63,25 +63,22 @@ jobs: release_dev: needs: [tag_release, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: dev APIGEE_ENVIRONMENT: internal-dev ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} LOG_LEVEL: DEBUG LOG_RETENTION_DAYS: 30 - CREATE_INT_RELEASE_NOTES: true - CREATE_PROD_RELEASE_NOTES: true TOGGLE_GET_STATUS_UPDATES: true ENABLE_ALERTS: true STATE_MACHINE_LOG_LEVEL: ALL @@ -104,20 +101,21 @@ jobs: PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_dev_sandbox: needs: [tag_release, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp-sandbox + STACK_NAME: pfp-api-sandbox + CDK_APP_NAME: PfPApiSandboxApp TARGET_ENVIRONMENT: dev APIGEE_ENVIRONMENT: internal-dev-sandbox ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_sandbox_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-sandbox-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} @@ -137,6 +135,7 @@ jobs: TARGET_SPINE_SERVER: sandbox TARGET_SERVICE_SEARCH_SERVER: sandbox PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_ref: needs: @@ -148,18 +147,17 @@ jobs: get_commit_id, get_config_values, ] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: ref APIGEE_ENVIRONMENT: ref ENABLE_MUTUAL_TLS: false MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} @@ -181,6 +179,7 @@ jobs: TARGET_SPINE_SERVER: ${{ secrets.REF_TARGET_SPINE_SERVER }} TARGET_SERVICE_SEARCH_SERVER: ${{ secrets.REF_TARGET_SERVICE_SEARCH_SERVER }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_qa: needs: [ @@ -191,18 +190,17 @@ jobs: get_commit_id, get_config_values, ] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: qa APIGEE_ENVIRONMENT: internal-qa ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} @@ -226,27 +224,25 @@ jobs: TARGET_SPINE_SERVER: ${{ secrets.QA_TARGET_SPINE_SERVER }} TARGET_SERVICE_SEARCH_SERVER: ${{ secrets.QA_TARGET_SERVICE_SEARCH_SERVER }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PTL_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_int: needs: [tag_release, release_qa, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: int APIGEE_ENVIRONMENT: int ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} LOG_LEVEL: DEBUG LOG_RETENTION_DAYS: 30 - CREATE_INT_RELEASE_NOTES: true - CREATE_INT_RC_RELEASE_NOTES: true TOGGLE_GET_STATUS_UPDATES: true ENABLE_ALERTS: true STATE_MACHINE_LOG_LEVEL: ALL @@ -269,20 +265,21 @@ jobs: PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PROD_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_sandbox: needs: [tag_release, release_qa, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp-sandbox + STACK_NAME: pfp-api-sandbox + CDK_APP_NAME: PfPApiSandboxApp TARGET_ENVIRONMENT: int APIGEE_ENVIRONMENT: sandbox ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_sandbox_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-sandbox-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} @@ -299,29 +296,27 @@ jobs: TARGET_SPINE_SERVER: sandbox TARGET_SERVICE_SEARCH_SERVER: sandbox PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PROD_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} release_prod: needs: [tag_release, release_int, release_sandbox, package_code, get_commit_id, get_config_values] - uses: ./.github/workflows/sam_release_code.yml + uses: ./.github/workflows/cdk_release_code.yml permissions: contents: write id-token: write with: - ARTIFACT_BUCKET_PREFIX: ${{needs.tag_release.outputs.version_tag}} - STACK_NAME: pfp + STACK_NAME: pfp-api TARGET_ENVIRONMENT: prod APIGEE_ENVIRONMENT: prod ENABLE_MUTUAL_TLS: true MTLS_KEY: prescriptions-for-patients-mtls-1 - BUILD_ARTIFACT: packaged_code + BUILD_ARTIFACT: build_artifact TRUSTSTORE_FILE: pfp-truststore.pem VERSION_NUMBER: ${{needs.tag_release.outputs.version_tag}} COMMIT_ID: ${{needs.get_commit_id.outputs.commit_id}} LOG_LEVEL: INFO LOG_RETENTION_DAYS: 731 - MARK_JIRA_RELEASED: true - CREATE_PROD_RELEASE_NOTES: true TOGGLE_GET_STATUS_UPDATES: true RUN_REGRESSION_TESTS: false ENABLE_ALERTS: true @@ -340,3 +335,4 @@ jobs: PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE: ${{ secrets.PROD_CLOUD_FORMATION_CHECK_VERSION_ROLE }} DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_EXECUTE_LAMBDA_ROLE }} PROXYGEN_ROLE: ${{ secrets.PROXYGEN_PROD_ROLE }} + APIM_STATUS_API_KEY: ${{ secrets.APIM_STATUS_API_KEY }} diff --git a/.github/workflows/sam_release_code.yml b/.github/workflows/sam_release_code.yml index 7e598dcb7..f35debef9 100644 --- a/.github/workflows/sam_release_code.yml +++ b/.github/workflows/sam_release_code.yml @@ -39,15 +39,6 @@ on: LOG_RETENTION_DAYS: required: true type: string - CREATE_INT_RELEASE_NOTES: - type: boolean - default: false - CREATE_INT_RC_RELEASE_NOTES: - type: boolean - default: false - CREATE_PROD_RELEASE_NOTES: - type: boolean - default: false MARK_JIRA_RELEASED: type: boolean default: false diff --git a/package-lock.json b/package-lock.json index e3a103ff0..634f569f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -255,8 +255,6 @@ }, "node_modules/@aws-lambda-powertools/commons": { "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/commons/-/commons-2.33.0.tgz", - "integrity": "sha512-cXGfWT4FXtLO7Ny/shep6V/xYzgVN7hvukOA0bTa4nlg2GWiQsPoBoKvCEcfQ9I8GIS0tPyDfRkdx80SvA7LpA==", "license": "MIT-0", "dependencies": { "@aws/lambda-invoke-store": "0.2.4" @@ -264,8 +262,6 @@ }, "node_modules/@aws-lambda-powertools/logger": { "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/logger/-/logger-2.33.0.tgz", - "integrity": "sha512-ejkgit7O8yrhu5Mbx8fBAd3lykBNtYsVzFSR653Sh3d8ojpp8zo2OoARt3lKEK4cjHsKB/kUGbpzZcSYkR6Hvg==", "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "2.33.0", @@ -286,8 +282,6 @@ }, "node_modules/@aws-lambda-powertools/parameters": { "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/parameters/-/parameters-2.33.0.tgz", - "integrity": "sha512-jj3KL+CX5kiHeSaUz0tLWuEJTL7hMvOP1fVR8DePpF9/fFRKn1OXmvJ7lOfdxC9diaMmgKOL/Go2P8xLCE+nyQ==", "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "2.33.0" @@ -323,8 +317,6 @@ }, "node_modules/@aws-sdk/client-cloudformation": { "version": "3.1035.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.1035.0.tgz", - "integrity": "sha512-PrsWGBDmSwjbJ3Ax88yfTu9OR7Paq0VPECTf6J1USUra9kFnj80KvSl+H/OnuOLOBL7NKkNZGj2vfMIXe5jXFQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -372,10 +364,64 @@ "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/client-lambda": { + "version": "3.1042.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.1042.0.tgz", + "integrity": "sha512-g2NJMMGjQ18LvPapz75s8UzRaxJ2P5bF2Y025/eyVuBtzdCuW6XYoJxP29Tp39BzYgFb+HEtwATyZss/V6KdZg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/credential-provider-node": "^3.972.39", + "@aws-sdk/middleware-host-header": "^3.972.10", + "@aws-sdk/middleware-logger": "^3.972.10", + "@aws-sdk/middleware-recursion-detection": "^3.972.11", + "@aws-sdk/middleware-user-agent": "^3.972.38", + "@aws-sdk/region-config-resolver": "^3.972.13", + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/util-endpoints": "^3.996.8", + "@aws-sdk/util-user-agent-browser": "^3.972.10", + "@aws-sdk/util-user-agent-node": "^3.973.24", + "@smithy/config-resolver": "^4.4.17", + "@smithy/core": "^3.23.17", + "@smithy/eventstream-serde-browser": "^4.2.14", + "@smithy/eventstream-serde-config-resolver": "^4.3.14", + "@smithy/eventstream-serde-node": "^4.2.14", + "@smithy/fetch-http-handler": "^5.3.17", + "@smithy/hash-node": "^4.2.14", + "@smithy/invalid-dependency": "^4.2.14", + "@smithy/middleware-content-length": "^4.2.14", + "@smithy/middleware-endpoint": "^4.4.32", + "@smithy/middleware-retry": "^4.5.7", + "@smithy/middleware-serde": "^4.2.20", + "@smithy/middleware-stack": "^4.2.14", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/node-http-handler": "^4.6.1", + "@smithy/protocol-http": "^5.3.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-body-length-node": "^4.2.3", + "@smithy/util-defaults-mode-browser": "^4.3.49", + "@smithy/util-defaults-mode-node": "^4.2.54", + "@smithy/util-endpoints": "^3.4.2", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-retry": "^4.3.6", + "@smithy/util-stream": "^4.5.25", + "@smithy/util-utf8": "^4.2.2", + "@smithy/util-waiter": "^4.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@aws-sdk/client-route-53": { "version": "3.1035.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-route-53/-/client-route-53-3.1035.0.tgz", - "integrity": "sha512-c9mZ7pFxb36YlrWugobczlO7/xXpeub6LaxlMx1z+PC0jSm53Vts/SuJDcurDLy8mpOjeS/2i87jZ9tCoXS8Ig==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -426,8 +472,6 @@ }, "node_modules/@aws-sdk/client-s3": { "version": "3.1035.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.1035.0.tgz", - "integrity": "sha512-Bh1h96CjHMpxg6Rn2G4EE30YiiBh9w/7WmSZIfwLB0X/6lblaJcHggcryrq2uNN2Bx1/CNErMjTpGQzqhA7Rhg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", @@ -491,24 +535,24 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.1037.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1037.0.tgz", - "integrity": "sha512-SBXVNgXdzFeiuUod1AZXJexTDndPcpSTGOrVDe5Ny81Xq7d3r18th7ZTzvnc7BsD9MQa8SckNgOYscvi/fYZhw==", + "version": "3.1042.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1042.0.tgz", + "integrity": "sha512-doHP17OwqhcuW3e7fKkFfF4rDFM0hY8IVIwqwvBQRLk6IsZXzpl/YRhQWuIiy9O7BSZgzKKE+XytdElsTd9PWQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.974.5", - "@aws-sdk/credential-provider-node": "^3.972.36", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/credential-provider-node": "^3.972.39", "@aws-sdk/middleware-host-header": "^3.972.10", "@aws-sdk/middleware-logger": "^3.972.10", "@aws-sdk/middleware-recursion-detection": "^3.972.11", - "@aws-sdk/middleware-user-agent": "^3.972.35", + "@aws-sdk/middleware-user-agent": "^3.972.38", "@aws-sdk/region-config-resolver": "^3.972.13", "@aws-sdk/types": "^3.973.8", "@aws-sdk/util-endpoints": "^3.996.8", "@aws-sdk/util-user-agent-browser": "^3.972.10", - "@aws-sdk/util-user-agent-node": "^3.973.21", + "@aws-sdk/util-user-agent-node": "^3.973.24", "@smithy/config-resolver": "^4.4.17", "@smithy/core": "^3.23.17", "@smithy/fetch-http-handler": "^5.3.17", @@ -516,7 +560,7 @@ "@smithy/invalid-dependency": "^4.2.14", "@smithy/middleware-content-length": "^4.2.14", "@smithy/middleware-endpoint": "^4.4.32", - "@smithy/middleware-retry": "^4.5.5", + "@smithy/middleware-retry": "^4.5.7", "@smithy/middleware-serde": "^4.2.20", "@smithy/middleware-stack": "^4.2.14", "@smithy/node-config-provider": "^4.3.14", @@ -532,7 +576,7 @@ "@smithy/util-defaults-mode-node": "^4.2.54", "@smithy/util-endpoints": "^3.4.2", "@smithy/util-middleware": "^4.2.14", - "@smithy/util-retry": "^4.3.4", + "@smithy/util-retry": "^4.3.6", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, @@ -541,24 +585,24 @@ } }, "node_modules/@aws-sdk/client-ssm": { - "version": "3.1037.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1037.0.tgz", - "integrity": "sha512-bpOon1QQ+FN1yH7NbjjHnyQ7y5xPvS/3vS2nL3+e2+Iu9sA+WJwgwquk6N+U1EtnAuGPAl9eNzk0GnEHaIwAOQ==", + "version": "3.1042.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1042.0.tgz", + "integrity": "sha512-FVX73f1jsms0Ay1DSmivV/jN+unUVI/pUjR2FtbbPoj3N9VA6JZd178xN62jLpfSIN+iBuNGD9gvk3uI3AR9nA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.974.5", - "@aws-sdk/credential-provider-node": "^3.972.36", + "@aws-sdk/core": "^3.974.8", + "@aws-sdk/credential-provider-node": "^3.972.39", "@aws-sdk/middleware-host-header": "^3.972.10", "@aws-sdk/middleware-logger": "^3.972.10", "@aws-sdk/middleware-recursion-detection": "^3.972.11", - "@aws-sdk/middleware-user-agent": "^3.972.35", + "@aws-sdk/middleware-user-agent": "^3.972.38", "@aws-sdk/region-config-resolver": "^3.972.13", "@aws-sdk/types": "^3.973.8", "@aws-sdk/util-endpoints": "^3.996.8", "@aws-sdk/util-user-agent-browser": "^3.972.10", - "@aws-sdk/util-user-agent-node": "^3.973.21", + "@aws-sdk/util-user-agent-node": "^3.973.24", "@smithy/config-resolver": "^4.4.17", "@smithy/core": "^3.23.17", "@smithy/fetch-http-handler": "^5.3.17", @@ -566,7 +610,7 @@ "@smithy/invalid-dependency": "^4.2.14", "@smithy/middleware-content-length": "^4.2.14", "@smithy/middleware-endpoint": "^4.4.32", - "@smithy/middleware-retry": "^4.5.5", + "@smithy/middleware-retry": "^4.5.7", "@smithy/middleware-serde": "^4.2.20", "@smithy/middleware-stack": "^4.2.14", "@smithy/node-config-provider": "^4.3.14", @@ -582,9 +626,9 @@ "@smithy/util-defaults-mode-node": "^4.2.54", "@smithy/util-endpoints": "^3.4.2", "@smithy/util-middleware": "^4.2.14", - "@smithy/util-retry": "^4.3.4", + "@smithy/util-retry": "^4.3.6", "@smithy/util-utf8": "^4.2.2", - "@smithy/util-waiter": "^4.2.16", + "@smithy/util-waiter": "^4.3.0", "tslib": "^2.6.2" }, "engines": { @@ -618,8 +662,6 @@ }, "node_modules/@aws-sdk/crc64-nvme": { "version": "3.972.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.7.tgz", - "integrity": "sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -789,8 +831,6 @@ }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.10.tgz", - "integrity": "sha512-Vbc2frZH7wXlMNd+ZZSXUEs/l1Sv8Jj4zUnIfwrYF5lwaLdXHZ9xx4U3rjUcaye3HRhFVc+E5DbBxpRAbB16BA==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -807,8 +847,6 @@ }, "node_modules/@aws-sdk/middleware-expect-continue": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.10.tgz", - "integrity": "sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -822,8 +860,6 @@ }, "node_modules/@aws-sdk/middleware-flexible-checksums": { "version": "3.974.12", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.974.12.tgz", - "integrity": "sha512-v7n0//P95g+UnmyjCpJkDJFB+EP/9Wx/fQJC5BEiK9Y7VHgmhh6RNPVbqDYz9gsz8mXnxzyYt3tCEVJ1kzo01w==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", @@ -847,8 +883,6 @@ }, "node_modules/@aws-sdk/middleware-host-header": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.10.tgz", - "integrity": "sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -862,8 +896,6 @@ }, "node_modules/@aws-sdk/middleware-location-constraint": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.10.tgz", - "integrity": "sha512-rI3NZvJcEvjoD0+0PI0iUAwlPw2IlSlhyvgBK/3WkKJQE/YiKFedd9dMN2lVacdNxPNhxL/jzQaKQdrGtQagjQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -876,8 +908,6 @@ }, "node_modules/@aws-sdk/middleware-logger": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.10.tgz", - "integrity": "sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -890,8 +920,6 @@ }, "node_modules/@aws-sdk/middleware-recursion-detection": { "version": "3.972.11", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.11.tgz", - "integrity": "sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -906,8 +934,6 @@ }, "node_modules/@aws-sdk/middleware-sdk-route53": { "version": "3.972.12", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-route53/-/middleware-sdk-route53-3.972.12.tgz", - "integrity": "sha512-nj08j4q/Rp8zb3SqwxE+dex22NdXoSKJAh445x0SLGAI23lYfDTujFDG1JRYLRc1uR2/FPPr76L/ki/VE4J9ig==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -945,8 +971,6 @@ }, "node_modules/@aws-sdk/middleware-ssec": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.10.tgz", - "integrity": "sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -1028,8 +1052,6 @@ }, "node_modules/@aws-sdk/region-config-resolver": { "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.13.tgz", - "integrity": "sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -1079,8 +1101,6 @@ }, "node_modules/@aws-sdk/types": { "version": "3.973.8", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.8.tgz", - "integrity": "sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -1102,8 +1122,6 @@ }, "node_modules/@aws-sdk/util-endpoints": { "version": "3.996.8", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.8.tgz", - "integrity": "sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -1128,8 +1146,6 @@ }, "node_modules/@aws-sdk/util-user-agent-browser": { "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.10.tgz", - "integrity": "sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.973.8", @@ -1944,8 +1960,6 @@ }, "node_modules/@middy/core": { "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@middy/core/-/core-7.3.3.tgz", - "integrity": "sha512-Wy6zjpaMo3yiU3+GR2d8HQhx7jnuDkPL5O2vSzLgw2OJmTkrMRREz8MMVUq24XrWyR1OX+xGRqSJJwC7NJP60A==", "license": "MIT", "dependencies": { "@middy/util": "7.3.3" @@ -1966,10 +1980,21 @@ } } }, - "node_modules/@middy/http-header-normalizer": { + "node_modules/@middy/core/node_modules/@middy/util": { "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@middy/http-header-normalizer/-/http-header-normalizer-7.3.3.tgz", - "integrity": "sha512-SnYl+V7GhSpoDV9LR6lMwgjj9VwU9KXiDcam1eAbC61PNseS6A/lk6NRAYKAJnVObyriozj017oabglrHN4KEA==", + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/willfarrell" + } + }, + "node_modules/@middy/http-header-normalizer": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@middy/http-header-normalizer/-/http-header-normalizer-7.4.0.tgz", + "integrity": "sha512-SJQ2BJIwBw5nCTk0wUucM4kM80qE+mhswYXcWoQsvDBTdmB1Is4EPBsaaEEP95q2OL8SyFSdqZ6podcUq0FeSQ==", "license": "MIT", "engines": { "node": ">=22" @@ -1980,12 +2005,12 @@ } }, "node_modules/@middy/input-output-logger": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@middy/input-output-logger/-/input-output-logger-7.3.3.tgz", - "integrity": "sha512-A4GAXCwrHUIr0JQWLIw/ke9him+joqJv5VdkkEKRsi/HUJ6hbXu1N1SntrYoSjBtvmsXyCqn7Xm8JR8c9ZIWlA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@middy/input-output-logger/-/input-output-logger-7.4.0.tgz", + "integrity": "sha512-2baQmLxk3fz4EJ35AWdbwqM9VHtTIvDuApXi2ooK6qHB3kPF3gpleRni+4vpayPhlVOQ/wSoKwUugddui9WySw==", "license": "MIT", "dependencies": { - "@middy/util": "7.3.3" + "@middy/util": "7.4.0" }, "engines": { "node": ">=22" @@ -1996,9 +2021,9 @@ } }, "node_modules/@middy/util": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@middy/util/-/util-7.3.3.tgz", - "integrity": "sha512-BR6zrbF3utbVobZfFa1eEbOu7u51uzrtQVJCAS3So/5dzlPF/8Q9Ediwu4lV8y1gLGzWAuhbZZL8JBWX6O4Bcg==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@middy/util/-/util-7.4.0.tgz", + "integrity": "sha512-TeXuwTICbLBQqiP/l54e8evbd9v7n9Mj/pMtoG2mlnfiEQ2W7uuRcN5Xq3IzcJrBD73ef4USs6eANGFkYOPgCg==", "license": "MIT", "engines": { "node": ">=22" @@ -2029,8 +2054,6 @@ }, "node_modules/@nhs/fhir-middy-error-handler": { "version": "2.1.83", - "resolved": "https://registry.npmjs.org/@nhs/fhir-middy-error-handler/-/fhir-middy-error-handler-2.1.83.tgz", - "integrity": "sha512-CKKHDx6JKxEhMwuUyZb2k/rVYA/metKJbqHqeNpE0c4HRTCeTMXr5NhQet8wnMTq237QLQFrfUw8Fy9Zj0VV2A==", "license": "MIT", "dependencies": { "@aws-lambda-powertools/logger": "^2.33.0", @@ -2052,15 +2075,27 @@ "constructs": "^10.6.0" } }, + "node_modules/@nhsdigital/eps-deployment-utils": { + "version": "1.8.1", + "resolved": "https://npm.pkg.github.com/download/@nhsdigital/eps-deployment-utils/1.8.1/d94465a3ee1aa1bab87d0e244a6e884d9fa97e22", + "integrity": "sha512-K7FNxqdG22mG1KtEof5em/1XKTzOW7ZCpKGxgGr4ujPSG69NPPcgU2xXfaeDZW/Kc99j9elJN419OfYE4JUraA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@aws-sdk/client-cloudformation": "^3.1031.0", + "@aws-sdk/client-lambda": "^3.1031.0", + "json-schema-to-ts": "^3.1.1" + } + }, "node_modules/@nhsdigital/eps-spine-client": { - "version": "2.1.90", - "resolved": "https://npm.pkg.github.com/download/@NHSDigital/eps-spine-client/2.1.90/212a6e89bfeead19b2852cb006882a421205a954", - "integrity": "sha512-5aA2MidgDerkD9UGb7wpB6MQyixVRjKQO0Ntf1RGdr7nr/uSm0pZbfHJGnjCiQDsdsY37TN465XDuRQh7aULaA==", + "version": "2.1.92", + "resolved": "https://npm.pkg.github.com/download/@NHSDigital/eps-spine-client/2.1.92/f5f384303ad06924969be2a2282d87b2aea522f2", + "integrity": "sha512-/JMgODvRpLMzPDP/JtVggU1jg/08lJUzGNf1U48b+C0/rw7Vnx4opx9ynoeX2FjO71y12wM/gzngGdtZ8ng7LA==", "license": "MIT", "dependencies": { - "@aws-lambda-powertools/logger": "^2.32.0", + "@aws-lambda-powertools/logger": "^2.33.0", "@types/mustache": "^4.2.6", - "axios": "^1.15.0", + "axios": "^1.15.2", "axios-retry": "^4.5.0", "mustache": "^4.2.0" } @@ -2080,8 +2115,6 @@ }, "node_modules/@nodable/entities": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==", "funding": [ { "type": "github", @@ -2423,9 +2456,9 @@ "license": "MIT" }, "node_modules/@redocly/cli": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-2.30.0.tgz", - "integrity": "sha512-hpMyiJFfyTk+FE+ksoD7HClN6ALxETsWwbuE2bkpJLYXnhnBMuGe42cuBo12mEXooXghH6UltaKktrRRg/FUYA==", + "version": "2.30.3", + "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-2.30.3.tgz", + "integrity": "sha512-z2T4+v4qwyEl1Cb2bRS77sK3jiYDOnIVZUYF8/3OWA1N+4znGIvs85xm5pAqQE0kltoIJuisekqERMvhdG6Z4w==", "dev": true, "license": "MIT", "dependencies": { @@ -2434,10 +2467,9 @@ "@opentelemetry/sdk-trace-node": "2.6.1", "@opentelemetry/semantic-conventions": "1.40.0", "@redocly/cli-otel": "0.1.2", - "@redocly/openapi-core": "2.30.0", - "@redocly/respect-core": "2.30.0", - "abort-controller": "^3.0.0", - "ajv": "npm:@redocly/ajv@8.18.0", + "@redocly/openapi-core": "2.30.3", + "@redocly/respect-core": "2.30.3", + "ajv": "npm:@redocly/ajv@8.18.1", "ajv-formats": "^3.0.1", "colorette": "^1.2.0", "cookie": "^0.7.2", @@ -2486,7 +2518,9 @@ }, "node_modules/@redocly/cli/node_modules/ajv": { "name": "@redocly/ajv", - "version": "8.18.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.1.tgz", + "integrity": "sha512-Ifm/pP/tul1qmAecpbVxCBluVE32rKfjf8gYXH4xI2gCv9mRWFhJMHzkPDM4TXlxwPQYIFegymlsy8lXz7optA==", "dev": true, "license": "MIT", "dependencies": { @@ -2502,6 +2536,8 @@ }, "node_modules/@redocly/cli/node_modules/json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, @@ -2515,16 +2551,38 @@ "json-schema-to-ts": "2.7.2" } }, + "node_modules/@redocly/config/node_modules/json-schema-to-ts": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-2.7.2.tgz", + "integrity": "sha512-R1JfqKqbBR4qE8UyBR56Ms30LL62/nlhoz+1UkfI/VE7p54Awu919FZ6ZUPG8zIa3XB65usPJgr1ONVncUGSaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@types/json-schema": "^7.0.9", + "ts-algebra": "^1.2.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@redocly/config/node_modules/ts-algebra": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-1.2.2.tgz", + "integrity": "sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA==", + "dev": true, + "license": "MIT" + }, "node_modules/@redocly/openapi-core": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-2.30.0.tgz", - "integrity": "sha512-ZwsTS/BHzfzmadf4qPcpBcYDQm78XoinmLTGQWzDKOpgnjNOV62YId79611ulHpYXndRG8vcVm5LJdvXqGp8Yw==", + "version": "2.30.3", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-2.30.3.tgz", + "integrity": "sha512-roSwxkitl+JY3LajLEg6n9ujaFkCB4cqtjgrjXxedgk57Qde5t0Vn4HBYkOomw1bHOI7W+Ux2qfPQOpzK7BnLg==", "dev": true, "license": "MIT", "dependencies": { - "@redocly/ajv": "^8.18.0", + "@redocly/ajv": "^8.18.1", "@redocly/config": "^0.48.1", - "ajv": "npm:@redocly/ajv@8.18.0", + "ajv": "npm:@redocly/ajv@8.18.1", "ajv-formats": "^3.0.1", "colorette": "^1.2.0", "js-levenshtein": "^1.1.6", @@ -2540,9 +2598,9 @@ }, "node_modules/@redocly/openapi-core/node_modules/ajv": { "name": "@redocly/ajv", - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.1.tgz", + "integrity": "sha512-Ifm/pP/tul1qmAecpbVxCBluVE32rKfjf8gYXH4xI2gCv9mRWFhJMHzkPDM4TXlxwPQYIFegymlsy8lXz7optA==", "dev": true, "license": "MIT", "dependencies": { @@ -2564,18 +2622,18 @@ "license": "MIT" }, "node_modules/@redocly/respect-core": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/@redocly/respect-core/-/respect-core-2.30.0.tgz", - "integrity": "sha512-Qzo2r7ZzbfBhB/OYXdaRGkCGCLQpHaHuQ/0WGFLtqtIouIhF1c0heC2STlGacH+T0MFkl0SU5sTkxpzetPuI8w==", + "version": "2.30.3", + "resolved": "https://registry.npmjs.org/@redocly/respect-core/-/respect-core-2.30.3.tgz", + "integrity": "sha512-9bEETk86ECE6n/0g/6MEQ3RryamTOv6mdZ0WDmHUmO3PfVUzHKFRgNcFnvyTWEC2nApdO9GbnYLjZcwyPwUdOw==", "dev": true, "license": "MIT", "dependencies": { "@faker-js/faker": "^7.6.0", "@noble/hashes": "^1.8.0", - "@redocly/ajv": "^8.18.0", - "@redocly/openapi-core": "2.30.0", - "ajv": "npm:@redocly/ajv@8.18.0", - "better-ajv-errors": "^1.2.0", + "@redocly/ajv": "^8.18.1", + "@redocly/openapi-core": "2.30.3", + "ajv": "npm:@redocly/ajv@8.18.1", + "better-ajv-errors": "^2.0.3", "colorette": "^2.0.20", "json-pointer": "^0.6.2", "jsonpath-rfc9535": "1.3.0", @@ -2590,9 +2648,9 @@ }, "node_modules/@redocly/respect-core/node_modules/ajv": { "name": "@redocly/ajv", - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.1.tgz", + "integrity": "sha512-Ifm/pP/tul1qmAecpbVxCBluVE32rKfjf8gYXH4xI2gCv9mRWFhJMHzkPDM4TXlxwPQYIFegymlsy8lXz7optA==", "dev": true, "license": "MIT", "dependencies": { @@ -2713,6 +2771,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2730,6 +2791,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2747,6 +2811,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2764,6 +2831,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2781,6 +2851,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2798,6 +2871,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2886,8 +2962,6 @@ }, "node_modules/@smithy/chunked-blob-reader": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.2.tgz", - "integrity": "sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2898,8 +2972,6 @@ }, "node_modules/@smithy/chunked-blob-reader-native": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.3.tgz", - "integrity": "sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==", "license": "Apache-2.0", "dependencies": { "@smithy/util-base64": "^4.3.2", @@ -2911,8 +2983,6 @@ }, "node_modules/@smithy/config-resolver": { "version": "4.4.17", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.17.tgz", - "integrity": "sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.14", @@ -2949,8 +3019,6 @@ }, "node_modules/@smithy/credential-provider-imds": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.14.tgz", - "integrity": "sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.14", @@ -2965,8 +3033,6 @@ }, "node_modules/@smithy/eventstream-codec": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.14.tgz", - "integrity": "sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", @@ -2980,8 +3046,6 @@ }, "node_modules/@smithy/eventstream-serde-browser": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.14.tgz", - "integrity": "sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==", "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-serde-universal": "^4.2.14", @@ -2994,8 +3058,6 @@ }, "node_modules/@smithy/eventstream-serde-config-resolver": { "version": "4.3.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.14.tgz", - "integrity": "sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3007,8 +3069,6 @@ }, "node_modules/@smithy/eventstream-serde-node": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.14.tgz", - "integrity": "sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==", "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-serde-universal": "^4.2.14", @@ -3021,8 +3081,6 @@ }, "node_modules/@smithy/eventstream-serde-universal": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.14.tgz", - "integrity": "sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==", "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-codec": "^4.2.14", @@ -3035,8 +3093,6 @@ }, "node_modules/@smithy/fetch-http-handler": { "version": "5.3.17", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.17.tgz", - "integrity": "sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==", "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^5.3.14", @@ -3051,8 +3107,6 @@ }, "node_modules/@smithy/hash-blob-browser": { "version": "4.2.15", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.15.tgz", - "integrity": "sha512-0PJ4Al3fg2nM4qKrAIxyNcApgqHAXcBkN8FeizOz69z0rb26uZ6lMESYtxegaTlXB5Hj84JfwMPavMrwDMjucA==", "license": "Apache-2.0", "dependencies": { "@smithy/chunked-blob-reader": "^5.2.2", @@ -3066,8 +3120,6 @@ }, "node_modules/@smithy/hash-node": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.14.tgz", - "integrity": "sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3081,8 +3133,6 @@ }, "node_modules/@smithy/hash-stream-node": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.14.tgz", - "integrity": "sha512-tw4GANWkZPb6+BdD4Fgucqzey2+r73Z/GRo9zklsCdwrnxxumUV83ZIaBDdudV4Ylazw3EPTiJZhpX42105ruQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3095,8 +3145,6 @@ }, "node_modules/@smithy/invalid-dependency": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.14.tgz", - "integrity": "sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3118,8 +3166,6 @@ }, "node_modules/@smithy/md5-js": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.14.tgz", - "integrity": "sha512-V2v0vx+h0iUSNG1Alt+GNBMSLGCrl9iVsdd+Ap67HPM9PN479x12V8LkuMoKImNZxn3MXeuyUjls+/7ZACZghA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3132,8 +3178,6 @@ }, "node_modules/@smithy/middleware-content-length": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.14.tgz", - "integrity": "sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==", "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^5.3.14", @@ -3201,8 +3245,6 @@ }, "node_modules/@smithy/middleware-stack": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.14.tgz", - "integrity": "sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3214,8 +3256,6 @@ }, "node_modules/@smithy/node-config-provider": { "version": "4.3.14", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.14.tgz", - "integrity": "sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.2.14", @@ -3244,8 +3284,6 @@ }, "node_modules/@smithy/property-provider": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.14.tgz", - "integrity": "sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3257,8 +3295,6 @@ }, "node_modules/@smithy/protocol-http": { "version": "5.3.14", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.14.tgz", - "integrity": "sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3270,8 +3306,6 @@ }, "node_modules/@smithy/querystring-builder": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.14.tgz", - "integrity": "sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3284,8 +3318,6 @@ }, "node_modules/@smithy/querystring-parser": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.14.tgz", - "integrity": "sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3309,8 +3341,6 @@ }, "node_modules/@smithy/shared-ini-file-loader": { "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.9.tgz", - "integrity": "sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3322,8 +3352,6 @@ }, "node_modules/@smithy/signature-v4": { "version": "5.3.14", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.14.tgz", - "integrity": "sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^4.2.2", @@ -3359,8 +3387,6 @@ }, "node_modules/@smithy/types": { "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.14.1.tgz", - "integrity": "sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -3371,8 +3397,6 @@ }, "node_modules/@smithy/url-parser": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.14.tgz", - "integrity": "sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==", "license": "Apache-2.0", "dependencies": { "@smithy/querystring-parser": "^4.2.14", @@ -3471,8 +3495,6 @@ }, "node_modules/@smithy/util-endpoints": { "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.4.2.tgz", - "integrity": "sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.14", @@ -3495,8 +3517,6 @@ }, "node_modules/@smithy/util-middleware": { "version": "4.2.14", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.14.tgz", - "integrity": "sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3541,8 +3561,6 @@ }, "node_modules/@smithy/util-uri-escape": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.2.tgz", - "integrity": "sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -3563,9 +3581,9 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "4.2.16", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.16.tgz", - "integrity": "sha512-GtclrKoZ3Lt7jPQ7aTIYKfjY92OgceScftVnkTsG8e1KV8rkvZgN+ny6YSRhd9hxB8rZtwVbmln7NTvE5O3GmQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.3.0.tgz", + "integrity": "sha512-JyjYmLAfS+pdxF92o4yLgEoy0zhayKTw73FU1aofLWwLcJw7iSqIY2exGmMTrl/lmZugP5p/zxdFSippJDfKWA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.14.1", @@ -3613,9 +3631,9 @@ "license": "MIT" }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", "dev": true, "license": "MIT", "optional": true, @@ -3689,17 +3707,17 @@ "optional": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.0.tgz", - "integrity": "sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz", + "integrity": "sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.59.0", - "@typescript-eslint/type-utils": "8.59.0", - "@typescript-eslint/utils": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/type-utils": "8.59.2", + "@typescript-eslint/utils": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -3712,22 +3730,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.59.0", + "@typescript-eslint/parser": "^8.59.2", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.0.tgz", - "integrity": "sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.2.tgz", + "integrity": "sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.59.0", - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0", + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", "debug": "^4.4.3" }, "engines": { @@ -3743,14 +3761,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.0.tgz", - "integrity": "sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.2.tgz", + "integrity": "sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.59.0", - "@typescript-eslint/types": "^8.59.0", + "@typescript-eslint/tsconfig-utils": "^8.59.2", + "@typescript-eslint/types": "^8.59.2", "debug": "^4.4.3" }, "engines": { @@ -3765,14 +3783,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.0.tgz", - "integrity": "sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz", + "integrity": "sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0" + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3783,9 +3801,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.0.tgz", - "integrity": "sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz", + "integrity": "sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==", "dev": true, "license": "MIT", "engines": { @@ -3800,15 +3818,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.0.tgz", - "integrity": "sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz", + "integrity": "sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0", - "@typescript-eslint/utils": "8.59.0", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2", + "@typescript-eslint/utils": "8.59.2", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -3825,9 +3843,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.0.tgz", - "integrity": "sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.2.tgz", + "integrity": "sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==", "dev": true, "license": "MIT", "engines": { @@ -3839,16 +3857,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.0.tgz", - "integrity": "sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz", + "integrity": "sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.59.0", - "@typescript-eslint/tsconfig-utils": "8.59.0", - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0", + "@typescript-eslint/project-service": "8.59.2", + "@typescript-eslint/tsconfig-utils": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/visitor-keys": "8.59.2", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -3867,16 +3885,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.0.tgz", - "integrity": "sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.2.tgz", + "integrity": "sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.59.0", - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0" + "@typescript-eslint/scope-manager": "8.59.2", + "@typescript-eslint/types": "8.59.2", + "@typescript-eslint/typescript-estree": "8.59.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3891,13 +3909,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.0.tgz", - "integrity": "sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==", + "version": "8.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz", + "integrity": "sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/types": "8.59.2", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -4065,17 +4083,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { "version": "8.16.0", "dev": true, @@ -4232,9 +4239,9 @@ "license": "MIT" }, "node_modules/aws-cdk": { - "version": "2.1119.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1119.0.tgz", - "integrity": "sha512-XBxZEKH3BY4M1EX6x0qBkmOAj8viErjpww14iH6Z3z6nI0YzjZeJ05eEl7eJwzUgv7NTGagWBS9m/eDJW5+dAg==", + "version": "2.1120.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.1120.0.tgz", + "integrity": "sha512-vDVa0IX0FhizARdY/GLSParFglKbdHCIhM8IDmynrAv9w8uLLljzWMeLUOhC1XpMErDZ/npYEihAOjfKxTaMIw==", "license": "Apache-2.0", "bin": { "cdk": "bin/cdk" @@ -4244,9 +4251,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.251.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.251.0.tgz", - "integrity": "sha512-H1Jfz2Oyejn+yG24i+By9fZpYfg+E3h1XnFCF2wnt/MyGOTIePRph7MRGkX73ap10ERSpmd0Ly58OLVykFoSQA==", + "version": "2.252.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.252.0.tgz", + "integrity": "sha512-bRLyTtJxhVgsx2JrL2B/KYYWf+Rg0s68UgQp+VRZK0h5fXeaPqDVEJGPMr7FiOgrmYwEadjfbxsTsZKNAloAvg==", "bundleDependencies": [ "@balena/dockerignore", "@aws-cdk/cloud-assembly-api", @@ -4305,25 +4312,6 @@ "@aws-cdk/cloud-assembly-schema": ">=53.15.0" } }, - "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/jsonschema": { - "version": "1.4.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-api/node_modules/semver": { - "version": "7.7.4", - "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/aws-cdk-lib/node_modules/@balena/dockerignore": { "version": "1.0.2", "inBundle": true, @@ -4637,12 +4625,12 @@ } }, "node_modules/axios": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.2.tgz", - "integrity": "sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.11", + "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } @@ -4678,20 +4666,20 @@ } }, "node_modules/better-ajv-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz", - "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-2.0.3.tgz", + "integrity": "sha512-t1vxUP+vYKsaYi/BbKo2K98nEAZmfi4sjwvmRT8aOPDzPJeAtLurfoIDazVkLILxO4K+Sw4YrLYnBQ46l6pePg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@babel/code-frame": "^7.16.0", - "@humanwhocodes/momoa": "^2.0.2", + "@babel/code-frame": "^7.27.1", + "@humanwhocodes/momoa": "^2.0.4", "chalk": "^4.1.2", - "jsonpointer": "^5.0.0", + "jsonpointer": "^5.0.1", "leven": "^3.1.0 < 4" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.20.6" }, "peerDependencies": { "ajv": "4.11.8 - 8" @@ -4745,9 +4733,9 @@ "link": true }, "node_modules/cdk-nag": { - "version": "2.38.1", - "resolved": "https://registry.npmjs.org/cdk-nag/-/cdk-nag-2.38.1.tgz", - "integrity": "sha512-pvGnSFyml4t6uw8RTp3pIz0iOQkgt6ewxoGdArZugNxqmn2XK9erXNvSrPhJC4BpkOXXkYYzgMSc7b6mbDHUOg==", + "version": "2.38.2", + "resolved": "https://registry.npmjs.org/cdk-nag/-/cdk-nag-2.38.2.tgz", + "integrity": "sha512-Ddim1r8IwAPQn95KB2owbHoU4YHveHg4PfM+k7TdcANqfVmoHem6cTFMpcIuoDM16BkQQ+xshxYxZgcAoeVKGw==", "license": "Apache-2.0", "engines": { "node": ">= 18.12.0" @@ -4961,8 +4949,6 @@ }, "node_modules/dompurify": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.1.tgz", - "integrity": "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { @@ -5108,8 +5094,6 @@ }, "node_modules/eslint": { "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz", - "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5296,14 +5280,6 @@ "node": ">=0.10.0" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/eventemitter3": { "version": "5.0.4", "dev": true, @@ -5338,7 +5314,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.0", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", "dev": true, "funding": [ { @@ -5354,8 +5332,6 @@ }, "node_modules/fast-xml-builder": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.5.tgz", - "integrity": "sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==", "funding": [ { "type": "github", @@ -5390,6 +5366,8 @@ }, "node_modules/fdir": { "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { @@ -5847,15 +5825,14 @@ } }, "node_modules/json-schema-to-ts": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-2.7.2.tgz", - "integrity": "sha512-R1JfqKqbBR4qE8UyBR56Ms30LL62/nlhoz+1UkfI/VE7p54Awu919FZ6ZUPG8zIa3XB65usPJgr1ONVncUGSaQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz", + "integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==", "dev": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", - "@types/json-schema": "^7.0.9", - "ts-algebra": "^1.2.0" + "ts-algebra": "^2.0.0" }, "engines": { "node": ">=16" @@ -6064,6 +6041,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6085,6 +6065,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6106,6 +6089,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6127,6 +6113,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6668,8 +6657,6 @@ }, "node_modules/path-expression-matcher": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", - "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", "funding": [ { "type": "github", @@ -6752,9 +6739,9 @@ } }, "node_modules/postcss": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.13.tgz", - "integrity": "sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", "dev": true, "funding": [ { @@ -7126,7 +7113,6 @@ }, "node_modules/semver": { "version": "7.7.4", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -7451,6 +7437,8 @@ }, "node_modules/tinyglobby": { "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, "license": "MIT", "dependencies": { @@ -7478,9 +7466,9 @@ "license": "MIT" }, "node_modules/ts-algebra": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-1.2.2.tgz", - "integrity": "sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz", + "integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==", "dev": true, "license": "MIT" }, @@ -8569,6 +8557,7 @@ "yaml": "^2.8.3" }, "devDependencies": { + "@nhsdigital/eps-deployment-utils": "^1.6.2", "@redocly/cli": "^2.30.0", "tsx": "4.21.0" }, diff --git a/packages/cdk/bin/PfPApiApp.ts b/packages/cdk/bin/PfPApiApp.ts index 79e7ef4be..93086b0de 100644 --- a/packages/cdk/bin/PfPApiApp.ts +++ b/packages/cdk/bin/PfPApiApp.ts @@ -6,6 +6,7 @@ import { getConfigFromEnvVar, getNumberConfigFromEnvVar } from "@nhsdigital/eps-cdk-constructs" +import {API_NAME} from "../constants" import {PfPApiStack} from "../stacks/PfPApiStack" function main() { @@ -13,7 +14,7 @@ function main() { productName: "Prescriptions for Patients API", appName: "PfPApiApp", repoName: "prescriptionsforpatients", - driftDetectionGroup: "pfp-api" + driftDetectionGroup: API_NAME }) const pfpApiStack = new PfPApiStack(app, "PfPApiStack", { diff --git a/packages/cdk/bin/PfPApiSandboxApp.ts b/packages/cdk/bin/PfPApiSandboxApp.ts index 28c4519f9..68b190b1b 100644 --- a/packages/cdk/bin/PfPApiSandboxApp.ts +++ b/packages/cdk/bin/PfPApiSandboxApp.ts @@ -5,6 +5,7 @@ import { getConfigFromEnvVar, getNumberConfigFromEnvVar } from "@nhsdigital/eps-cdk-constructs" +import {API_NAME} from "../constants" import {PfPApiSandboxStack} from "../stacks/PfPApiSandboxStack" function main() { @@ -12,7 +13,7 @@ function main() { productName: "Prescriptions for Patients API", appName: "PfPApiSandboxApp", repoName: "prescriptionsforpatients", - driftDetectionGroup: "pfp-api" + driftDetectionGroup: API_NAME }) return new PfPApiSandboxStack(app, "PfPApiSandboxStack", { diff --git a/packages/cdk/constants.ts b/packages/cdk/constants.ts new file mode 100644 index 000000000..357aa146f --- /dev/null +++ b/packages/cdk/constants.ts @@ -0,0 +1 @@ +export const API_NAME = "pfp-api" diff --git a/packages/cdk/scripts/deleteMainStacks.ts b/packages/cdk/scripts/deleteMainStacks.ts index dfb3b28a8..eaebb66ec 100644 --- a/packages/cdk/scripts/deleteMainStacks.ts +++ b/packages/cdk/scripts/deleteMainStacks.ts @@ -1,9 +1,10 @@ import {deleteUnusedMainStacks, getActiveApiVersions, getConfigFromEnvVar} from "@nhsdigital/eps-cdk-constructs" +import {API_NAME} from "../constants" const awsEnvironment = getConfigFromEnvVar("AWS_ENVIRONMENT", "") deleteUnusedMainStacks( - "pfp-api", - () => getActiveApiVersions("prescriptions-for-patients"), + API_NAME, + () => getActiveApiVersions("prescriptions-for-patients-v2"), `${awsEnvironment}.eps.national.nhs.uk.` ).catch((error) => { console.error(error) diff --git a/packages/cdk/scripts/deletePrStacks.ts b/packages/cdk/scripts/deletePrStacks.ts index 39977cbda..dc0448a1b 100644 --- a/packages/cdk/scripts/deletePrStacks.ts +++ b/packages/cdk/scripts/deletePrStacks.ts @@ -1,7 +1,8 @@ import {deleteUnusedPrStacks} from "@nhsdigital/eps-cdk-constructs" +import {API_NAME} from "../constants" deleteUnusedPrStacks( - "pfp-api", + API_NAME, "prescriptionsforpatients", "dev.eps.national.nhs.uk." ).catch((error) => { diff --git a/packages/cdk/tsconfig.json b/packages/cdk/tsconfig.json index 2b73af77d..e38887ad1 100644 --- a/packages/cdk/tsconfig.json +++ b/packages/cdk/tsconfig.json @@ -24,6 +24,6 @@ "../../node_modules/@types" ] }, - "include": ["resources/**/*", "constructs/**/*", "policies/**/*", "stacks/**/*", "tests/**/*", "scripts/**/*", "nagSuppressions.ts"], + "include": ["resources/**/*", "constructs/**/*", "policies/**/*", "stacks/**/*", "tests/**/*", "scripts/**/*", "nagSuppressions.ts", "constants.ts"], "exclude": ["node_modules", "cdk.out"] } diff --git a/packages/specification/deleteProxygenDeployments.ts b/packages/specification/deleteProxygenDeployments.ts new file mode 100644 index 000000000..6b50c07ca --- /dev/null +++ b/packages/specification/deleteProxygenDeployments.ts @@ -0,0 +1,11 @@ +import {deleteProxygenDeployments} from "@nhsdigital/eps-deployment-utils" + +deleteProxygenDeployments( + "clinical-prescription-tracker", + "electronic-prescription-service-clinical-prescription-tracker", + "ClinicalTrackerProxygenPrivateKey", + "eps-clinical-tracker" +).catch((error) => { + console.error("Error deleting proxygen deployments:", error) + process.exit(1) +}) diff --git a/packages/specification/package.json b/packages/specification/package.json index 7599a6a1b..bb7cbdfa3 100644 --- a/packages/specification/package.json +++ b/packages/specification/package.json @@ -13,9 +13,12 @@ "scripts": { "lint": "redocly lint --extends=recommended --config ./redocly.yaml", "compile": "node resolve-examples.js && redocly bundle prescriptions-for-patients.preprocessed.yaml -o dist/prescriptions-for-patients.resolved.json", - "clean": "rm -rf lib coverage prescriptions-for-patients.preprocessed.yaml" + "clean": "rm -rf lib coverage prescriptions-for-patients.preprocessed.yaml", + "delete-old-pr-deployments": "tsx ./scripts/deleteProxygenDeployments.ts", + "deploy-api": "tsx ./scripts/deploy_api.ts" }, "devDependencies": { + "@nhsdigital/eps-deployment-utils": "^1.6.2", "@redocly/cli": "^2.30.0", "tsx": "4.21.0" }, diff --git a/trivy.yaml b/trivy.yaml deleted file mode 100644 index eb2433758..000000000 --- a/trivy.yaml +++ /dev/null @@ -1 +0,0 @@ -ignorefile: ".trivyignore.yaml" diff --git a/zizmor.yml b/zizmor.yml index c1b7cf686..f18a7289b 100644 --- a/zizmor.yml +++ b/zizmor.yml @@ -2,17 +2,18 @@ rules: unpinned-images: # these workflows use unpinned images because they are using a full image passed in that contains the tag ignore: - - sam_release_code.yml:121:18 + - sam_release_code.yml:112:18 - sam_package_code.yml:15:18 - run_regression_tests.yml:31:18 - cdk_package_code.yml:16:18 - - cdk_release_code.yml:122:18 - - cdk_release_code.yml:264:7 + - cdk_release_code.yml:113:18 + - cdk_release_code.yml:255:18 + - delete_old_cloudformation_stacks.yml:22:18 + - delete_old_cloudformation_stacks.yml:64:18 secrets-outside-env: # these are ignored because they are using known secrets ignore: - - delete_old_cloudformation_stacks.yml:34:31 - - delete_old_cloudformation_stacks.yml:61:31 + - delete_old_cloudformation_stacks.yml:46:31 + - delete_old_cloudformation_stacks.yml:58:31 + - delete_old_cloudformation_stacks.yml:88:31 - run_regression_tests.yml:55:28 - - delete_old_cloudformation_stacks.yml:64:31 - - delete_old_cloudformation_stacks.yml:36:31