From e64b8411dd811ad8d7bb86a6d05cee4403b2d118 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:10 +0000 Subject: [PATCH 01/19] Revert "Fix: [AEA-0000] - fix int sandbox deployment (#186)" This reverts commit 7348e3193aa911b405c7cfe3116b668c82791423. --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e06c0259f..c3773548d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -238,7 +238,7 @@ jobs: LOG_RETENTION_DAYS: 30 DEPLOY_APIGEE: true secrets: - CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.INT_CLOUD_FORMATION_DEPLOY_ROLE }} + CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} release_prod: needs: [tag_release, release_int, release_int_sandbox, package_code, get_commit_id] From 9e6b181c208d5bd7f420286d226c4f94d4131edb Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:16 +0000 Subject: [PATCH 02/19] Revert "Fix: [AEA-4027] - Invalid NHS Numbers accepted in PSU (#165)" This reverts commit 363fedc2fa6a808afd4fb97b200ec53472acc10f. --- packages/updatePrescriptionStatus/src/utils/nhsNumber.ts | 6 +++--- .../tests/utils/testValidateNhsNumber.test.ts | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts b/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts index ef0dcb354..acf61ef82 100644 --- a/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts +++ b/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts @@ -1,7 +1,7 @@ // Adapted from: https://github.com/tbrd/nhs-numbers export function validateNhsNumber(nhsNumber: string): boolean { - if (!nhsNumber || nhsNumber.length !== 10 || !/^\d+$/.test(nhsNumber)) { + if (nhsNumber === undefined || nhsNumber === null || Number.isNaN(Number(nhsNumber))) { return false } @@ -13,9 +13,9 @@ export function validateNhsNumber(nhsNumber: string): boolean { calculatedCheckDigit = 0 } - const providedCheckDigit = parseInt(chars[9]) + const providedCheckDigit = chars[9] - return calculatedCheckDigit === providedCheckDigit + return calculatedCheckDigit === Number(providedCheckDigit) } export function calculateCheckDigit(numberString: string): number { diff --git a/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts b/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts index 4cfea6730..7805f6043 100644 --- a/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts +++ b/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts @@ -50,11 +50,6 @@ describe("validateNhsNumber", () => { expect(validateNhsNumber("123456789")).toBe(false) expect(validateNhsNumber("12345678901")).toBe(false) expect(validateNhsNumber("123456789012")).toBe(false) - expect(validateNhsNumber("96878500351")).toBe(false) - expect(validateNhsNumber("1239687850035")).toBe(false) - expect(validateNhsNumber("1239687850035123")).toBe(false) - expect(validateNhsNumber("9687850035123123123123")).toBe(false) - expect(validateNhsNumber("1239687850035123123123123")).toBe(false) }) }) }) From 87e37fc7d942f972797c7e1a977ee67730e35d41 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:24 +0000 Subject: [PATCH 03/19] Revert "Upgrade: [dependabot] - bump @typescript-eslint/parser from 7.7.1 to 7.8.0 (#181)" This reverts commit 34844f7ce95593a7c590dda8ed05008e85dc340b. --- package-lock.json | 210 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 196 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 53770ea7f..b7cea638b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@types/jest": "^29.5.12", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.8.0", + "@typescript-eslint/parser": "^7.7.1", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", "eslint": "^8.57.0", @@ -3604,16 +3604,63 @@ } } }, - "node_modules/@typescript-eslint/parser": { + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz", - "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", + "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", + "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/typescript-estree": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", "debug": "^4.3.4" }, "engines": { @@ -3633,13 +3680,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz", + "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3676,7 +3723,7 @@ } } }, - "node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", @@ -3689,7 +3736,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", @@ -3717,6 +3764,64 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", + "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz", + "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/utils": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", @@ -3742,7 +3847,65 @@ "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", + "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", + "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", @@ -3759,6 +3922,23 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", + "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.1", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "dev": true, diff --git a/package.json b/package.json index 919965842..c4c5baedc 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@types/jest": "^29.5.12", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.8.0", + "@typescript-eslint/parser": "^7.7.1", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", "eslint": "^8.57.0", From f86967bff4deecf28e09e337dd5e823b90c865eb Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:33 +0000 Subject: [PATCH 04/19] Revert "Upgrade: [dependabot] - bump @typescript-eslint/eslint-plugin from 7.7.1 to 7.8.0 (#180)" This reverts commit 52c08e7a50f93482994f9365a6b1b7110236f0d2. --- package-lock.json | 218 ++++------------------------------------------ package.json | 2 +- 2 files changed, 20 insertions(+), 200 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7cea638b..2b238d879 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@types/aws-lambda": "^8.10.137", "@types/jest": "^29.5.12", "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", @@ -3570,16 +3570,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz", - "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", + "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/type-utils": "7.7.1", + "@typescript-eslint/utils": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.3.1", @@ -3604,53 +3604,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/parser": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", @@ -3697,13 +3650,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz", - "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", + "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/typescript-estree": "7.7.1", + "@typescript-eslint/utils": "7.7.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3723,64 +3676,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/types": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", @@ -3823,17 +3718,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", + "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.15", "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/typescript-estree": "7.7.1", "semver": "^7.6.0" }, "engines": { @@ -3847,81 +3742,6 @@ "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/visitor-keys": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", diff --git a/package.json b/package.json index c4c5baedc..2fd106062 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@types/aws-lambda": "^8.10.137", "@types/jest": "^29.5.12", "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", From 08e1eb768f7b6c28c087c61edb007cb195811e92 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:41 +0000 Subject: [PATCH 05/19] Revert "Upgrade: [dependabot] - bump pytest from 7.4.4 to 8.2.0 (#171)" This reverts commit ab5865ac249c9df52489fc2c84880439b269518f. --- poetry.lock | 20 ++++++++++---------- pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index 821e007a3..283a7dcb9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1015,13 +1015,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- [[package]] name = "pluggy" -version = "1.5.0" +version = "1.4.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, ] [package.extras] @@ -1200,23 +1200,23 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pytest" -version = "8.2.0" +version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233"}, - {file = "pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"}, + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, ] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.5,<2.0" +pluggy = ">=0.12,<2.0" [package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "python-dateutil" @@ -1737,4 +1737,4 @@ termcolor = ">=2.3,<3.0" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "39a576be17e0c4473e188549d3007ea7525e18787bbb185faaa9dd8f18ee6bc3" +content-hash = "f7e40a87fb6ee757ce14389dd3e9df8e54102722632632942bfa0104a837401d" diff --git a/pyproject.toml b/pyproject.toml index da53f9c81..e94bc2b2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ requests = "^2.31.0" boto3 = "^1.34.94" argparse = "^1.4.0" pre-commit = "^3.5.0" -pytest = "^8.2.0" +pytest = "^7.4.3" cfn-lint = "^0.86.4" pyjwt = "^2.8.0" proxygen-cli = "^2.1.13" From ac9bdf52f949a47a29226aa5f43dd24206707f17 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:47 +0000 Subject: [PATCH 06/19] Revert "Fix: [AEA-0000] - fix deployment following adding status endpoint (#184)" This reverts commit d82db542e6941a7e7c140991443e33be2460ec83. --- SAMtemplates/apis/main.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/SAMtemplates/apis/main.yaml b/SAMtemplates/apis/main.yaml index 5b54c7c11..478be6fb0 100644 --- a/SAMtemplates/apis/main.yaml +++ b/SAMtemplates/apis/main.yaml @@ -226,8 +226,7 @@ Resources: IntegrationHttpMethod: POST Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${StatusLambdaFunctionArn}/invocations - # if you add a new endpoint, then need to manually force a deployment - # aws apigateway create-deployment --rest-api-id --stage-name prod --description 'Deployed from CLI' + # if you add a new endpoint, then change the stage name RestApiGatewayDeployment: Type: AWS::ApiGateway::Deployment DependsOn: @@ -235,13 +234,13 @@ Resources: - StatusLambdaMethod Properties: RestApiId: !Ref RestApiGateway + StageName: prod-v1 RestApiGatewayStage: Type: AWS::ApiGateway::Stage Properties: RestApiId: !Ref RestApiGateway DeploymentId: !Ref RestApiGatewayDeployment - StageName: prod TracingEnabled: true AccessLogSetting: DestinationArn: !GetAtt RestApiGatewayResources.Outputs.ApiGwAccessLogsArn From db76dd5b999ec527125743c40e99a63cfdad698f Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:37:54 +0000 Subject: [PATCH 07/19] Revert "Upgrade: [dependabot] - bump boto3 from 1.34.93 to 1.34.94 (#178)" This reverts commit e951c4325849ad255c675b81e3b146fee196ed3c. --- poetry.lock | 16 ++++++++-------- pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 283a7dcb9..d3b9469cb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -96,17 +96,17 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.34.94" +version = "1.34.93" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.34.94-py3-none-any.whl", hash = "sha256:bbb87d641c73462e53b1777083b55c8f13921618ad08757478a8122985c56c13"}, - {file = "boto3-1.34.94.tar.gz", hash = "sha256:22f65b3c9b7a419f8f39c2dddc421e14fab8cbb3bd8a9d467e874237d39f59b1"}, + {file = "boto3-1.34.93-py3-none-any.whl", hash = "sha256:b59355bf4a1408563969526f314611dbeacc151cf90ecb22af295dcc4fe18def"}, + {file = "boto3-1.34.93.tar.gz", hash = "sha256:e39516e4ca21612932599819662759c04485d53ca457996a913163da11f052a4"}, ] [package.dependencies] -botocore = ">=1.34.94,<1.35.0" +botocore = ">=1.34.93,<1.35.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -115,13 +115,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.34.94" +version = "1.34.93" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.34.94-py3-none-any.whl", hash = "sha256:f00a79002e0cb9d6895ecd0919c506402850177d7b6c4d2634fa2da362d95bcb"}, - {file = "botocore-1.34.94.tar.gz", hash = "sha256:99b11be9a28f9051af4c96fa121e9c3f22a86d499abd773c9e868b2a38961bae"}, + {file = "botocore-1.34.93-py3-none-any.whl", hash = "sha256:6fbd5a53a2adc9b3d4ebd90ae0ede83a91a41d96231f8a5984051f75495f246d"}, + {file = "botocore-1.34.93.tar.gz", hash = "sha256:79d39b0b87e962991c6dd55e78ce15155099f6fb741be88b1b8a456a702cc150"}, ] [package.dependencies] @@ -1737,4 +1737,4 @@ termcolor = ">=2.3,<3.0" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "f7e40a87fb6ee757ce14389dd3e9df8e54102722632632942bfa0104a837401d" +content-hash = "697da685991fa6b81991a7f2e956ba14319f56eba5bf0de47872bb5a10885f25" diff --git a/pyproject.toml b/pyproject.toml index e94bc2b2f..7162d2ed9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ jsonpath-rw = "^1.4.0" semver = "^3.0.2" gitpython = "^3.1.42" requests = "^2.31.0" -boto3 = "^1.34.94" +boto3 = "^1.34.93" argparse = "^1.4.0" pre-commit = "^3.5.0" pytest = "^7.4.3" From f713397e7f7eb2910047df7b175def5364c58691 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:38:03 +0000 Subject: [PATCH 08/19] Revert "Update: [AEA-3901] - Create status lambda for PSU API (#105)" This reverts commit 8d7b94a5c732000023e0db1f64a0ab2e18655b59. --- .pre-commit-config.yaml | 20 +- ...scription-status-update-api.code-workspace | 231 +- Makefile | 10 +- README.md | 3 +- SAMtemplates/apis/main.yaml | 33 +- SAMtemplates/functions/lambda_resources.yaml | 2 +- SAMtemplates/functions/main.yaml | 53 - SAMtemplates/main_template.yaml | 23 +- SAMtemplates/sandbox_template.yaml | 2 +- package-lock.json | 1943 +++++------------ package.json | 9 +- packages/statusLambda/.eslintrc | 39 - packages/statusLambda/.vscode/launch.json | 35 - packages/statusLambda/.vscode/settings.json | 7 - packages/statusLambda/jest.config.ts | 9 - packages/statusLambda/jest.debug.config.ts | 9 - packages/statusLambda/package.json | 27 - packages/statusLambda/src/statusLambda.ts | 54 - .../tests/mockAPIGatewayProxyEvent.js | 60 - packages/statusLambda/tests/mockContext.js | 16 - .../statusLambda/tests/test-handler.test.ts | 83 - packages/statusLambda/tsconfig.json | 9 - .../src/updatePrescriptionStatus.ts | 2 +- .../tests/testHandler.test.ts | 4 +- sonar-project.properties | 4 +- tsconfig.build.json | 5 +- 26 files changed, 681 insertions(+), 2011 deletions(-) delete mode 100644 packages/statusLambda/.eslintrc delete mode 100644 packages/statusLambda/.vscode/launch.json delete mode 100644 packages/statusLambda/.vscode/settings.json delete mode 100644 packages/statusLambda/jest.config.ts delete mode 100644 packages/statusLambda/jest.debug.config.ts delete mode 100644 packages/statusLambda/package.json delete mode 100644 packages/statusLambda/src/statusLambda.ts delete mode 100644 packages/statusLambda/tests/mockAPIGatewayProxyEvent.js delete mode 100644 packages/statusLambda/tests/mockContext.js delete mode 100644 packages/statusLambda/tests/test-handler.test.ts delete mode 100644 packages/statusLambda/tsconfig.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 60eec470a..9c5a7253e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -32,15 +32,6 @@ repos: types_or: [ts, tsx, javascript, jsx, json] pass_filenames: false - - id: lint-gsul - name: Lint gsul - entry: npm - args: ["run", "--prefix=packages/gsul", "lint"] - language: system - files: ^packages\/gsul - types_or: [ts, tsx, javascript, jsx, json] - pass_filenames: false - - id: lint-sandbox name: Lint sandbox entry: npm @@ -50,15 +41,6 @@ repos: types_or: [ts, tsx, javascript, jsx, json] pass_filenames: false - - id: lint-statusLambda - name: Lint statusLambda - entry: npm - args: ["run", "--prefix=packages/statusLambda", "lint"] - language: system - files: ^packages\/statusLambda - types_or: [ts, tsx, javascript, jsx, json] - pass_filenames: false - - id: lint-samtemplates name: Lint sam templates entry: make @@ -66,7 +48,7 @@ repos: language: system files: ^SAMtemplates pass_filenames: false - + - id: lint-githubactions name: Lint github actions entry: make diff --git a/.vscode/eps-prescription-status-update-api.code-workspace b/.vscode/eps-prescription-status-update-api.code-workspace index a58299015..80845c46a 100644 --- a/.vscode/eps-prescription-status-update-api.code-workspace +++ b/.vscode/eps-prescription-status-update-api.code-workspace @@ -1,118 +1,117 @@ { - "folders": [ - { - "name": "eps-prescription-status-update-monorepo", - "path": ".." - }, - { - "name": "packages/gsul", - "path": "../packages/gsul" - }, - { - "name": "packages/sandbox", - "path": "../packages/sandbox" - }, - { - "name": "packages/specification", - "path": "../packages/specification" - }, - { - "name": "packages/statusLambda", - "path": "../packages/statusLambda" - }, - { - "name": "packages/updatePrescriptionStatus", - "path": "../packages/updatePrescriptionStatus" - } - ], - "settings": { - "jest.disabledWorkspaceFolders": ["eps-prescription-status-update-monorepo"], - "files.exclude": { - "packages/": true - }, - "cSpell.words": [ - "apigw", - "ASID", - "AWSKMS", - "Caldicott", - "canonicalise", - "Canonicaliser", - "canonicalization", - "Canonicalized", - "Codeable", - "codeinline", - "codesystem", - "devcontainer", - "eps-prescription-status-update-api", - "esbuild", - "fhir", - "Formik", - "Fulfillment", - "gsul", - "Hashable", - "healthcheck", - "Helpdesk", - "homecare", - "HSCN", - "liter", - "milliliter", - "NHSD", - "nhsdlogin", - "nhslogin", - "NOSONAR", - "OIDC", - "Orthoptist", - "Payor", - "pino", - "pollable", - "powertools", - "Prosthetist", - "querystring", - "reingest", - "reingested", - "Reingestion", - "serialisation", - "smartcard", - "smartcards", - "Snomed", - "sourcetype", - "Truststore", - "URID", - "URPID", - "uuidv4", - "vars", - "versionable", - "whens" - ], - "cSpell.dictionaries": ["en-GB"], - "cSpell.ignorePaths": ["package-lock.json", "node_modules", ".vscode"], - "jest.jestCommandLine": "NODE_OPTIONS=--experimental-vm-modules node_modules/.bin/jest --no-cache", - "jest.nodeEnv": { - "POWERTOOLS_DEV": true - } - }, - "extensions": { - "recommendations": [ - "AmazonWebServices.aws-toolkit-vscode", - "redhat.vscode-yaml", - "ms-python.python", - "ms-python.flake8", - "eamodio.gitlens", - "github.vscode-pull-request-github", - "orta.vscode-jest", - "42crunch.vscode-openapi", - "mermade.openapi-lint", - "rvest.vs-code-prettier-eslint", - "redhat.vscode-yaml", - "christian-kohler.npm-intellisense", - "dbaeumer.vscode-eslint", - "lfm.vscode-makefile-term", - "GrapeCity.gc-excelviewer", - "redhat.vscode-xml", - "streetsidesoftware.code-spell-checker", - "timonwong.shellcheck", - "mkhl.direnv", - "tamasfe.even-better-toml" - ] - } + "folders": [ + { + "name": "eps-prescription-status-update-monorepo", + "path": ".." + }, + { + "name": "packages/specification", + "path": "../packages/specification" + }, + { + "name": "packages/updatePrescriptionStatus", + "path": "../packages/updatePrescriptionStatus" + }, + { + "name": "packages/gsul", + "path": "../packages/gsul" + }, + { + "name": "packages/sandbox", + "path": "../packages/sandbox" + } + ], + "settings": { + "jest.disabledWorkspaceFolders": [ + "eps-prescription-status-update-monorepo" + ], + "files.exclude": { + "packages/": true, + }, + "cSpell.words": [ + "apigw", + "ASID", + "AWSKMS", + "Caldicott", + "canonicalise", + "Canonicaliser", + "canonicalization", + "Canonicalized", + "Codeable", + "codeinline", + "codesystem", + "devcontainer", + "eps-prescription-status-update-api", + "esbuild", + "fhir", + "Formik", + "Fulfillment", + "Hashable", + "healthcheck", + "Helpdesk", + "homecare", + "HSCN", + "liter", + "milliliter", + "NHSD", + "nhsdlogin", + "nhslogin", + "NOSONAR", + "OIDC", + "Orthoptist", + "Payor", + "pino", + "pollable", + "powertools", + "Prosthetist", + "querystring", + "reingest", + "reingested", + "Reingestion", + "serialisation", + "smartcard", + "smartcards", + "Snomed", + "sourcetype", + "Truststore", + "URID", + "URPID", + "uuidv4", + "vars", + "versionable", + "whens" + ], + "cSpell.dictionaries": [ + "en-GB" + ], + "cSpell.ignorePaths": [ + "package-lock.json", + "node_modules", + ".vscode" + ] + }, + "extensions": { + "recommendations": [ + "AmazonWebServices.aws-toolkit-vscode", + "redhat.vscode-yaml", + "ms-python.python", + "ms-python.flake8", + "eamodio.gitlens", + "github.vscode-pull-request-github", + "orta.vscode-jest", + "42crunch.vscode-openapi", + "mermade.openapi-lint", + "rvest.vs-code-prettier-eslint", + "redhat.vscode-yaml", + "christian-kohler.npm-intellisense", + "dbaeumer.vscode-eslint", + "lfm.vscode-makefile-term", + "GrapeCity.gc-excelviewer", + "redhat.vscode-xml", + "streetsidesoftware.code-spell-checker", + "timonwong.shellcheck", + "mkhl.direnv", + "tamasfe.even-better-toml" + ] + } } diff --git a/Makefile b/Makefile index 130752799..cd6c7848b 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ sam-validate: sam-validate-sandbox: sam validate --template-file SAMtemplates/sandbox_template.yaml --region eu-west-2 -sam-deploy-package: guard-artifact_bucket guard-artifact_bucket_prefix guard-stack_name guard-template_file guard-cloud_formation_execution_role guard-LATEST_TRUSTSTORE_VERSION guard-enable_mutual_tls guard-VERSION_NUMBER guard-COMMIT_ID guard-VERSION_NUMBER guard-LOG_RETENTION_DAYS guard-TARGET_ENVIRONMENT +sam-deploy-package: guard-artifact_bucket guard-artifact_bucket_prefix guard-stack_name guard-template_file guard-cloud_formation_execution_role guard-LATEST_TRUSTSTORE_VERSION guard-enable_mutual_tls guard-VERSION_NUMBER guard-LOG_RETENTION_DAYS guard-TARGET_ENVIRONMENT sam deploy \ --template-file $$template_file \ --stack-name $$stack_name \ @@ -84,8 +84,6 @@ sam-deploy-package: guard-artifact_bucket guard-artifact_bucket_prefix guard-sta TruststoreVersion=$$LATEST_TRUSTSTORE_VERSION \ EnableMutualTLS=$$enable_mutual_tls \ EnableSplunk=true \ - VersionNumber=$$VERSION_NUMBER \ - CommitId=$$COMMIT_ID \ LogLevel=$$LOG_LEVEL \ LogRetentionInDays=$$LOG_RETENTION_DAYS \ Env=$$TARGET_ENVIRONMENT @@ -96,11 +94,10 @@ compile-node: compile: compile-node lint-node: compile-node + npm run lint --workspace packages/specification npm run lint --workspace packages/updatePrescriptionStatus npm run lint --workspace packages/gsul npm run lint --workspace packages/sandbox - npm run lint --workspace packages/specification - npm run lint --workspace packages/statusLambda lint-samtemplates: poetry run cfn-lint -t SAMtemplates/**/*.yaml @@ -121,7 +118,6 @@ test: compile npm run test --workspace packages/gsul npm run test --workspace packages/sandbox npm run test --workspace packages/specification - npm run test --workspace packages/statusLambda clean: rm -rf packages/updatePrescriptionStatus/coverage @@ -130,8 +126,6 @@ clean: rm -rf packages/sandbox/lib rm -rf packages/specification/coverage rm -rf packages/specification/lib - rm -rf packages/statusLambda/coverage - rm -rf packages/statusLambda/lib rm -rf .aws-sam deep-clean: clean diff --git a/README.md b/README.md index 971485638..fc1afc4fd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ This is the AWS layer that provides an API for EPS Prescription Status Update. - `packages/updatePrescriptionStatus/` Handles updating prescription status for the root endpoint. - `packages/sandbox` A sandbox endpoint returning an example response. - `packages/specification/` This [Open API Specification](https://swagger.io/docs/specification/about/) describes the endpoints, methods and messages. -- `packages/statusLambda/` Returns the status of the updatePrescriptionStatus endpoint - `scripts/` Utilities helpful to developers of this specification. - `SAMtemplates/` Contains the SAM templates used to define the stacks. - `.devcontainer` Contains a dockerfile and vscode devcontainer definition. @@ -162,7 +161,7 @@ These are used to do common commands - `test` Runs unit tests for all code #### Publish targets -- `publish` Outputs the specification as a **single file** into the `dist/` directory. This is used when uploading to Apigee, which requires the spec as a single file. +- `publish` Outputs the specification as a **single file** into the `build/` directory. This is used when uploading to Apigee, which requires the spec as a single file. #### Compiling diff --git a/SAMtemplates/apis/main.yaml b/SAMtemplates/apis/main.yaml index 478be6fb0..0f543fd16 100644 --- a/SAMtemplates/apis/main.yaml +++ b/SAMtemplates/apis/main.yaml @@ -22,14 +22,6 @@ Parameters: Type: String Default: none - StatusLambdaFunctionName: - Type: String - Default: none - - StatusLambdaFunctionArn: - Type: String - Default: none - LogRetentionInDays: Type: Number @@ -206,40 +198,18 @@ Resources: MethodResponses: - StatusCode: '200' - StatusLambdaMethodResource: - Type: AWS::ApiGateway::Resource - Properties: - RestApiId: !Ref RestApiGateway - ParentId: !GetAtt RestApiGateway.RootResourceId - PathPart: _status - - StatusLambdaMethod: - Type: AWS::ApiGateway::Method - Properties: - RestApiId: !Ref RestApiGateway - ResourceId: !Ref StatusLambdaMethodResource - HttpMethod: GET - AuthorizationType: NONE - Integration: - Type: AWS_PROXY - Credentials: !GetAtt RestApiGatewayResources.Outputs.ApiGwRoleArn - IntegrationHttpMethod: POST - Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${StatusLambdaFunctionArn}/invocations - - # if you add a new endpoint, then change the stage name RestApiGatewayDeployment: Type: AWS::ApiGateway::Deployment DependsOn: - UpdatePrescriptionStatusMethod - - StatusLambdaMethod Properties: RestApiId: !Ref RestApiGateway - StageName: prod-v1 RestApiGatewayStage: Type: AWS::ApiGateway::Stage Properties: RestApiId: !Ref RestApiGateway + StageName: prod DeploymentId: !Ref RestApiGatewayDeployment TracingEnabled: true AccessLogSetting: @@ -261,7 +231,6 @@ Resources: AdditionalPolicies: !Join - ',' - - Fn::ImportValue: !Sub ${StackName}:state-machines:${UpdatePrescriptionStatusStateMachineName}:ExecuteStateMachinePolicy - - Fn::ImportValue: !Sub ${StackName}:functions:${StatusLambdaFunctionName}:ExecuteLambdaPolicyArn ApiName: !Sub ${StackName}-apigw LogRetentionInDays: !Ref LogRetentionInDays EnableSplunk: !Ref EnableSplunk diff --git a/SAMtemplates/functions/lambda_resources.yaml b/SAMtemplates/functions/lambda_resources.yaml index 81534640e..df8aaeb92 100644 --- a/SAMtemplates/functions/lambda_resources.yaml +++ b/SAMtemplates/functions/lambda_resources.yaml @@ -62,7 +62,7 @@ Resources: Action: - lambda:InvokeFunction Resource: - - !Sub ${LambdaArn}* + - !Sub ${LambdaArn}:* LambdaRole: Type: AWS::IAM::Role diff --git a/SAMtemplates/functions/main.yaml b/SAMtemplates/functions/main.yaml index 0e65ef77c..5cefcbea6 100644 --- a/SAMtemplates/functions/main.yaml +++ b/SAMtemplates/functions/main.yaml @@ -34,12 +34,6 @@ Parameters: EnableSplunk: Type: String - VersionNumber: - Type: String - - CommitId: - Type: String - Resources: UpdatePrescriptionStatus: Type: AWS::Serverless::Function @@ -119,45 +113,6 @@ Resources: SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole SplunkDeliveryStreamArn: !ImportValue lambda-resources:SplunkDeliveryStream - StatusLambdaFunction: - Type: AWS::Serverless::Function - Properties: - FunctionName: !Sub ${StackName}-statusLambda - CodeUri: ../../packages - Handler: statusLambda.handler - Role: !GetAtt StatusLambdaFunctionResources.Outputs.LambdaRoleArn - Environment: - Variables: - VERSION_NUMBER: !Ref VersionNumber - COMMIT_ID: !Ref CommitId - Metadata: - BuildMethod: esbuild - BuildProperties: - Minify: true - Target: es2020 - Sourcemap: true - tsconfig: statusLambda/tsconfig.json - EntryPoints: - - statusLambda/src/statusLambda.ts - - StatusLambdaFunctionResources: - Type: AWS::Serverless::Application - Properties: - Location: lambda_resources.yaml - Parameters: - StackName: !Ref StackName - LambdaName: !Sub ${StackName}-statusLambda - LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${StackName}-statusLambda - IncludeAdditionalPolicies: true - AdditionalPolicies: !Join - - "," - - - !ImportValue account-resources:LambdaAccessSecretsPolicy - LogRetentionInDays: !Ref LogRetentionInDays - CloudWatchKMSKeyId: !ImportValue account-resources:CloudwatchLogsKmsKeyArn - EnableSplunk: !Ref EnableSplunk - SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole - SplunkDeliveryStreamArn: !ImportValue lambda-resources:SplunkDeliveryStream - Outputs: UpdatePrescriptionStatusFunctionName: Description: The function name of the UpdatePrescriptionStatus lambda @@ -176,11 +131,3 @@ Outputs: Value: !GetAtt GetStatusUpdates.Arn Export: Name: !Sub ${StackName}:functions:GetStatusUpdates:FunctionArn - - StatusLambdaFunctionName: - Description: The function name of the Status lambda - Value: !Ref StatusLambdaFunction - - StatusLambdaFunctionArn: - Description: The function ARN of the Status lambda - Value: !GetAtt StatusLambdaFunction.Arn diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index 177798b25..dc47c2a50 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -1,7 +1,8 @@ -AWSTemplateFormatVersion: "2010-09-09" +AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: | PSU resources + # Params passed from the Makefile Parameters: EnableMutualTLS: @@ -45,7 +46,7 @@ Parameters: - 2922 - 3288 - 3653 - + EnableSplunk: Type: String Default: false @@ -53,14 +54,6 @@ Parameters: - true - false - VersionNumber: - Type: String - Default: "xxx" - - CommitId: - Type: String - Default: "xxx" - Resources: Tables: Type: AWS::Serverless::Application @@ -68,7 +61,7 @@ Resources: Location: tables/main.yaml Parameters: StackName: !Ref AWS::StackName - + Apis: Type: AWS::Serverless::Application Properties: @@ -79,11 +72,9 @@ Resources: TruststoreVersion: !Ref TruststoreVersion UpdatePrescriptionStatusStateMachineName: !GetAtt StateMachines.Outputs.UpdatePrescriptionStatusStateMachineName UpdatePrescriptionStatusStateMachineArn: !GetAtt StateMachines.Outputs.UpdatePrescriptionStatusStateMachineArn - StatusLambdaFunctionName: !GetAtt Functions.Outputs.StatusLambdaFunctionName - StatusLambdaFunctionArn: !GetAtt Functions.Outputs.StatusLambdaFunctionArn LogRetentionInDays: !Ref LogRetentionInDays EnableSplunk: !Ref EnableSplunk - + Functions: Type: AWS::Serverless::Application Properties: @@ -94,9 +85,7 @@ Resources: LogLevel: !Ref LogLevel LogRetentionInDays: !Ref LogRetentionInDays EnableSplunk: !Ref EnableSplunk - VersionNumber: !Ref VersionNumber - CommitId: !Ref CommitId - + StateMachines: Type: AWS::Serverless::Application Properties: diff --git a/SAMtemplates/sandbox_template.yaml b/SAMtemplates/sandbox_template.yaml index a0e8720fd..050e5b140 100644 --- a/SAMtemplates/sandbox_template.yaml +++ b/SAMtemplates/sandbox_template.yaml @@ -10,7 +10,7 @@ Globals: MemorySize: 256 Architectures: - x86_64 - Runtime: nodejs20.x + Runtime: nodejs18.x Environment: Variables: NODE_OPTIONS: --enable-source-maps diff --git a/package-lock.json b/package-lock.json index 2b238d879..e837a676a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,10 @@ "version": "1.0.0", "license": "MIT", "workspaces": [ - "packages/gsul", - "packages/sandbox", "packages/specification", - "packages/statusLambda", - "packages/updatePrescriptionStatus" + "packages/updatePrescriptionStatus", + "packages/gsul", + "packages/sandbox" ], "dependencies": { "esbuild": "^0.20.1" @@ -341,41 +340,6 @@ } } }, - "node_modules/@aws-lambda-powertools/parameters": { - "version": "2.1.0", - "license": "MIT-0", - "dependencies": { - "@aws-lambda-powertools/commons": "^2.1.0" - }, - "peerDependencies": { - "@aws-sdk/client-appconfigdata": ">=3.x", - "@aws-sdk/client-dynamodb": ">=3.x", - "@aws-sdk/client-secrets-manager": ">=3.x", - "@aws-sdk/client-ssm": ">=3.x", - "@aws-sdk/util-dynamodb": ">=3.x", - "@middy/core": ">=3.x" - }, - "peerDependenciesMeta": { - "@aws-sdk/client-appconfigdata": { - "optional": true - }, - "@aws-sdk/client-dynamodb": { - "optional": true - }, - "@aws-sdk/client-secrets-manager": { - "optional": true - }, - "@aws-sdk/client-ssm": { - "optional": true - }, - "@aws-sdk/util-dynamodb": { - "optional": true - }, - "@middy/core": { - "optional": true - } - } - }, "node_modules/@aws-sdk/client-dynamodb": { "version": "3.564.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.564.0.tgz", @@ -952,19 +916,83 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", + "version": "7.23.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { - "version": "7.24.4", + "version": "7.23.5", "dev": true, "license": "MIT", "engines": { @@ -972,19 +1000,19 @@ } }, "node_modules/@babel/core": { - "version": "7.24.4", + "version": "7.24.0", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", + "@babel/traverse": "^7.24.0", "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -1009,13 +1037,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.4", + "version": "7.23.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -1077,11 +1105,11 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", + "version": "7.22.15", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1136,7 +1164,7 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", + "version": "7.23.4", "dev": true, "license": "MIT", "engines": { @@ -1160,12 +1188,12 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.4", + "version": "7.24.0", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", + "@babel/traverse": "^7.24.0", "@babel/types": "^7.24.0" }, "engines": { @@ -1173,14 +1201,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.24.2", + "version": "7.23.4", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" @@ -1251,7 +1278,7 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.4", + "version": "7.24.0", "dev": true, "license": "MIT", "bin": { @@ -1317,11 +1344,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", + "version": "7.23.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1411,11 +1438,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.1", + "version": "7.23.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1426,8 +1453,7 @@ }, "node_modules/@babel/runtime": { "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1449,17 +1475,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.1", + "version": "7.24.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", + "@babel/parser": "^7.24.0", "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" @@ -1652,8 +1678,7 @@ }, "node_modules/@fluent/syntax": { "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.18.1.tgz", - "integrity": "sha512-h0dnIoIg1RwUZRKynTizlVCe0v5qAO9d92ugmRi8sVMM15mwwftf7dpEKdDRc/pybbrpDhmvZRykEel0Cs/RYg==", + "license": "Apache-2.0", "engines": { "node": ">=12.0.0", "npm": ">=7.0.0" @@ -1705,7 +1730,7 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", + "version": "2.0.2", "dev": true, "license": "BSD-3-Clause" }, @@ -2126,8 +2151,7 @@ }, "node_modules/@middy/util": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@middy/util/-/util-5.3.2.tgz", - "integrity": "sha512-/Y5xxPwkQAigphYmJhThN6TGQCCFgybOYYK7SfiEr8cY7IhYnTys2uyTJR7ziS5jP82zNlgE9H5ZEj6IswHOKQ==", + "license": "MIT", "engines": { "node": ">=18" }, @@ -2138,8 +2162,7 @@ }, "node_modules/@middy/validator": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@middy/validator/-/validator-5.3.2.tgz", - "integrity": "sha512-fI1s7gFoYP8144b41VZOE0cJQjMpoNGydSHPoNMeTbvNedM8uHhxeIJR8fVi9LPweGzh3GdzGMGttglHuZsy5w==", + "license": "MIT", "dependencies": { "@middy/util": "5.3.2", "ajv": "8.12.0", @@ -2160,8 +2183,7 @@ }, "node_modules/@middy/validator/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -2175,16 +2197,14 @@ }, "node_modules/@middy/validator/node_modules/ajv-errors": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "license": "MIT", "peerDependencies": { "ajv": "^8.0.1" } }, "node_modules/@middy/validator/node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -2194,8 +2214,7 @@ }, "node_modules/@middy/validator/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==" + "license": "MIT" }, "node_modules/@nhs/fhir-middy-error-handler": { "version": "2.0.3", @@ -2239,7 +2258,7 @@ } }, "node_modules/@octokit/auth-token": { - "version": "5.1.1", + "version": "5.0.1", "dev": true, "license": "MIT", "engines": { @@ -2247,7 +2266,7 @@ } }, "node_modules/@octokit/core": { - "version": "6.1.2", + "version": "6.0.1", "dev": true, "license": "MIT", "dependencies": { @@ -2255,7 +2274,7 @@ "@octokit/graphql": "^8.0.0", "@octokit/request": "^9.0.0", "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.0.0", + "@octokit/types": "^12.0.0", "before-after-hook": "^3.0.2", "universal-user-agent": "^7.0.0" }, @@ -2264,11 +2283,11 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.1.1", + "version": "10.0.0", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^12.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -2276,12 +2295,12 @@ } }, "node_modules/@octokit/graphql": { - "version": "8.1.1", + "version": "8.0.1", "dev": true, "license": "MIT", "dependencies": { "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/types": "^12.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -2289,16 +2308,16 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "22.1.0", + "version": "20.0.0", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.1.1", + "version": "10.0.0", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.4.0" + "@octokit/types": "^12.6.0" }, "engines": { "node": ">= 18" @@ -2308,12 +2327,12 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "7.1.0", + "version": "7.0.3", "dev": true, "license": "MIT", "dependencies": { "@octokit/request-error": "^6.0.0", - "@octokit/types": "^13.0.0", + "@octokit/types": "^12.0.0", "bottleneck": "^2.15.3" }, "engines": { @@ -2324,11 +2343,11 @@ } }, "node_modules/@octokit/plugin-throttling": { - "version": "9.2.0", + "version": "9.0.3", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^12.6.0", "bottleneck": "^2.15.3" }, "engines": { @@ -2339,13 +2358,13 @@ } }, "node_modules/@octokit/request": { - "version": "9.1.1", + "version": "9.0.1", "dev": true, "license": "MIT", "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.1.0", + "@octokit/types": "^12.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -2353,22 +2372,22 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.1", + "version": "6.0.2", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0" + "@octokit/types": "^12.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/types": { - "version": "13.4.1", + "version": "12.6.0", "dev": true, "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^22.1.0" + "@octokit/openapi-types": "^20.0.0" } }, "node_modules/@pkgr/core": { @@ -2465,12 +2484,12 @@ } }, "node_modules/@semantic-release/github": { - "version": "10.0.3", + "version": "10.0.2", "dev": true, "license": "MIT", "dependencies": { "@octokit/core": "^6.0.0", - "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-paginate-rest": "^10.0.0", "@octokit/plugin-retry": "^7.0.0", "@octokit/plugin-throttling": "^9.0.0", "@semantic-release/error": "^4.0.0", @@ -2825,6 +2844,17 @@ "semantic-release": ">=20.1.0" } }, + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "dev": true, @@ -3404,7 +3434,7 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.11", + "version": "1.0.9", "dev": true, "license": "MIT" }, @@ -3510,9 +3540,8 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.12.7", @@ -3529,9 +3558,8 @@ }, "node_modules/@types/semver": { "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/sinon": { "version": "10.0.20", @@ -3571,9 +3599,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", - "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.7.1", @@ -3651,9 +3678,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", - "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "7.7.1", "@typescript-eslint/utils": "7.7.1", @@ -3719,9 +3745,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.15", @@ -3807,7 +3832,7 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", + "version": "7.1.0", "dev": true, "license": "MIT", "dependencies": { @@ -3845,8 +3870,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -3861,8 +3885,7 @@ }, "node_modules/ajv-formats-draft2019": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ajv-formats-draft2019/-/ajv-formats-draft2019-1.6.1.tgz", - "integrity": "sha512-JQPvavpkWDvIsBp2Z33UkYCtXCSpW4HD3tAZ+oL4iEFOk9obQZffx0yANwECt6vzr6ET+7HN5czRyqXbnq/u0Q==", + "license": "MIT", "dependencies": { "punycode": "^2.1.1", "schemes": "^1.4.0", @@ -3875,8 +3898,7 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -3890,13 +3912,11 @@ }, "node_modules/ajv-formats/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==" + "license": "MIT" }, "node_modules/ajv-ftl-i18n": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ajv-ftl-i18n/-/ajv-ftl-i18n-0.1.1.tgz", - "integrity": "sha512-bJwD8xsGqeI3CvLv1lWdJAGaXoEG8PlDqzx1W5U87pWvEhQR+DqnTZsRQpAo736t9haWR06ECtyJA3GTO/Zphw==", + "license": "MIT", "dependencies": { "commander": "10.0.0", "fluent-transpiler": "0.2.1" @@ -3911,8 +3931,7 @@ }, "node_modules/ajv-ftl-i18n/node_modules/commander": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "license": "MIT", "engines": { "node": ">=14" } @@ -4000,21 +4019,6 @@ "dev": true, "license": "MIT" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-find-index": { "version": "1.0.2", "dev": true, @@ -4030,32 +4034,10 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", "dev": true, "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/asap": { @@ -4063,10 +4045,6 @@ "dev": true, "license": "MIT" }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "dev": true, @@ -4096,7 +4074,7 @@ } }, "node_modules/aws-sdk": { - "version": "2.1601.0", + "version": "2.1579.0", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -4126,27 +4104,6 @@ "tslib": "^2.1.0" } }, - "node_modules/axios": { - "version": "1.6.8", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios-mock-adapter": { - "version": "1.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "is-buffer": "^2.0.5" - }, - "peerDependencies": { - "axios": ">= 0.17.0" - } - }, "node_modules/babel-jest": { "version": "29.7.0", "dev": true, @@ -4296,9 +4253,8 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -4411,8 +4367,7 @@ }, "node_modules/camel-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -4426,7 +4381,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001611", + "version": "1.0.30001597", "dev": true, "funding": [ { @@ -4446,8 +4401,7 @@ }, "node_modules/capital-case": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -4470,8 +4424,7 @@ }, "node_modules/change-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -4578,7 +4531,7 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", + "version": "0.6.3", "dev": true, "license": "MIT", "dependencies": { @@ -4611,129 +4564,33 @@ "readable-stream": "^4.0.0" } }, - "node_modules/cloneable-readable/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/co": { + "version": "4.6.0", + "dev": true, "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/cloneable-readable/node_modules/events": { - "version": "3.3.0", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.8.x" + "node": ">=7.0.0" } }, - "node_modules/cloneable-readable/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/cloneable-readable/node_modules/readable-stream": { - "version": "4.5.2", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/cloneable-readable/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/cloneable-readable/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" }, "node_modules/commander": { "version": "3.0.2", @@ -4742,9 +4599,8 @@ }, "node_modules/common-tags": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -4774,8 +4630,7 @@ }, "node_modules/constant-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -4970,54 +4825,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/debug": { "version": "4.3.4", "dev": true, @@ -5050,7 +4857,7 @@ } }, "node_modules/dedent": { - "version": "1.5.3", + "version": "1.5.1", "dev": true, "license": "MIT", "peerDependencies": { @@ -5099,29 +4906,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "dev": true, @@ -5168,14 +4952,12 @@ }, "node_modules/discontinuous-range": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==" + "license": "MIT" }, "node_modules/dlv": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/doctrine": { "version": "3.0.0", @@ -5190,8 +4972,7 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -5216,8 +4997,35 @@ "readable-stream": "^2.0.2" } }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/electron-to-chromium": { - "version": "1.4.740", + "version": "1.4.708", "dev": true, "license": "ISC" }, @@ -5393,65 +5201,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.23.3", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.0", "dev": true, @@ -5471,46 +5220,6 @@ "node": ">= 0.4" } }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/esbuild": { "version": "0.20.2", "hasInstallScript": true, @@ -5838,17 +5547,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/exit": { "version": "0.1.2", "dev": true, @@ -5873,8 +5571,7 @@ }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -5922,8 +5619,7 @@ }, "node_modules/fast-uri": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.3.0.tgz", - "integrity": "sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==" + "license": "MIT" }, "node_modules/fast-xml-parser": { "version": "4.2.5", @@ -6059,8 +5755,7 @@ }, "node_modules/fluent-transpiler": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fluent-transpiler/-/fluent-transpiler-0.2.1.tgz", - "integrity": "sha512-pdF72/XOg0NHj97E3aXu9k5PI8FmpRRrk4HMDeo9KRm7eoNczBTHnQjQMuqsAJ06ejT9teAA5fL8qUIhtUe6oA==", + "license": "MIT", "dependencies": { "@fluent/syntax": "0.18.1", "change-case": "4.1.2", @@ -6072,28 +5767,9 @@ }, "node_modules/fluent-transpiler/node_modules/commander": { "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "license": "MIT", "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": "^12.20.0 || >=14" } }, "node_modules/for-each": { @@ -6104,18 +5780,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/form-data": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/from2": { "version": "2.3.0", "dev": true, @@ -6125,6 +5789,33 @@ "readable-stream": "^2.0.0" } }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/fs-extra": { "version": "11.2.0", "dev": true, @@ -6162,31 +5853,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "dev": true, @@ -6229,30 +5895,14 @@ } }, "node_modules/get-stream": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", + "version": "6.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/git-log-parser": { @@ -6345,25 +5995,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -6426,9 +6061,8 @@ }, "node_modules/has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -6438,21 +6072,12 @@ }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "license": "MIT", @@ -6520,8 +6145,7 @@ }, "node_modules/header-case": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "license": "MIT", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -6617,7 +6241,7 @@ } }, "node_modules/import-from-esm": { - "version": "1.3.4", + "version": "1.3.3", "dev": true, "license": "MIT", "dependencies": { @@ -6701,19 +6325,6 @@ "dev": true, "license": "ISC" }, - "node_modules/internal-slot": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/into-stream": { "version": "7.0.0", "dev": true, @@ -6744,74 +6355,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "dev": true, "license": "MIT" }, - "node_modules/is-bigint": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/is-callable": { "version": "1.2.7", "dev": true, @@ -6834,34 +6382,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "dev": true, @@ -6910,17 +6430,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "dev": true, @@ -6929,20 +6438,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-obj": { "version": "2.0.0", "dev": true, @@ -6959,35 +6454,6 @@ "node": ">=8" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "dev": true, @@ -6999,34 +6465,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-text-path": { "version": "2.0.0", "dev": true, @@ -7063,17 +6501,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/isarray": { "version": "1.0.0", "dev": true, @@ -7769,8 +7196,7 @@ }, "node_modules/json-schema-to-ts": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.0.1.tgz", - "integrity": "sha512-ANphQxnKbzLWPeYDmdoci8C9g9ttpfMx8etTlJJ8UCEmNXH9jxGkn3AAbMe+lR4N5OG/01nYxPrDyugLdsRt+A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "ts-algebra": "^1.2.2" @@ -8094,9 +7520,8 @@ }, "node_modules/loglevel": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" }, @@ -8107,9 +7532,8 @@ }, "node_modules/loglevel-colored-level-prefix": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", - "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^1.1.3", "loglevel": "^1.4.1" @@ -8117,27 +7541,24 @@ }, "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -8151,18 +7572,16 @@ }, "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -8172,17 +7591,15 @@ }, "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -8253,9 +7670,12 @@ } }, "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "6.2.1", + "version": "6.2.0", "dev": true, "license": "MIT", + "dependencies": { + "type-fest": "^3.0.0" + }, "engines": { "node": ">=14.16" }, @@ -8274,6 +7694,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "3.13.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/meow": { "version": "12.1.1", "dev": true, @@ -8324,23 +7755,6 @@ "node": ">=16" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "dev": true, @@ -8351,9 +7765,8 @@ }, "node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8392,8 +7805,7 @@ }, "node_modules/moo": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + "license": "BSD-3-Clause" }, "node_modules/ms": { "version": "2.1.2", @@ -8417,8 +7829,7 @@ }, "node_modules/nearley": { "version": "2.20.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "license": "MIT", "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", @@ -8438,8 +7849,7 @@ }, "node_modules/nearley/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", @@ -8473,8 +7883,7 @@ }, "node_modules/no-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -8555,7 +7964,7 @@ } }, "node_modules/npm": { - "version": "10.5.2", + "version": "10.5.0", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -8564,7 +7973,6 @@ "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/promise-spawn", - "@npmcli/redact", "@npmcli/run-script", "@sigstore/tuf", "abbrev", @@ -8643,28 +8051,27 @@ "@npmcli/arborist": "^7.2.1", "@npmcli/config": "^8.0.2", "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.6", - "@npmcli/package-json": "^5.0.2", + "@npmcli/map-workspaces": "^3.0.4", + "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.1", - "@npmcli/redact": "^1.1.0", "@npmcli/run-script": "^7.0.4", - "@sigstore/tuf": "^2.3.2", + "@sigstore/tuf": "^2.3.1", "abbrev": "^2.0.0", "archy": "~1.0.0", "cacache": "^18.0.2", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.4", + "cli-table3": "^0.6.3", "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.12", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", "hosted-git-info": "^7.0.1", - "ini": "^4.1.2", - "init-package-json": "^6.0.2", - "is-cidr": "^5.0.5", + "ini": "^4.1.1", + "init-package-json": "^6.0.0", + "is-cidr": "^5.0.3", "json-parse-even-better-errors": "^3.0.1", "libnpmaccess": "^8.0.1", "libnpmdiff": "^6.0.3", @@ -8678,11 +8085,11 @@ "libnpmteam": "^6.0.0", "libnpmversion": "^5.0.1", "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.4", + "minimatch": "^9.0.3", "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^10.1.0", + "node-gyp": "^10.0.1", "nopt": "^7.2.0", "normalize-package-data": "^6.0.0", "npm-audit-report": "^5.0.0", @@ -8690,7 +8097,7 @@ "npm-package-arg": "^11.0.1", "npm-pick-manifest": "^9.0.0", "npm-profile": "^9.0.0", - "npm-registry-fetch": "^16.2.0", + "npm-registry-fetch": "^16.1.0", "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", @@ -8698,12 +8105,12 @@ "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "^3.0.1", + "read": "^2.1.0", "semver": "^7.6.0", - "spdx-expression-parse": "^4.0.0", + "spdx-expression-parse": "^3.0.1", "ssri": "^10.0.5", "supports-color": "^9.4.0", - "tar": "^6.2.1", + "tar": "^6.2.0", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", @@ -8819,7 +8226,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.2.2", + "version": "2.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -8828,14 +8235,14 @@ "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" + "socks-proxy-agent": "^8.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.4.2", + "version": "7.4.0", "dev": true, "inBundle": true, "license": "ISC", @@ -8849,7 +8256,6 @@ "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^1.1.0", "@npmcli/run-script": "^7.0.2", "bin-links": "^4.0.1", "cacache": "^18.0.0", @@ -8857,12 +8263,12 @@ "hosted-git-info": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.4", + "minimatch": "^9.0.0", "nopt": "^7.0.0", "npm-install-checks": "^6.2.0", "npm-package-arg": "^11.0.1", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.2.0", + "npm-registry-fetch": "^16.0.0", "npmlog": "^7.0.1", "pacote": "^17.0.4", "parse-conflict-json": "^3.0.0", @@ -8883,14 +8289,14 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.2.2", + "version": "8.2.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", "ci-info": "^4.0.0", - "ini": "^4.1.2", + "ini": "^4.1.0", "nopt": "^7.0.0", "proc-log": "^3.0.0", "read-package-json-fast": "^3.0.2", @@ -8941,7 +8347,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.5", + "version": "5.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -8976,7 +8382,7 @@ } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.6", + "version": "3.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -9024,7 +8430,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.0.2", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -9065,15 +8471,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@npmcli/redact": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "7.0.4", "dev": true, @@ -9101,19 +8498,19 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.3.1", + "version": "2.2.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/core": { - "version": "1.1.0", + "version": "1.0.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -9122,23 +8519,23 @@ } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", + "version": "0.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.3.0", + "version": "2.2.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/protobuf-specs": "^0.3.0", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -9146,7 +8543,7 @@ } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.3.2", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -9159,14 +8556,14 @@ } }, "node_modules/npm/node_modules/@sigstore/verify": { - "version": "1.2.0", + "version": "1.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -9204,7 +8601,7 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "7.1.1", + "version": "7.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -9292,15 +8689,12 @@ } }, "node_modules/npm/node_modules/binary-extensions": { - "version": "2.3.0", + "version": "2.2.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/brace-expansion": { @@ -9313,7 +8707,7 @@ } }, "node_modules/npm/node_modules/builtins": { - "version": "5.1.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -9381,7 +8775,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.0.5", + "version": "4.0.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -9415,7 +8809,7 @@ } }, "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.4", + "version": "0.6.3", "dev": true, "inBundle": true, "license": "MIT", @@ -9693,16 +9087,16 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "10.3.12", + "version": "10.3.10", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -9727,7 +9121,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/hasown": { - "version": "2.0.2", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -9826,7 +9220,7 @@ } }, "node_modules/npm/node_modules/ini": { - "version": "4.1.2", + "version": "4.1.1", "dev": true, "inBundle": true, "license": "ISC", @@ -9835,15 +9229,15 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.2", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/package-json": "^5.0.0", "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", - "read": "^3.0.1", + "read": "^2.0.0", + "read-package-json": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" @@ -9884,12 +9278,12 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.0.5", + "version": "5.0.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "^4.0.4" + "cidr-regex": "4.0.3" }, "engines": { "node": ">=14" @@ -9992,20 +9386,20 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.3", + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.9", + "version": "6.0.7", "dev": true, "inBundle": true, "license": "ISC", @@ -10013,19 +9407,19 @@ "@npmcli/arborist": "^7.2.1", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.3.0", + "binary-extensions": "^2.2.0", "diff": "^5.1.0", - "minimatch": "^9.0.4", + "minimatch": "^9.0.0", "npm-package-arg": "^11.0.1", "pacote": "^17.0.4", - "tar": "^6.2.1" + "tar": "^6.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.10", + "version": "7.0.8", "dev": true, "inBundle": true, "license": "ISC", @@ -10037,7 +9431,7 @@ "npmlog": "^7.0.1", "pacote": "^17.0.4", "proc-log": "^3.0.0", - "read": "^3.0.1", + "read": "^2.0.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^3.0.1" @@ -10047,7 +9441,7 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.7", + "version": "5.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -10059,33 +9453,33 @@ } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.2", + "version": "10.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.3", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.9", + "version": "6.0.7", "dev": true, "inBundle": true, "license": "ISC", @@ -10100,7 +9494,7 @@ } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.5", + "version": "9.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -10108,7 +9502,7 @@ "ci-info": "^4.0.0", "normalize-package-data": "^6.0.0", "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.2.0", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7", "sigstore": "^2.2.0", @@ -10119,25 +9513,25 @@ } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.2", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.2", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -10191,7 +9585,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.4", + "version": "9.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -10399,7 +9793,7 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "10.1.0", + "version": "10.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -10550,12 +9944,11 @@ } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "16.2.0", + "version": "16.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/redact": "^1.1.0", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", @@ -10663,12 +10056,12 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.10.2", + "version": "1.10.1", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", + "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -10679,7 +10072,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.16", + "version": "6.0.15", "dev": true, "inBundle": true, "license": "MIT", @@ -10738,12 +10131,12 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.1", + "version": "1.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "^3.0.1" + "read": "^2.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -10758,12 +10151,12 @@ } }, "node_modules/npm/node_modules/read": { - "version": "3.0.1", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "^1.0.0" + "mute-stream": "~1.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -10889,17 +10282,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "2.3.0", + "version": "2.2.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" + "@sigstore/verify": "^1.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -10916,7 +10309,7 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.8.3", + "version": "2.8.0", "dev": true, "inBundle": true, "license": "MIT", @@ -10925,17 +10318,17 @@ "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.0.0", + "node": ">= 16.0.0", "npm": ">= 3.0.0" } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.3", + "version": "8.0.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.0.2", "debug": "^4.3.4", "socks": "^2.7.1" }, @@ -10953,16 +10346,6 @@ "spdx-license-ids": "^3.0.0" } }, - "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", "dev": true, @@ -10970,7 +10353,7 @@ "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "4.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -11064,7 +10447,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.2.1", + "version": "6.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -11188,16 +10571,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "5.0.0", "dev": true, @@ -11385,39 +10758,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/obliterator": { "version": "1.6.1", "license": "MIT" @@ -11547,7 +10887,7 @@ } }, "node_modules/p-map": { - "version": "7.0.2", + "version": "7.0.1", "dev": true, "license": "MIT", "engines": { @@ -11577,8 +10917,7 @@ }, "node_modules/param-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -11632,8 +10971,7 @@ }, "node_modules/pascal-case": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -11641,8 +10979,7 @@ }, "node_modules/path-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -11677,7 +11014,7 @@ "license": "MIT" }, "node_modules/path-to-regexp": { - "version": "6.2.2", + "version": "6.2.1", "dev": true, "license": "MIT" }, @@ -11885,9 +11222,8 @@ }, "node_modules/prettier-eslint": { "version": "16.3.0", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.3.0.tgz", - "integrity": "sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/parser": "^6.7.5", "common-tags": "^1.4.0", @@ -11920,9 +11256,8 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", @@ -11948,9 +11283,8 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/scope-manager": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0" @@ -11965,9 +11299,8 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -11978,9 +11311,8 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -12006,9 +11338,8 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" @@ -12023,9 +11354,8 @@ }, "node_modules/prettier-eslint/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -12100,10 +11430,6 @@ "dev": true, "license": "ISC" }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "license": "MIT", @@ -12112,7 +11438,7 @@ } }, "node_modules/pure-rand": { - "version": "6.1.0", + "version": "6.0.4", "dev": true, "funding": [ { @@ -12154,13 +11480,11 @@ }, "node_modules/railroad-diagrams": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==" + "license": "CC0-1.0" }, "node_modules/randexp": { "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "license": "MIT", "dependencies": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" @@ -12293,7 +11617,7 @@ } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.15.0", + "version": "4.12.0", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -12353,7 +11677,7 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.15.0", + "version": "4.12.0", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -12364,19 +11688,66 @@ } }, "node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, + "version": "4.5.2", "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readable-stream/node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/readable-stream/node_modules/events": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=0.8.x" } }, + "node_modules/readable-stream/node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", "dev": true, @@ -12390,25 +11761,7 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/registry-auth-token": { "version": "5.0.2", @@ -12441,9 +11794,8 @@ }, "node_modules/require-relative": { "version": "0.8.7", - "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", - "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", @@ -12498,8 +11850,7 @@ }, "node_modules/ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "license": "MIT", "engines": { "node": ">=0.12" } @@ -12545,53 +11896,28 @@ } ], "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/sandbox": { "resolved": "packages/sandbox", "link": true @@ -12603,8 +11929,7 @@ }, "node_modules/schemes": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/schemes/-/schemes-1.4.0.tgz", - "integrity": "sha512-ImFy9FbCsQlVgnE3TCWmLPCFnVzx0lHL/l+umHplDqAKd0dzFpnS6lFZIpagBlYhKwzVmlV36ec0Y1XTu8JBAQ==", + "license": "MIT", "dependencies": { "extend": "^3.0.0" } @@ -12732,17 +12057,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/hosted-git-info": { "version": "7.0.1", "dev": true, @@ -12929,8 +12243,7 @@ }, "node_modules/sentence-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -12957,20 +12270,6 @@ "node": ">= 0.4" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -12990,23 +12289,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "dev": true, @@ -13159,8 +12441,7 @@ }, "node_modules/smtp-address-parser": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/smtp-address-parser/-/smtp-address-parser-1.0.10.tgz", - "integrity": "sha512-Osg9LmvGeAG/hyao4mldbflLOkkr3a+h4m1lwKCK5U8M6ZAr7tdXEz/+/vr752TSGE4MNUlUl9cIK2cB8cgzXg==", + "license": "MIT", "dependencies": { "nearley": "^2.20.1" }, @@ -13170,8 +12451,7 @@ }, "node_modules/snake-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -13283,10 +12563,6 @@ "node": ">=8" } }, - "node_modules/statusLambda": { - "resolved": "packages/statusLambda", - "link": true - }, "node_modules/stream-combiner2": { "version": "1.1.1", "dev": true, @@ -13296,7 +12572,26 @@ "readable-stream": "^2.0.2" } }, - "node_modules/string_decoder": { + "node_modules/stream-combiner2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-combiner2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-combiner2/node_modules/string_decoder": { "version": "1.1.1", "dev": true, "license": "MIT", @@ -13304,6 +12599,13 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-length": { "version": "4.0.2", "dev": true, @@ -13328,52 +12630,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "license": "MIT", @@ -13608,6 +12864,33 @@ "xtend": "~4.0.1" } }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/time-span": { "version": "5.1.0", "dev": true, @@ -13647,14 +12930,9 @@ } }, "node_modules/traverse": { - "version": "0.6.9", + "version": "0.6.8", "dev": true, "license": "MIT", - "dependencies": { - "gopd": "^1.0.1", - "typedarray.prototype.slice": "^1.0.3", - "which-typed-array": "^1.1.15" - }, "engines": { "node": ">= 0.4" }, @@ -13672,8 +12950,7 @@ }, "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==" + "license": "MIT" }, "node_modules/ts-api-utils": { "version": "1.3.0", @@ -13804,94 +13081,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray.prototype.slice": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-offset": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typescript": { "version": "5.4.5", "dev": true, @@ -13916,20 +13105,6 @@ "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/undici-types": { "version": "5.26.5", "dev": true, @@ -14016,16 +13191,14 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -14118,9 +13291,8 @@ }, "node_modules/vue-eslint-parser": { "version": "9.4.2", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", - "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", @@ -14174,21 +13346,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-module": { "version": "2.0.1", "license": "ISC" @@ -14377,22 +13534,6 @@ "npm": "10.2.x" } }, - "packages/statusLambda": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "@aws-lambda-powertools/commons": "^2.0.4", - "@aws-lambda-powertools/logger": "^2.1.0", - "@aws-lambda-powertools/parameters": "^2.0.4", - "@middy/core": "^5.3.2", - "@middy/input-output-logger": "^5.3.2", - "@nhs/fhir-middy-error-handler": "^2.0.2", - "axios": "^1.6.8" - }, - "devDependencies": { - "axios-mock-adapter": "^1.22.0" - } - }, "packages/updatePrescriptionStatus": { "version": "1.0.0", "license": "MIT", diff --git a/package.json b/package.json index 2fd106062..169868987 100644 --- a/package.json +++ b/package.json @@ -10,15 +10,14 @@ "type": "git", "url": "https://github.com/NHSDigital/eps-prescription-status-update-api" }, - "keywords": [ ], + "keywords": [], "author": "NHS Digital", "license": "MIT", "workspaces": [ - "packages/gsul", - "packages/sandbox", "packages/specification", - "packages/statusLambda", - "packages/updatePrescriptionStatus" + "packages/updatePrescriptionStatus", + "packages/gsul", + "packages/sandbox" ], "devDependencies": { "@semantic-release/changelog": "^6.0.3", diff --git a/packages/statusLambda/.eslintrc b/packages/statusLambda/.eslintrc deleted file mode 100644 index 437314157..000000000 --- a/packages/statusLambda/.eslintrc +++ /dev/null @@ -1,39 +0,0 @@ -{ - "root": true, - "env": { - "node": true - }, - "ignorePatterns": ["**/lib/*"], - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "import-newlines"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "rules": { - "@typescript-eslint/array-type": ["error", {"default": "generic"}], - "@typescript-eslint/consistent-type-assertions": [ - "error", - {"assertionStyle": "as", "objectLiteralTypeAssertions": "never"} - ], - "block-spacing": "error", - "brace-style": ["error", "1tbs"], - "comma-dangle": ["error", "never"], - "comma-spacing": ["error", {"before": false, "after": true}], - "dot-location": ["error", "property"], - "eol-last": ["error", "always"], - "eqeqeq": "error", - "func-call-spacing": "error", - "func-style": ["error", "declaration", {"allowArrowFunctions": true}], - "import-newlines/enforce": ["error", {"items": 3, "max-len": 120, "semi": false}], - "indent": ["error", 2, {"SwitchCase": 1}], - "max-len": ["error", 120], - "no-multi-spaces": "error", - "no-multiple-empty-lines": ["error", {"max": 1}], - "no-trailing-spaces": "error", - "object-curly-spacing": ["error", "never"], - "quotes": ["error", "double", {"allowTemplateLiterals": true, "avoidEscape": true}], - "semi": ["error", "never"] - } -} diff --git a/packages/statusLambda/.vscode/launch.json b/packages/statusLambda/.vscode/launch.json deleted file mode 100644 index 7c9b0b4b3..000000000 --- a/packages/statusLambda/.vscode/launch.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "name": "vscode-jest-tests.v2", - "request": "launch", - "args": [ - "--runInBand", - "--watchAll=false", - "--testNamePattern", - "${jest.testNamePattern}", - "--runTestsByPath", - "${jest.testFile}", - "--config", - "${workspaceFolder}/jest.debug.config.ts" - ], - "cwd": "${workspaceFolder}", - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "disableOptimisticBPs": true, - "program": "${workspaceFolder}/../../node_modules/.bin/jest", - "windows": { - "program": "${workspaceFolder}/node_modules/jest/bin/jest" - }, - "env": { - "POWERTOOLS_DEV": true, - "NODE_OPTIONS": "--experimental-vm-modules" - } - } - ] -} diff --git a/packages/statusLambda/.vscode/settings.json b/packages/statusLambda/.vscode/settings.json deleted file mode 100644 index 350126494..000000000 --- a/packages/statusLambda/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "jest.jestCommandLine": "/workspaces/eps-prescription-status-update-api/node_modules/.bin/jest --no-cache", - "jest.nodeEnv": { - "POWERTOOLS_DEV": true, - "NODE_OPTIONS": "--experimental-vm-modules" - } -} diff --git a/packages/statusLambda/jest.config.ts b/packages/statusLambda/jest.config.ts deleted file mode 100644 index 1ddbc83f6..000000000 --- a/packages/statusLambda/jest.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import defaultConfig from "../../jest.default.config" -import type {JestConfigWithTsJest} from "ts-jest" - -const jestConfig: JestConfigWithTsJest = { - ...defaultConfig, - "rootDir": "./" -} - -export default jestConfig diff --git a/packages/statusLambda/jest.debug.config.ts b/packages/statusLambda/jest.debug.config.ts deleted file mode 100644 index a30627383..000000000 --- a/packages/statusLambda/jest.debug.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import config from "./jest.config" -import type {JestConfigWithTsJest} from "ts-jest" - -const debugConfig: JestConfigWithTsJest = { - ...config, - "preset": "ts-jest" -} - -export default debugConfig diff --git a/packages/statusLambda/package.json b/packages/statusLambda/package.json deleted file mode 100644 index 2b16f1e87..000000000 --- a/packages/statusLambda/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "statusLambda", - "version": "1.0.0", - "description": "Lambda of the _status endpoint", - "main": "statusLambda.js", - "author": "NHS Digital", - "license": "MIT", - "scripts": { - "unit": "POWERTOOLS_DEV=true NODE_OPTIONS=--experimental-vm-modules jest --no-cache --coverage", - "lint": "eslint . --ext .ts --max-warnings 0 --fix", - "compile": "tsc", - "test": "npm run compile && npm run unit", - "check-licenses": "license-checker --failOn GPL --failOn LGPL --start ../.." - }, - "dependencies": { - "@aws-lambda-powertools/commons": "^2.0.4", - "@aws-lambda-powertools/logger": "^2.1.0", - "@aws-lambda-powertools/parameters": "^2.0.4", - "@middy/core": "^5.3.2", - "@middy/input-output-logger": "^5.3.2", - "@nhs/fhir-middy-error-handler": "^2.0.2", - "axios": "^1.6.8" - }, - "devDependencies": { - "axios-mock-adapter": "^1.22.0" - } -} diff --git a/packages/statusLambda/src/statusLambda.ts b/packages/statusLambda/src/statusLambda.ts deleted file mode 100644 index 70106fe1d..000000000 --- a/packages/statusLambda/src/statusLambda.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {APIGatewayProxyEvent, APIGatewayProxyResult} from "aws-lambda" -import {Logger} from "@aws-lambda-powertools/logger" -import {injectLambdaContext} from "@aws-lambda-powertools/logger/middleware" -import middy from "@middy/core" -import inputOutputLogger from "@middy/input-output-logger" -import errorHandler from "@nhs/fhir-middy-error-handler" - -const logger = new Logger({serviceName: "status"}) - -/* eslint-disable max-len */ - -/** - * - * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format - * @param {Object} _event - API Gateway Lambda Proxy Input Format - * - * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html - * @returns {Object} object - API Gateway Lambda Proxy Output Format - * - */ - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -const lambdaHandler = async (event: APIGatewayProxyEvent): Promise => { - logger.appendKeys({ - "x-request-id": event.headers["x-request-id"], - "x-correlation-id": event.headers["x-correlation-id"], - "apigw-request-id": event.requestContext.requestId - }) - - const commitId = process.env.COMMIT_ID - const versionNumber = process.env.VERSION_NUMBER - - const statusBody = {commitId: commitId, versionNumber: versionNumber} - - return { - statusCode: 200, - body: JSON.stringify(statusBody), - headers: { - "Content-Type": "application/health+json", - "Cache-Control": "no-cache" - } - } -} - -export const handler = middy(lambdaHandler) - .use(injectLambdaContext(logger, {clearState: true})) - .use( - inputOutputLogger({ - logger: (request) => { - logger.info(request) - } - }) - ) - .use(errorHandler({logger: logger})) diff --git a/packages/statusLambda/tests/mockAPIGatewayProxyEvent.js b/packages/statusLambda/tests/mockAPIGatewayProxyEvent.js deleted file mode 100644 index ba81073e7..000000000 --- a/packages/statusLambda/tests/mockAPIGatewayProxyEvent.js +++ /dev/null @@ -1,60 +0,0 @@ -const mockAPIGatewayProxyEvent = { - httpMethod: "POST", - body: "", - headers: { - "nhsd-nhslogin-user": "P9:9912003071", - "nhsd-correlation-id": "test-request-id.test-correlation-id.rrt-5789322914740101037-b-aet2-20145-482635-2", - "x-request-id": "test-request-id", - "nhsd-request-id": "test-request-id", - "x-correlation-id": "test-correlation-id" - }, - isBase64Encoded: false, - multiValueHeaders: { }, - multiValueQueryStringParameters: { }, - path: "/hello", - pathParameters: { }, - queryStringParameters: { }, - requestContext: { - accountId: "123456789012", - apiId: "1234", - authorizer: { }, - httpMethod: "POST", - identity: { - accessKey: "", - accountId: "", - apiKey: "", - apiKeyId: "", - caller: "", - clientCert: { - clientCertPem: "", - issuerDN: "", - serialNumber: "", - subjectDN: "", - validity: { - notAfter: "", - notBefore: "" - } - }, - cognitoAuthenticationProvider: "", - cognitoAuthenticationType: "", - cognitoIdentityId: "", - cognitoIdentityPoolId: "", - principalOrgId: "", - sourceIp: "", - user: "", - userAgent: "", - userArn: "" - }, - path: "/", - protocol: "HTTP/1.1", - requestId: "c6af9ac6-7b61-11e6-9a41-93e8deadbeef", - requestTimeEpoch: 1428582896000, - resourceId: "123456", - resourcePath: "/", - stage: "dev" - }, - resource: "", - stageVariables: { } -} - -module.exports = mockAPIGatewayProxyEvent diff --git a/packages/statusLambda/tests/mockContext.js b/packages/statusLambda/tests/mockContext.js deleted file mode 100644 index f3a4138cf..000000000 --- a/packages/statusLambda/tests/mockContext.js +++ /dev/null @@ -1,16 +0,0 @@ -const mockContext = { - callbackWaitsForEmptyEventLoop: true, - functionVersion: "$LATEST", - functionName: "foo-bar-function", - memoryLimitInMB: "128", - logGroupName: "/aws/lambda/foo-bar-function-123456abcdef", - logStreamName: "2021/03/09/[$LATEST]abcdef123456abcdef123456abcdef123456", - invokedFunctionArn: "arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function", - awsRequestId: "c6af9ac6-7b61-11e6-9a41-93e812345678", - getRemainingTimeInMillis: () => 1234, - done: () => console.log("Done!"), - fail: () => console.log("Failed!"), - succeed: () => console.log("Succeeded!") -} - -module.exports = mockContext diff --git a/packages/statusLambda/tests/test-handler.test.ts b/packages/statusLambda/tests/test-handler.test.ts deleted file mode 100644 index 42a3fe18b..000000000 --- a/packages/statusLambda/tests/test-handler.test.ts +++ /dev/null @@ -1,83 +0,0 @@ -import {APIGatewayProxyResult} from "aws-lambda" -import {Logger} from "@aws-lambda-powertools/logger" -import axios from "axios" -import MockAdapter from "axios-mock-adapter" -import { - jest, - expect, - describe, - it -} from "@jest/globals" -import {handler} from "../src/statusLambda" -import mockContext from "./mockContext" -import mockAPIGatewayProxyEvent from "./mockAPIGatewayProxyEvent" - -const mock = new MockAdapter(axios) - -const dummyContext = mockContext - -describe("Unit test for status check", function () { - let originalEnv: {[key: string]: string | undefined} - afterEach(() => { - process.env = {...originalEnv} - mock.reset() - }) - - it("returns commit id from environment", async () => { - process.env.COMMIT_ID = "test_commit_id" - process.env.TargetSpineServer = "sandbox" - - const result: APIGatewayProxyResult = (await handler( - mockAPIGatewayProxyEvent, - dummyContext - )) as APIGatewayProxyResult - - expect(result.statusCode).toEqual(200) - expect(JSON.parse(result.body)).toMatchObject({ - commitId: "test_commit_id" - }) - }) - - it("returns version number from environment", async () => { - process.env.VERSION_NUMBER = "test_version_number" - process.env.TargetSpineServer = "sandbox" - - const result: APIGatewayProxyResult = (await handler( - mockAPIGatewayProxyEvent, - dummyContext - )) as APIGatewayProxyResult - - expect(result.statusCode).toEqual(200) - expect(JSON.parse(result.body)).toMatchObject({ - versionNumber: "test_version_number" - }) - }) - - it("appends trace id's to the logger", async () => { - const mockAppendKeys = jest.spyOn(Logger.prototype, "appendKeys") - - await handler(mockAPIGatewayProxyEvent, dummyContext) - - expect(mockAppendKeys).toHaveBeenCalledWith({ - "x-request-id": "test-request-id", - "x-correlation-id": "test-correlation-id", - "apigw-request-id": "c6af9ac6-7b61-11e6-9a41-93e8deadbeef" - }) - }) - - it("returns no-cache Cache-Control header", async () => { - process.env.COMMIT_ID = "test_commit_id" - process.env.TargetSpineServer = "sandbox" - - const result: APIGatewayProxyResult = (await handler( - mockAPIGatewayProxyEvent, - dummyContext - )) as APIGatewayProxyResult - - const headers = result.headers - - expect(headers).toMatchObject({ - "Cache-Control": "no-cache" - }) - }) -}) diff --git a/packages/statusLambda/tsconfig.json b/packages/statusLambda/tsconfig.json deleted file mode 100644 index bf3b049e5..000000000 --- a/packages/statusLambda/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.defaults.json", - "compilerOptions": { - "rootDir": ".", - "outDir": "lib" - }, - "include": ["src/**/*", "tests/**/*"], - "exclude": ["node_modules"] -} diff --git a/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts b/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts index 19f2dc0ac..1b0beb59c 100644 --- a/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts +++ b/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts @@ -76,7 +76,7 @@ const lambdaHandler = async (event: APIGatewayProxyEvent): Promise { expect(JSON.parse(response.body)).toEqual(bundleWrap([serverError()])) }) - it("when data store update times out, expect 504 status code and relevant error message", async () => { + it("when data store update times out, expect 408 status code and relevant error message", async () => { mockSend.mockImplementation(() => new Promise(() => {})) const event: APIGatewayProxyEvent = generateMockEvent(requestDispatched) @@ -141,7 +141,7 @@ describe("Integration tests for updatePrescriptionStatus handler", () => { await jest.advanceTimersByTimeAsync(LAMBDA_TIMEOUT_MS) const response = await eventHandler - expect(response.statusCode).toBe(504) + expect(response.statusCode).toBe(408) expect(JSON.parse(response.body)).toEqual(bundleWrap([timeoutResponse()])) }) diff --git a/sonar-project.properties b/sonar-project.properties index d1411abed..ed5c684dc 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,5 +2,5 @@ sonar.organization=nhsdigital sonar.projectKey=NHSDigital_eps-prescription-status-update-api sonar.host.url=https://sonarcloud.io -sonar.coverage.exclusions=**/*.test.*,**/mock*,**/jest.*.ts,scripts/* -sonar.javascript.lcov.reportPaths=packages/gsul/coverage/lcov.info,packages/updatePrescriptionStatus/coverage/lcov.info,packages/sandbox/coverage/lcov.info,packages/specification/coverage/lcov.info,packages/statusLambda/coverage/lcov.info +sonar.coverage.exclusions=**/*.test.*,**/jest.config.ts,scripts/*,packages/specification/* +sonar.javascript.lcov.reportPaths=packages/updatePrescriptionStatus/coverage/lcov.info,packages/sandbox/coverage/lcov.info,packages/specification/coverage/lcov.info,packages/gsul/coverage/lcov.info diff --git a/tsconfig.build.json b/tsconfig.build.json index 72be72a7f..6bfc91ada 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -4,9 +4,8 @@ "files": [], // Building this project will build all of the following: "references": [ - { "path": "packages/gsul" }, { "path": "packages/updatePrescriptionStatus" }, - { "path": "packages/sandbox" }, - { "path": "packages/statusLambda" } + { "path": "packages/gsul" }, + { "path": "packages/sandbox" } ] } From b4193021b26e03f78379d3101cbd2ff26d87748d Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:03 +0000 Subject: [PATCH 09/19] Revert "Revert "Update: [AEA-3901] - Create status lambda for PSU API (#105)"" This reverts commit f713397e7f7eb2910047df7b175def5364c58691. --- .pre-commit-config.yaml | 20 +- ...scription-status-update-api.code-workspace | 231 +- Makefile | 10 +- README.md | 3 +- SAMtemplates/apis/main.yaml | 33 +- SAMtemplates/functions/lambda_resources.yaml | 2 +- SAMtemplates/functions/main.yaml | 53 + SAMtemplates/main_template.yaml | 23 +- SAMtemplates/sandbox_template.yaml | 2 +- package-lock.json | 1967 ++++++++++++----- package.json | 9 +- packages/statusLambda/.eslintrc | 39 + packages/statusLambda/.vscode/launch.json | 35 + packages/statusLambda/.vscode/settings.json | 7 + packages/statusLambda/jest.config.ts | 9 + packages/statusLambda/jest.debug.config.ts | 9 + packages/statusLambda/package.json | 27 + packages/statusLambda/src/statusLambda.ts | 54 + .../tests/mockAPIGatewayProxyEvent.js | 60 + packages/statusLambda/tests/mockContext.js | 16 + .../statusLambda/tests/test-handler.test.ts | 83 + packages/statusLambda/tsconfig.json | 9 + .../src/updatePrescriptionStatus.ts | 2 +- .../tests/testHandler.test.ts | 4 +- sonar-project.properties | 4 +- tsconfig.build.json | 5 +- 26 files changed, 2023 insertions(+), 693 deletions(-) create mode 100644 packages/statusLambda/.eslintrc create mode 100644 packages/statusLambda/.vscode/launch.json create mode 100644 packages/statusLambda/.vscode/settings.json create mode 100644 packages/statusLambda/jest.config.ts create mode 100644 packages/statusLambda/jest.debug.config.ts create mode 100644 packages/statusLambda/package.json create mode 100644 packages/statusLambda/src/statusLambda.ts create mode 100644 packages/statusLambda/tests/mockAPIGatewayProxyEvent.js create mode 100644 packages/statusLambda/tests/mockContext.js create mode 100644 packages/statusLambda/tests/test-handler.test.ts create mode 100644 packages/statusLambda/tsconfig.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9c5a7253e..60eec470a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -32,6 +32,15 @@ repos: types_or: [ts, tsx, javascript, jsx, json] pass_filenames: false + - id: lint-gsul + name: Lint gsul + entry: npm + args: ["run", "--prefix=packages/gsul", "lint"] + language: system + files: ^packages\/gsul + types_or: [ts, tsx, javascript, jsx, json] + pass_filenames: false + - id: lint-sandbox name: Lint sandbox entry: npm @@ -41,6 +50,15 @@ repos: types_or: [ts, tsx, javascript, jsx, json] pass_filenames: false + - id: lint-statusLambda + name: Lint statusLambda + entry: npm + args: ["run", "--prefix=packages/statusLambda", "lint"] + language: system + files: ^packages\/statusLambda + types_or: [ts, tsx, javascript, jsx, json] + pass_filenames: false + - id: lint-samtemplates name: Lint sam templates entry: make @@ -48,7 +66,7 @@ repos: language: system files: ^SAMtemplates pass_filenames: false - + - id: lint-githubactions name: Lint github actions entry: make diff --git a/.vscode/eps-prescription-status-update-api.code-workspace b/.vscode/eps-prescription-status-update-api.code-workspace index 80845c46a..a58299015 100644 --- a/.vscode/eps-prescription-status-update-api.code-workspace +++ b/.vscode/eps-prescription-status-update-api.code-workspace @@ -1,117 +1,118 @@ { - "folders": [ - { - "name": "eps-prescription-status-update-monorepo", - "path": ".." - }, - { - "name": "packages/specification", - "path": "../packages/specification" - }, - { - "name": "packages/updatePrescriptionStatus", - "path": "../packages/updatePrescriptionStatus" - }, - { - "name": "packages/gsul", - "path": "../packages/gsul" - }, - { - "name": "packages/sandbox", - "path": "../packages/sandbox" - } - ], - "settings": { - "jest.disabledWorkspaceFolders": [ - "eps-prescription-status-update-monorepo" - ], - "files.exclude": { - "packages/": true, - }, - "cSpell.words": [ - "apigw", - "ASID", - "AWSKMS", - "Caldicott", - "canonicalise", - "Canonicaliser", - "canonicalization", - "Canonicalized", - "Codeable", - "codeinline", - "codesystem", - "devcontainer", - "eps-prescription-status-update-api", - "esbuild", - "fhir", - "Formik", - "Fulfillment", - "Hashable", - "healthcheck", - "Helpdesk", - "homecare", - "HSCN", - "liter", - "milliliter", - "NHSD", - "nhsdlogin", - "nhslogin", - "NOSONAR", - "OIDC", - "Orthoptist", - "Payor", - "pino", - "pollable", - "powertools", - "Prosthetist", - "querystring", - "reingest", - "reingested", - "Reingestion", - "serialisation", - "smartcard", - "smartcards", - "Snomed", - "sourcetype", - "Truststore", - "URID", - "URPID", - "uuidv4", - "vars", - "versionable", - "whens" - ], - "cSpell.dictionaries": [ - "en-GB" - ], - "cSpell.ignorePaths": [ - "package-lock.json", - "node_modules", - ".vscode" - ] - }, - "extensions": { - "recommendations": [ - "AmazonWebServices.aws-toolkit-vscode", - "redhat.vscode-yaml", - "ms-python.python", - "ms-python.flake8", - "eamodio.gitlens", - "github.vscode-pull-request-github", - "orta.vscode-jest", - "42crunch.vscode-openapi", - "mermade.openapi-lint", - "rvest.vs-code-prettier-eslint", - "redhat.vscode-yaml", - "christian-kohler.npm-intellisense", - "dbaeumer.vscode-eslint", - "lfm.vscode-makefile-term", - "GrapeCity.gc-excelviewer", - "redhat.vscode-xml", - "streetsidesoftware.code-spell-checker", - "timonwong.shellcheck", - "mkhl.direnv", - "tamasfe.even-better-toml" - ] - } + "folders": [ + { + "name": "eps-prescription-status-update-monorepo", + "path": ".." + }, + { + "name": "packages/gsul", + "path": "../packages/gsul" + }, + { + "name": "packages/sandbox", + "path": "../packages/sandbox" + }, + { + "name": "packages/specification", + "path": "../packages/specification" + }, + { + "name": "packages/statusLambda", + "path": "../packages/statusLambda" + }, + { + "name": "packages/updatePrescriptionStatus", + "path": "../packages/updatePrescriptionStatus" + } + ], + "settings": { + "jest.disabledWorkspaceFolders": ["eps-prescription-status-update-monorepo"], + "files.exclude": { + "packages/": true + }, + "cSpell.words": [ + "apigw", + "ASID", + "AWSKMS", + "Caldicott", + "canonicalise", + "Canonicaliser", + "canonicalization", + "Canonicalized", + "Codeable", + "codeinline", + "codesystem", + "devcontainer", + "eps-prescription-status-update-api", + "esbuild", + "fhir", + "Formik", + "Fulfillment", + "gsul", + "Hashable", + "healthcheck", + "Helpdesk", + "homecare", + "HSCN", + "liter", + "milliliter", + "NHSD", + "nhsdlogin", + "nhslogin", + "NOSONAR", + "OIDC", + "Orthoptist", + "Payor", + "pino", + "pollable", + "powertools", + "Prosthetist", + "querystring", + "reingest", + "reingested", + "Reingestion", + "serialisation", + "smartcard", + "smartcards", + "Snomed", + "sourcetype", + "Truststore", + "URID", + "URPID", + "uuidv4", + "vars", + "versionable", + "whens" + ], + "cSpell.dictionaries": ["en-GB"], + "cSpell.ignorePaths": ["package-lock.json", "node_modules", ".vscode"], + "jest.jestCommandLine": "NODE_OPTIONS=--experimental-vm-modules node_modules/.bin/jest --no-cache", + "jest.nodeEnv": { + "POWERTOOLS_DEV": true + } + }, + "extensions": { + "recommendations": [ + "AmazonWebServices.aws-toolkit-vscode", + "redhat.vscode-yaml", + "ms-python.python", + "ms-python.flake8", + "eamodio.gitlens", + "github.vscode-pull-request-github", + "orta.vscode-jest", + "42crunch.vscode-openapi", + "mermade.openapi-lint", + "rvest.vs-code-prettier-eslint", + "redhat.vscode-yaml", + "christian-kohler.npm-intellisense", + "dbaeumer.vscode-eslint", + "lfm.vscode-makefile-term", + "GrapeCity.gc-excelviewer", + "redhat.vscode-xml", + "streetsidesoftware.code-spell-checker", + "timonwong.shellcheck", + "mkhl.direnv", + "tamasfe.even-better-toml" + ] + } } diff --git a/Makefile b/Makefile index cd6c7848b..130752799 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ sam-validate: sam-validate-sandbox: sam validate --template-file SAMtemplates/sandbox_template.yaml --region eu-west-2 -sam-deploy-package: guard-artifact_bucket guard-artifact_bucket_prefix guard-stack_name guard-template_file guard-cloud_formation_execution_role guard-LATEST_TRUSTSTORE_VERSION guard-enable_mutual_tls guard-VERSION_NUMBER guard-LOG_RETENTION_DAYS guard-TARGET_ENVIRONMENT +sam-deploy-package: guard-artifact_bucket guard-artifact_bucket_prefix guard-stack_name guard-template_file guard-cloud_formation_execution_role guard-LATEST_TRUSTSTORE_VERSION guard-enable_mutual_tls guard-VERSION_NUMBER guard-COMMIT_ID guard-VERSION_NUMBER guard-LOG_RETENTION_DAYS guard-TARGET_ENVIRONMENT sam deploy \ --template-file $$template_file \ --stack-name $$stack_name \ @@ -84,6 +84,8 @@ sam-deploy-package: guard-artifact_bucket guard-artifact_bucket_prefix guard-sta TruststoreVersion=$$LATEST_TRUSTSTORE_VERSION \ EnableMutualTLS=$$enable_mutual_tls \ EnableSplunk=true \ + VersionNumber=$$VERSION_NUMBER \ + CommitId=$$COMMIT_ID \ LogLevel=$$LOG_LEVEL \ LogRetentionInDays=$$LOG_RETENTION_DAYS \ Env=$$TARGET_ENVIRONMENT @@ -94,10 +96,11 @@ compile-node: compile: compile-node lint-node: compile-node - npm run lint --workspace packages/specification npm run lint --workspace packages/updatePrescriptionStatus npm run lint --workspace packages/gsul npm run lint --workspace packages/sandbox + npm run lint --workspace packages/specification + npm run lint --workspace packages/statusLambda lint-samtemplates: poetry run cfn-lint -t SAMtemplates/**/*.yaml @@ -118,6 +121,7 @@ test: compile npm run test --workspace packages/gsul npm run test --workspace packages/sandbox npm run test --workspace packages/specification + npm run test --workspace packages/statusLambda clean: rm -rf packages/updatePrescriptionStatus/coverage @@ -126,6 +130,8 @@ clean: rm -rf packages/sandbox/lib rm -rf packages/specification/coverage rm -rf packages/specification/lib + rm -rf packages/statusLambda/coverage + rm -rf packages/statusLambda/lib rm -rf .aws-sam deep-clean: clean diff --git a/README.md b/README.md index fc1afc4fd..971485638 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ This is the AWS layer that provides an API for EPS Prescription Status Update. - `packages/updatePrescriptionStatus/` Handles updating prescription status for the root endpoint. - `packages/sandbox` A sandbox endpoint returning an example response. - `packages/specification/` This [Open API Specification](https://swagger.io/docs/specification/about/) describes the endpoints, methods and messages. +- `packages/statusLambda/` Returns the status of the updatePrescriptionStatus endpoint - `scripts/` Utilities helpful to developers of this specification. - `SAMtemplates/` Contains the SAM templates used to define the stacks. - `.devcontainer` Contains a dockerfile and vscode devcontainer definition. @@ -161,7 +162,7 @@ These are used to do common commands - `test` Runs unit tests for all code #### Publish targets -- `publish` Outputs the specification as a **single file** into the `build/` directory. This is used when uploading to Apigee, which requires the spec as a single file. +- `publish` Outputs the specification as a **single file** into the `dist/` directory. This is used when uploading to Apigee, which requires the spec as a single file. #### Compiling diff --git a/SAMtemplates/apis/main.yaml b/SAMtemplates/apis/main.yaml index 0f543fd16..478be6fb0 100644 --- a/SAMtemplates/apis/main.yaml +++ b/SAMtemplates/apis/main.yaml @@ -22,6 +22,14 @@ Parameters: Type: String Default: none + StatusLambdaFunctionName: + Type: String + Default: none + + StatusLambdaFunctionArn: + Type: String + Default: none + LogRetentionInDays: Type: Number @@ -198,18 +206,40 @@ Resources: MethodResponses: - StatusCode: '200' + StatusLambdaMethodResource: + Type: AWS::ApiGateway::Resource + Properties: + RestApiId: !Ref RestApiGateway + ParentId: !GetAtt RestApiGateway.RootResourceId + PathPart: _status + + StatusLambdaMethod: + Type: AWS::ApiGateway::Method + Properties: + RestApiId: !Ref RestApiGateway + ResourceId: !Ref StatusLambdaMethodResource + HttpMethod: GET + AuthorizationType: NONE + Integration: + Type: AWS_PROXY + Credentials: !GetAtt RestApiGatewayResources.Outputs.ApiGwRoleArn + IntegrationHttpMethod: POST + Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${StatusLambdaFunctionArn}/invocations + + # if you add a new endpoint, then change the stage name RestApiGatewayDeployment: Type: AWS::ApiGateway::Deployment DependsOn: - UpdatePrescriptionStatusMethod + - StatusLambdaMethod Properties: RestApiId: !Ref RestApiGateway + StageName: prod-v1 RestApiGatewayStage: Type: AWS::ApiGateway::Stage Properties: RestApiId: !Ref RestApiGateway - StageName: prod DeploymentId: !Ref RestApiGatewayDeployment TracingEnabled: true AccessLogSetting: @@ -231,6 +261,7 @@ Resources: AdditionalPolicies: !Join - ',' - - Fn::ImportValue: !Sub ${StackName}:state-machines:${UpdatePrescriptionStatusStateMachineName}:ExecuteStateMachinePolicy + - Fn::ImportValue: !Sub ${StackName}:functions:${StatusLambdaFunctionName}:ExecuteLambdaPolicyArn ApiName: !Sub ${StackName}-apigw LogRetentionInDays: !Ref LogRetentionInDays EnableSplunk: !Ref EnableSplunk diff --git a/SAMtemplates/functions/lambda_resources.yaml b/SAMtemplates/functions/lambda_resources.yaml index df8aaeb92..81534640e 100644 --- a/SAMtemplates/functions/lambda_resources.yaml +++ b/SAMtemplates/functions/lambda_resources.yaml @@ -62,7 +62,7 @@ Resources: Action: - lambda:InvokeFunction Resource: - - !Sub ${LambdaArn}:* + - !Sub ${LambdaArn}* LambdaRole: Type: AWS::IAM::Role diff --git a/SAMtemplates/functions/main.yaml b/SAMtemplates/functions/main.yaml index 5cefcbea6..0e65ef77c 100644 --- a/SAMtemplates/functions/main.yaml +++ b/SAMtemplates/functions/main.yaml @@ -34,6 +34,12 @@ Parameters: EnableSplunk: Type: String + VersionNumber: + Type: String + + CommitId: + Type: String + Resources: UpdatePrescriptionStatus: Type: AWS::Serverless::Function @@ -113,6 +119,45 @@ Resources: SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole SplunkDeliveryStreamArn: !ImportValue lambda-resources:SplunkDeliveryStream + StatusLambdaFunction: + Type: AWS::Serverless::Function + Properties: + FunctionName: !Sub ${StackName}-statusLambda + CodeUri: ../../packages + Handler: statusLambda.handler + Role: !GetAtt StatusLambdaFunctionResources.Outputs.LambdaRoleArn + Environment: + Variables: + VERSION_NUMBER: !Ref VersionNumber + COMMIT_ID: !Ref CommitId + Metadata: + BuildMethod: esbuild + BuildProperties: + Minify: true + Target: es2020 + Sourcemap: true + tsconfig: statusLambda/tsconfig.json + EntryPoints: + - statusLambda/src/statusLambda.ts + + StatusLambdaFunctionResources: + Type: AWS::Serverless::Application + Properties: + Location: lambda_resources.yaml + Parameters: + StackName: !Ref StackName + LambdaName: !Sub ${StackName}-statusLambda + LambdaArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${StackName}-statusLambda + IncludeAdditionalPolicies: true + AdditionalPolicies: !Join + - "," + - - !ImportValue account-resources:LambdaAccessSecretsPolicy + LogRetentionInDays: !Ref LogRetentionInDays + CloudWatchKMSKeyId: !ImportValue account-resources:CloudwatchLogsKmsKeyArn + EnableSplunk: !Ref EnableSplunk + SplunkSubscriptionFilterRole: !ImportValue lambda-resources:SplunkSubscriptionFilterRole + SplunkDeliveryStreamArn: !ImportValue lambda-resources:SplunkDeliveryStream + Outputs: UpdatePrescriptionStatusFunctionName: Description: The function name of the UpdatePrescriptionStatus lambda @@ -131,3 +176,11 @@ Outputs: Value: !GetAtt GetStatusUpdates.Arn Export: Name: !Sub ${StackName}:functions:GetStatusUpdates:FunctionArn + + StatusLambdaFunctionName: + Description: The function name of the Status lambda + Value: !Ref StatusLambdaFunction + + StatusLambdaFunctionArn: + Description: The function ARN of the Status lambda + Value: !GetAtt StatusLambdaFunction.Arn diff --git a/SAMtemplates/main_template.yaml b/SAMtemplates/main_template.yaml index dc47c2a50..177798b25 100644 --- a/SAMtemplates/main_template.yaml +++ b/SAMtemplates/main_template.yaml @@ -1,8 +1,7 @@ -AWSTemplateFormatVersion: '2010-09-09' +AWSTemplateFormatVersion: "2010-09-09" Transform: AWS::Serverless-2016-10-31 Description: | PSU resources - # Params passed from the Makefile Parameters: EnableMutualTLS: @@ -46,7 +45,7 @@ Parameters: - 2922 - 3288 - 3653 - + EnableSplunk: Type: String Default: false @@ -54,6 +53,14 @@ Parameters: - true - false + VersionNumber: + Type: String + Default: "xxx" + + CommitId: + Type: String + Default: "xxx" + Resources: Tables: Type: AWS::Serverless::Application @@ -61,7 +68,7 @@ Resources: Location: tables/main.yaml Parameters: StackName: !Ref AWS::StackName - + Apis: Type: AWS::Serverless::Application Properties: @@ -72,9 +79,11 @@ Resources: TruststoreVersion: !Ref TruststoreVersion UpdatePrescriptionStatusStateMachineName: !GetAtt StateMachines.Outputs.UpdatePrescriptionStatusStateMachineName UpdatePrescriptionStatusStateMachineArn: !GetAtt StateMachines.Outputs.UpdatePrescriptionStatusStateMachineArn + StatusLambdaFunctionName: !GetAtt Functions.Outputs.StatusLambdaFunctionName + StatusLambdaFunctionArn: !GetAtt Functions.Outputs.StatusLambdaFunctionArn LogRetentionInDays: !Ref LogRetentionInDays EnableSplunk: !Ref EnableSplunk - + Functions: Type: AWS::Serverless::Application Properties: @@ -85,7 +94,9 @@ Resources: LogLevel: !Ref LogLevel LogRetentionInDays: !Ref LogRetentionInDays EnableSplunk: !Ref EnableSplunk - + VersionNumber: !Ref VersionNumber + CommitId: !Ref CommitId + StateMachines: Type: AWS::Serverless::Application Properties: diff --git a/SAMtemplates/sandbox_template.yaml b/SAMtemplates/sandbox_template.yaml index 050e5b140..a0e8720fd 100644 --- a/SAMtemplates/sandbox_template.yaml +++ b/SAMtemplates/sandbox_template.yaml @@ -10,7 +10,7 @@ Globals: MemorySize: 256 Architectures: - x86_64 - Runtime: nodejs18.x + Runtime: nodejs20.x Environment: Variables: NODE_OPTIONS: --enable-source-maps diff --git a/package-lock.json b/package-lock.json index e837a676a..2b238d879 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,11 @@ "version": "1.0.0", "license": "MIT", "workspaces": [ - "packages/specification", - "packages/updatePrescriptionStatus", "packages/gsul", - "packages/sandbox" + "packages/sandbox", + "packages/specification", + "packages/statusLambda", + "packages/updatePrescriptionStatus" ], "dependencies": { "esbuild": "^0.20.1" @@ -340,6 +341,41 @@ } } }, + "node_modules/@aws-lambda-powertools/parameters": { + "version": "2.1.0", + "license": "MIT-0", + "dependencies": { + "@aws-lambda-powertools/commons": "^2.1.0" + }, + "peerDependencies": { + "@aws-sdk/client-appconfigdata": ">=3.x", + "@aws-sdk/client-dynamodb": ">=3.x", + "@aws-sdk/client-secrets-manager": ">=3.x", + "@aws-sdk/client-ssm": ">=3.x", + "@aws-sdk/util-dynamodb": ">=3.x", + "@middy/core": ">=3.x" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-appconfigdata": { + "optional": true + }, + "@aws-sdk/client-dynamodb": { + "optional": true + }, + "@aws-sdk/client-secrets-manager": { + "optional": true + }, + "@aws-sdk/client-ssm": { + "optional": true + }, + "@aws-sdk/util-dynamodb": { + "optional": true + }, + "@middy/core": { + "optional": true + } + } + }, "node_modules/@aws-sdk/client-dynamodb": { "version": "3.564.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.564.0.tgz", @@ -916,83 +952,19 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", + "version": "7.24.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.23.5", + "version": "7.24.4", "dev": true, "license": "MIT", "engines": { @@ -1000,19 +972,19 @@ } }, "node_modules/@babel/core": { - "version": "7.24.0", + "version": "7.24.4", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -1037,13 +1009,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", + "version": "7.24.4", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -1105,11 +1077,11 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", + "version": "7.24.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1164,7 +1136,7 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", + "version": "7.24.1", "dev": true, "license": "MIT", "engines": { @@ -1188,12 +1160,12 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.0", + "version": "7.24.4", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0" }, "engines": { @@ -1201,13 +1173,14 @@ } }, "node_modules/@babel/highlight": { - "version": "7.23.4", + "version": "7.24.2", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -1278,7 +1251,7 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.0", + "version": "7.24.4", "dev": true, "license": "MIT", "bin": { @@ -1344,11 +1317,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", + "version": "7.24.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1438,11 +1411,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", + "version": "7.24.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1453,7 +1426,8 @@ }, "node_modules/@babel/runtime": { "version": "7.24.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1475,17 +1449,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.0", + "version": "7.24.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", + "@babel/parser": "^7.24.1", "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" @@ -1678,7 +1652,8 @@ }, "node_modules/@fluent/syntax": { "version": "0.18.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@fluent/syntax/-/syntax-0.18.1.tgz", + "integrity": "sha512-h0dnIoIg1RwUZRKynTizlVCe0v5qAO9d92ugmRi8sVMM15mwwftf7dpEKdDRc/pybbrpDhmvZRykEel0Cs/RYg==", "engines": { "node": ">=12.0.0", "npm": ">=7.0.0" @@ -1730,7 +1705,7 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", + "version": "2.0.3", "dev": true, "license": "BSD-3-Clause" }, @@ -2151,7 +2126,8 @@ }, "node_modules/@middy/util": { "version": "5.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@middy/util/-/util-5.3.2.tgz", + "integrity": "sha512-/Y5xxPwkQAigphYmJhThN6TGQCCFgybOYYK7SfiEr8cY7IhYnTys2uyTJR7ziS5jP82zNlgE9H5ZEj6IswHOKQ==", "engines": { "node": ">=18" }, @@ -2162,7 +2138,8 @@ }, "node_modules/@middy/validator": { "version": "5.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@middy/validator/-/validator-5.3.2.tgz", + "integrity": "sha512-fI1s7gFoYP8144b41VZOE0cJQjMpoNGydSHPoNMeTbvNedM8uHhxeIJR8fVi9LPweGzh3GdzGMGttglHuZsy5w==", "dependencies": { "@middy/util": "5.3.2", "ajv": "8.12.0", @@ -2183,7 +2160,8 @@ }, "node_modules/@middy/validator/node_modules/ajv": { "version": "8.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -2197,14 +2175,16 @@ }, "node_modules/@middy/validator/node_modules/ajv-errors": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", "peerDependencies": { "ajv": "^8.0.1" } }, "node_modules/@middy/validator/node_modules/ajv-keywords": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -2214,7 +2194,8 @@ }, "node_modules/@middy/validator/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@nhs/fhir-middy-error-handler": { "version": "2.0.3", @@ -2258,7 +2239,7 @@ } }, "node_modules/@octokit/auth-token": { - "version": "5.0.1", + "version": "5.1.1", "dev": true, "license": "MIT", "engines": { @@ -2266,7 +2247,7 @@ } }, "node_modules/@octokit/core": { - "version": "6.0.1", + "version": "6.1.2", "dev": true, "license": "MIT", "dependencies": { @@ -2274,7 +2255,7 @@ "@octokit/graphql": "^8.0.0", "@octokit/request": "^9.0.0", "@octokit/request-error": "^6.0.1", - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.0.0", "before-after-hook": "^3.0.2", "universal-user-agent": "^7.0.0" }, @@ -2283,11 +2264,11 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.0.0", + "version": "10.1.1", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -2295,12 +2276,12 @@ } }, "node_modules/@octokit/graphql": { - "version": "8.0.1", + "version": "8.1.1", "dev": true, "license": "MIT", "dependencies": { "@octokit/request": "^9.0.0", - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -2308,16 +2289,16 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "20.0.0", + "version": "22.1.0", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "10.0.0", + "version": "11.1.1", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^12.6.0" + "@octokit/types": "^13.4.0" }, "engines": { "node": ">= 18" @@ -2327,12 +2308,12 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "7.0.3", + "version": "7.1.0", "dev": true, "license": "MIT", "dependencies": { "@octokit/request-error": "^6.0.0", - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" }, "engines": { @@ -2343,11 +2324,11 @@ } }, "node_modules/@octokit/plugin-throttling": { - "version": "9.0.3", + "version": "9.2.0", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^12.6.0", + "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" }, "engines": { @@ -2358,13 +2339,13 @@ } }, "node_modules/@octokit/request": { - "version": "9.0.1", + "version": "9.1.1", "dev": true, "license": "MIT", "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -2372,22 +2353,22 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.0.2", + "version": "6.1.1", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^12.0.0" + "@octokit/types": "^13.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/types": { - "version": "12.6.0", + "version": "13.4.1", "dev": true, "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^20.0.0" + "@octokit/openapi-types": "^22.1.0" } }, "node_modules/@pkgr/core": { @@ -2484,12 +2465,12 @@ } }, "node_modules/@semantic-release/github": { - "version": "10.0.2", + "version": "10.0.3", "dev": true, "license": "MIT", "dependencies": { "@octokit/core": "^6.0.0", - "@octokit/plugin-paginate-rest": "^10.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", "@octokit/plugin-retry": "^7.0.0", "@octokit/plugin-throttling": "^9.0.0", "@semantic-release/error": "^4.0.0", @@ -2844,17 +2825,6 @@ "semantic-release": ">=20.1.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "dev": true, @@ -3434,7 +3404,7 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", + "version": "1.0.11", "dev": true, "license": "MIT" }, @@ -3540,8 +3510,9 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/node": { "version": "20.12.7", @@ -3558,8 +3529,9 @@ }, "node_modules/@types/semver": { "version": "7.5.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true }, "node_modules/@types/sinon": { "version": "10.0.20", @@ -3599,8 +3571,9 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", + "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.7.1", @@ -3678,8 +3651,9 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", + "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "7.7.1", "@typescript-eslint/utils": "7.7.1", @@ -3745,8 +3719,9 @@ }, "node_modules/@typescript-eslint/utils": { "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", + "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.15", @@ -3832,7 +3807,7 @@ } }, "node_modules/agent-base": { - "version": "7.1.0", + "version": "7.1.1", "dev": true, "license": "MIT", "dependencies": { @@ -3870,7 +3845,8 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dependencies": { "ajv": "^8.0.0" }, @@ -3885,7 +3861,8 @@ }, "node_modules/ajv-formats-draft2019": { "version": "1.6.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-formats-draft2019/-/ajv-formats-draft2019-1.6.1.tgz", + "integrity": "sha512-JQPvavpkWDvIsBp2Z33UkYCtXCSpW4HD3tAZ+oL4iEFOk9obQZffx0yANwECt6vzr6ET+7HN5czRyqXbnq/u0Q==", "dependencies": { "punycode": "^2.1.1", "schemes": "^1.4.0", @@ -3898,7 +3875,8 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -3912,11 +3890,13 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/ajv-ftl-i18n": { "version": "0.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-ftl-i18n/-/ajv-ftl-i18n-0.1.1.tgz", + "integrity": "sha512-bJwD8xsGqeI3CvLv1lWdJAGaXoEG8PlDqzx1W5U87pWvEhQR+DqnTZsRQpAo736t9haWR06ECtyJA3GTO/Zphw==", "dependencies": { "commander": "10.0.0", "fluent-transpiler": "0.2.1" @@ -3931,7 +3911,8 @@ }, "node_modules/ajv-ftl-i18n/node_modules/commander": { "version": "10.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "engines": { "node": ">=14" } @@ -4019,6 +4000,21 @@ "dev": true, "license": "MIT" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-find-index": { "version": "1.0.2", "dev": true, @@ -4034,17 +4030,43 @@ }, "node_modules/array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asap": { "version": "2.0.6", "dev": true, "license": "MIT" }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "dev": true, @@ -4074,7 +4096,7 @@ } }, "node_modules/aws-sdk": { - "version": "2.1579.0", + "version": "2.1601.0", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -4104,6 +4126,27 @@ "tslib": "^2.1.0" } }, + "node_modules/axios": { + "version": "1.6.8", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios-mock-adapter": { + "version": "1.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.5" + }, + "peerDependencies": { + "axios": ">= 0.17.0" + } + }, "node_modules/babel-jest": { "version": "29.7.0", "dev": true, @@ -4253,8 +4296,9 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -4367,7 +4411,8 @@ }, "node_modules/camel-case": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -4381,7 +4426,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001597", + "version": "1.0.30001611", "dev": true, "funding": [ { @@ -4401,7 +4446,8 @@ }, "node_modules/capital-case": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -4424,7 +4470,8 @@ }, "node_modules/change-case": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -4531,7 +4578,7 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", + "version": "0.6.4", "dev": true, "license": "MIT", "dependencies": { @@ -4564,51 +4611,148 @@ "readable-stream": "^4.0.0" } }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", + "node_modules/cloneable-readable/node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/commander": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/common-tags": { - "version": "1.8.2", - "dev": true, + "node_modules/cloneable-readable/node_modules/events": { + "version": "3.3.0", "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=0.8.x" } }, - "node_modules/compare-func": { - "version": "2.0.0", - "dev": true, - "license": "MIT", + "node_modules/cloneable-readable/node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/cloneable-readable/node_modules/readable-stream": { + "version": "4.5.2", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/cloneable-readable/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/cloneable-readable/node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "3.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -4630,7 +4774,8 @@ }, "node_modules/constant-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -4825,6 +4970,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "dev": true, @@ -4857,7 +5050,7 @@ } }, "node_modules/dedent": { - "version": "1.5.1", + "version": "1.5.3", "dev": true, "license": "MIT", "peerDependencies": { @@ -4906,6 +5099,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "dev": true, @@ -4952,12 +5168,14 @@ }, "node_modules/discontinuous-range": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==" }, "node_modules/dlv": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true }, "node_modules/doctrine": { "version": "3.0.0", @@ -4972,7 +5190,8 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -4997,35 +5216,8 @@ "readable-stream": "^2.0.2" } }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/electron-to-chromium": { - "version": "1.4.708", + "version": "1.4.740", "dev": true, "license": "ISC" }, @@ -5201,6 +5393,65 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.23.3", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "dev": true, @@ -5220,6 +5471,46 @@ "node": ">= 0.4" } }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.20.2", "hasInstallScript": true, @@ -5547,6 +5838,17 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/exit": { "version": "0.1.2", "dev": true, @@ -5571,7 +5873,8 @@ }, "node_modules/extend": { "version": "3.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -5619,7 +5922,8 @@ }, "node_modules/fast-uri": { "version": "2.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.3.0.tgz", + "integrity": "sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==" }, "node_modules/fast-xml-parser": { "version": "4.2.5", @@ -5755,7 +6059,8 @@ }, "node_modules/fluent-transpiler": { "version": "0.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fluent-transpiler/-/fluent-transpiler-0.2.1.tgz", + "integrity": "sha512-pdF72/XOg0NHj97E3aXu9k5PI8FmpRRrk4HMDeo9KRm7eoNczBTHnQjQMuqsAJ06ejT9teAA5fL8qUIhtUe6oA==", "dependencies": { "@fluent/syntax": "0.18.1", "change-case": "4.1.2", @@ -5767,53 +6072,57 @@ }, "node_modules/fluent-transpiler/node_modules/commander": { "version": "9.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", "engines": { "node": "^12.20.0 || >=14" } }, - "node_modules/for-each": { - "version": "0.3.3", - "dev": true, + "node_modules/follow-redirects": { + "version": "1.15.6", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/from2": { - "version": "2.3.0", + "node_modules/for-each": { + "version": "0.3.3", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "is-callable": "^1.1.3" } }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, + "node_modules/form-data": { + "version": "4.0.0", "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/from2": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "node_modules/fs-extra": { @@ -5853,6 +6162,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "dev": true, @@ -5894,15 +6228,31 @@ "node": ">=8.0.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", + "node_modules/get-stream": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/git-log-parser": { @@ -5995,10 +6345,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -6061,8 +6426,9 @@ }, "node_modules/has-ansi": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -6072,12 +6438,21 @@ }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "license": "MIT", @@ -6145,7 +6520,8 @@ }, "node_modules/header-case": { "version": "2.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -6241,7 +6617,7 @@ } }, "node_modules/import-from-esm": { - "version": "1.3.3", + "version": "1.3.4", "dev": true, "license": "MIT", "dependencies": { @@ -6325,6 +6701,19 @@ "dev": true, "license": "ISC" }, + "node_modules/internal-slot": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/into-stream": { "version": "7.0.0", "dev": true, @@ -6355,11 +6744,74 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "dev": true, "license": "MIT" }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/is-callable": { "version": "1.2.7", "dev": true, @@ -6382,6 +6834,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "dev": true, @@ -6430,6 +6910,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "dev": true, @@ -6438,6 +6929,20 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "dev": true, @@ -6454,6 +6959,35 @@ "node": ">=8" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "dev": true, @@ -6465,6 +6999,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-text-path": { "version": "2.0.0", "dev": true, @@ -6501,6 +7063,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "dev": true, @@ -7196,7 +7769,8 @@ }, "node_modules/json-schema-to-ts": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.0.1.tgz", + "integrity": "sha512-ANphQxnKbzLWPeYDmdoci8C9g9ttpfMx8etTlJJ8UCEmNXH9jxGkn3AAbMe+lR4N5OG/01nYxPrDyugLdsRt+A==", "dependencies": { "@babel/runtime": "^7.18.3", "ts-algebra": "^1.2.2" @@ -7520,8 +8094,9 @@ }, "node_modules/loglevel": { "version": "1.9.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", + "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6.0" }, @@ -7532,8 +8107,9 @@ }, "node_modules/loglevel-colored-level-prefix": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", + "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^1.1.3", "loglevel": "^1.4.1" @@ -7541,24 +8117,27 @@ }, "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -7572,16 +8151,18 @@ }, "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -7591,15 +8172,17 @@ }, "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/lower-case": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dependencies": { "tslib": "^2.0.3" } @@ -7670,12 +8253,9 @@ } }, "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "6.2.0", + "version": "6.2.1", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^3.0.0" - }, "engines": { "node": ">=14.16" }, @@ -7694,17 +8274,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/marked-terminal/node_modules/type-fest": { - "version": "3.13.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/meow": { "version": "12.1.1", "dev": true, @@ -7755,6 +8324,23 @@ "node": ">=16" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "dev": true, @@ -7765,8 +8351,9 @@ }, "node_modules/minimatch": { "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7805,7 +8392,8 @@ }, "node_modules/moo": { "version": "0.5.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" }, "node_modules/ms": { "version": "2.1.2", @@ -7829,7 +8417,8 @@ }, "node_modules/nearley": { "version": "2.20.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", @@ -7849,7 +8438,8 @@ }, "node_modules/nearley/node_modules/commander": { "version": "2.20.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/neo-async": { "version": "2.6.2", @@ -7883,7 +8473,8 @@ }, "node_modules/no-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -7964,7 +8555,7 @@ } }, "node_modules/npm": { - "version": "10.5.0", + "version": "10.5.2", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -7973,6 +8564,7 @@ "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/promise-spawn", + "@npmcli/redact", "@npmcli/run-script", "@sigstore/tuf", "abbrev", @@ -8051,27 +8643,28 @@ "@npmcli/arborist": "^7.2.1", "@npmcli/config": "^8.0.2", "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^5.0.0", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.0.2", "@npmcli/promise-spawn": "^7.0.1", + "@npmcli/redact": "^1.1.0", "@npmcli/run-script": "^7.0.4", - "@sigstore/tuf": "^2.3.1", + "@sigstore/tuf": "^2.3.2", "abbrev": "^2.0.0", "archy": "~1.0.0", "cacache": "^18.0.2", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", + "cli-table3": "^0.6.4", "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.10", + "glob": "^10.3.12", "graceful-fs": "^4.2.11", "hosted-git-info": "^7.0.1", - "ini": "^4.1.1", - "init-package-json": "^6.0.0", - "is-cidr": "^5.0.3", + "ini": "^4.1.2", + "init-package-json": "^6.0.2", + "is-cidr": "^5.0.5", "json-parse-even-better-errors": "^3.0.1", "libnpmaccess": "^8.0.1", "libnpmdiff": "^6.0.3", @@ -8085,11 +8678,11 @@ "libnpmteam": "^6.0.0", "libnpmversion": "^5.0.1", "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.3", + "minimatch": "^9.0.4", "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^10.0.1", + "node-gyp": "^10.1.0", "nopt": "^7.2.0", "normalize-package-data": "^6.0.0", "npm-audit-report": "^5.0.0", @@ -8097,7 +8690,7 @@ "npm-package-arg": "^11.0.1", "npm-pick-manifest": "^9.0.0", "npm-profile": "^9.0.0", - "npm-registry-fetch": "^16.1.0", + "npm-registry-fetch": "^16.2.0", "npm-user-validate": "^2.0.0", "npmlog": "^7.0.1", "p-map": "^4.0.0", @@ -8105,12 +8698,12 @@ "parse-conflict-json": "^3.0.1", "proc-log": "^3.0.0", "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", + "read": "^3.0.1", "semver": "^7.6.0", - "spdx-expression-parse": "^3.0.1", + "spdx-expression-parse": "^4.0.0", "ssri": "^10.0.5", "supports-color": "^9.4.0", - "tar": "^6.2.0", + "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", @@ -8226,7 +8819,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.2.1", + "version": "2.2.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8235,14 +8828,14 @@ "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.4.0", + "version": "7.4.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8256,6 +8849,7 @@ "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^1.1.0", "@npmcli/run-script": "^7.0.2", "bin-links": "^4.0.1", "cacache": "^18.0.0", @@ -8263,12 +8857,12 @@ "hosted-git-info": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", + "minimatch": "^9.0.4", "nopt": "^7.0.0", "npm-install-checks": "^6.2.0", "npm-package-arg": "^11.0.1", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", + "npm-registry-fetch": "^16.2.0", "npmlog": "^7.0.1", "pacote": "^17.0.4", "parse-conflict-json": "^3.0.0", @@ -8289,14 +8883,14 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.2.0", + "version": "8.2.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", "ci-info": "^4.0.0", - "ini": "^4.1.0", + "ini": "^4.1.2", "nopt": "^7.0.0", "proc-log": "^3.0.0", "read-package-json-fast": "^3.0.2", @@ -8347,7 +8941,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.4", + "version": "5.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -8382,7 +8976,7 @@ } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -8430,7 +9024,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.0.0", + "version": "5.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8471,6 +9065,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "7.0.4", "dev": true, @@ -8498,19 +9101,19 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.2.0", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0" + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/core": { - "version": "1.0.0", + "version": "1.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -8519,23 +9122,23 @@ } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.0", + "version": "0.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.2.3", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.2.0", + "@sigstore/bundle": "^2.3.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/protobuf-specs": "^0.3.1", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -8543,7 +9146,7 @@ } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.3.1", + "version": "2.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -8556,14 +9159,14 @@ } }, "node_modules/npm/node_modules/@sigstore/verify": { - "version": "1.1.0", + "version": "1.2.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.2.0", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.0" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -8601,7 +9204,7 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "7.1.0", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "MIT", @@ -8689,12 +9292,15 @@ } }, "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/brace-expansion": { @@ -8707,7 +9313,7 @@ } }, "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", + "version": "5.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -8775,7 +9381,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.0.3", + "version": "4.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -8809,7 +9415,7 @@ } }, "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", + "version": "0.6.4", "dev": true, "inBundle": true, "license": "MIT", @@ -9087,16 +9693,16 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "10.3.10", + "version": "10.3.12", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -9121,7 +9727,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/hasown": { - "version": "2.0.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -9220,7 +9826,7 @@ } }, "node_modules/npm/node_modules/ini": { - "version": "4.1.1", + "version": "4.1.2", "dev": true, "inBundle": true, "license": "ISC", @@ -9229,15 +9835,15 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.0", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@npmcli/package-json": "^5.0.0", "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^7.0.0", + "read": "^3.0.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" @@ -9278,12 +9884,12 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.0.3", + "version": "5.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "4.0.3" + "cidr-regex": "^4.0.4" }, "engines": { "node": ">=14" @@ -9386,20 +9992,20 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.2", + "version": "8.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^16.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.7", + "version": "6.0.9", "dev": true, "inBundle": true, "license": "ISC", @@ -9407,19 +10013,19 @@ "@npmcli/arborist": "^7.2.1", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", + "binary-extensions": "^2.3.0", "diff": "^5.1.0", - "minimatch": "^9.0.0", + "minimatch": "^9.0.4", "npm-package-arg": "^11.0.1", "pacote": "^17.0.4", - "tar": "^6.2.0" + "tar": "^6.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.8", + "version": "7.0.10", "dev": true, "inBundle": true, "license": "ISC", @@ -9431,7 +10037,7 @@ "npmlog": "^7.0.1", "pacote": "^17.0.4", "proc-log": "^3.0.0", - "read": "^2.0.0", + "read": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^3.0.1" @@ -9441,7 +10047,7 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.5", + "version": "5.0.7", "dev": true, "inBundle": true, "license": "ISC", @@ -9453,33 +10059,33 @@ } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.1", + "version": "10.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^16.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.2", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^16.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.7", + "version": "6.0.9", "dev": true, "inBundle": true, "license": "ISC", @@ -9494,7 +10100,7 @@ } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.4", + "version": "9.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -9502,7 +10108,7 @@ "ci-info": "^4.0.0", "normalize-package-data": "^6.0.0", "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.0.0", + "npm-registry-fetch": "^16.2.0", "proc-log": "^3.0.0", "semver": "^7.3.7", "sigstore": "^2.2.0", @@ -9513,25 +10119,25 @@ } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.1", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^16.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.1", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^16.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -9585,7 +10191,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -9793,7 +10399,7 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "10.0.1", + "version": "10.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -9944,11 +10550,12 @@ } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "16.1.0", + "version": "16.2.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@npmcli/redact": "^1.1.0", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", @@ -10056,12 +10663,12 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.10.1", + "version": "1.10.2", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -10072,7 +10679,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.15", + "version": "6.0.16", "dev": true, "inBundle": true, "license": "MIT", @@ -10131,12 +10738,12 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", + "version": "1.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "^2.0.0" + "read": "^3.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -10151,12 +10758,12 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.1.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "~1.0.0" + "mute-stream": "^1.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -10282,17 +10889,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "2.2.2", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.2.0", + "@sigstore/bundle": "^2.3.1", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.0", - "@sigstore/sign": "^2.2.3", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.1.0" + "@sigstore/verify": "^1.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -10309,7 +10916,7 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.8.0", + "version": "2.8.3", "dev": true, "inBundle": true, "license": "MIT", @@ -10318,17 +10925,17 @@ "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 16.0.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.2", + "version": "8.0.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", "socks": "^2.7.1" }, @@ -10346,6 +10953,16 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", "dev": true, @@ -10353,7 +10970,7 @@ "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", @@ -10447,7 +11064,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.2.0", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -10571,6 +11188,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "5.0.0", "dev": true, @@ -10758,6 +11385,39 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.13.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/obliterator": { "version": "1.6.1", "license": "MIT" @@ -10887,7 +11547,7 @@ } }, "node_modules/p-map": { - "version": "7.0.1", + "version": "7.0.2", "dev": true, "license": "MIT", "engines": { @@ -10917,7 +11577,8 @@ }, "node_modules/param-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -10971,7 +11632,8 @@ }, "node_modules/pascal-case": { "version": "3.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -10979,7 +11641,8 @@ }, "node_modules/path-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -11014,7 +11677,7 @@ "license": "MIT" }, "node_modules/path-to-regexp": { - "version": "6.2.1", + "version": "6.2.2", "dev": true, "license": "MIT" }, @@ -11222,8 +11885,9 @@ }, "node_modules/prettier-eslint": { "version": "16.3.0", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.3.0.tgz", + "integrity": "sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/parser": "^6.7.5", "common-tags": "^1.4.0", @@ -11256,8 +11920,9 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", @@ -11283,8 +11948,9 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/scope-manager": { "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0" @@ -11299,8 +11965,9 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, - "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -11311,8 +11978,9 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", @@ -11338,8 +12006,9 @@ }, "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" @@ -11354,8 +12023,9 @@ }, "node_modules/prettier-eslint/node_modules/minimatch": { "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -11430,6 +12100,10 @@ "dev": true, "license": "ISC" }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "license": "MIT", @@ -11438,7 +12112,7 @@ } }, "node_modules/pure-rand": { - "version": "6.0.4", + "version": "6.1.0", "dev": true, "funding": [ { @@ -11480,11 +12154,13 @@ }, "node_modules/railroad-diagrams": { "version": "1.0.0", - "license": "CC0-1.0" + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==" }, "node_modules/randexp": { "version": "0.4.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", "dependencies": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" @@ -11617,7 +12293,7 @@ } }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.12.0", + "version": "4.15.0", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11677,7 +12353,7 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.12.0", + "version": "4.15.0", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11688,66 +12364,19 @@ } }, "node_modules/readable-stream": { - "version": "4.5.2", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/readable-stream/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "version": "2.3.8", + "dev": true, "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/readable-stream/node_modules/events": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=0.8.x" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/readable-stream/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", "dev": true, @@ -11761,7 +12390,25 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/registry-auth-token": { "version": "5.0.2", @@ -11794,8 +12441,9 @@ }, "node_modules/require-relative": { "version": "0.8.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", + "dev": true }, "node_modules/resolve": { "version": "1.22.8", @@ -11850,7 +12498,8 @@ }, "node_modules/ret": { "version": "0.1.15", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "engines": { "node": ">=0.12" } @@ -11900,24 +12549,49 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/safe-array-concat": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, "license": "MIT" }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/sandbox": { "resolved": "packages/sandbox", "link": true @@ -11929,7 +12603,8 @@ }, "node_modules/schemes": { "version": "1.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/schemes/-/schemes-1.4.0.tgz", + "integrity": "sha512-ImFy9FbCsQlVgnE3TCWmLPCFnVzx0lHL/l+umHplDqAKd0dzFpnS6lFZIpagBlYhKwzVmlV36ec0Y1XTu8JBAQ==", "dependencies": { "extend": "^3.0.0" } @@ -12057,6 +12732,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/hosted-git-info": { "version": "7.0.1", "dev": true, @@ -12243,7 +12929,8 @@ }, "node_modules/sentence-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -12270,6 +12957,20 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -12289,6 +12990,23 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "dev": true, @@ -12441,7 +13159,8 @@ }, "node_modules/smtp-address-parser": { "version": "1.0.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/smtp-address-parser/-/smtp-address-parser-1.0.10.tgz", + "integrity": "sha512-Osg9LmvGeAG/hyao4mldbflLOkkr3a+h4m1lwKCK5U8M6ZAr7tdXEz/+/vr752TSGE4MNUlUl9cIK2cB8cgzXg==", "dependencies": { "nearley": "^2.20.1" }, @@ -12451,7 +13170,8 @@ }, "node_modules/snake-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -12563,6 +13283,10 @@ "node": ">=8" } }, + "node_modules/statusLambda": { + "resolved": "packages/statusLambda", + "link": true + }, "node_modules/stream-combiner2": { "version": "1.1.1", "dev": true, @@ -12572,26 +13296,7 @@ "readable-stream": "^2.0.2" } }, - "node_modules/stream-combiner2/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-combiner2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/stream-combiner2/node_modules/string_decoder": { + "node_modules/string_decoder": { "version": "1.1.1", "dev": true, "license": "MIT", @@ -12599,13 +13304,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-length": { "version": "4.0.2", "dev": true, @@ -12630,6 +13328,52 @@ "node": ">=8" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "license": "MIT", @@ -12864,33 +13608,6 @@ "xtend": "~4.0.1" } }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/time-span": { "version": "5.1.0", "dev": true, @@ -12930,9 +13647,14 @@ } }, "node_modules/traverse": { - "version": "0.6.8", + "version": "0.6.9", "dev": true, "license": "MIT", + "dependencies": { + "gopd": "^1.0.1", + "typedarray.prototype.slice": "^1.0.3", + "which-typed-array": "^1.1.15" + }, "engines": { "node": ">= 0.4" }, @@ -12950,7 +13672,8 @@ }, "node_modules/ts-algebra": { "version": "1.2.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-1.2.2.tgz", + "integrity": "sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA==" }, "node_modules/ts-api-utils": { "version": "1.3.0", @@ -13081,6 +13804,94 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-offset": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "5.4.5", "dev": true, @@ -13105,6 +13916,20 @@ "node": ">=0.8.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "5.26.5", "dev": true, @@ -13191,14 +14016,16 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dependencies": { "tslib": "^2.0.3" } @@ -13291,8 +14118,9 @@ }, "node_modules/vue-eslint-parser": { "version": "9.4.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", + "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.3.4", "eslint-scope": "^7.1.1", @@ -13346,6 +14174,21 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "2.0.1", "license": "ISC" @@ -13534,6 +14377,22 @@ "npm": "10.2.x" } }, + "packages/statusLambda": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@aws-lambda-powertools/commons": "^2.0.4", + "@aws-lambda-powertools/logger": "^2.1.0", + "@aws-lambda-powertools/parameters": "^2.0.4", + "@middy/core": "^5.3.2", + "@middy/input-output-logger": "^5.3.2", + "@nhs/fhir-middy-error-handler": "^2.0.2", + "axios": "^1.6.8" + }, + "devDependencies": { + "axios-mock-adapter": "^1.22.0" + } + }, "packages/updatePrescriptionStatus": { "version": "1.0.0", "license": "MIT", diff --git a/package.json b/package.json index 169868987..2fd106062 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,15 @@ "type": "git", "url": "https://github.com/NHSDigital/eps-prescription-status-update-api" }, - "keywords": [], + "keywords": [ ], "author": "NHS Digital", "license": "MIT", "workspaces": [ - "packages/specification", - "packages/updatePrescriptionStatus", "packages/gsul", - "packages/sandbox" + "packages/sandbox", + "packages/specification", + "packages/statusLambda", + "packages/updatePrescriptionStatus" ], "devDependencies": { "@semantic-release/changelog": "^6.0.3", diff --git a/packages/statusLambda/.eslintrc b/packages/statusLambda/.eslintrc new file mode 100644 index 000000000..437314157 --- /dev/null +++ b/packages/statusLambda/.eslintrc @@ -0,0 +1,39 @@ +{ + "root": true, + "env": { + "node": true + }, + "ignorePatterns": ["**/lib/*"], + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint", "import-newlines"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@typescript-eslint/array-type": ["error", {"default": "generic"}], + "@typescript-eslint/consistent-type-assertions": [ + "error", + {"assertionStyle": "as", "objectLiteralTypeAssertions": "never"} + ], + "block-spacing": "error", + "brace-style": ["error", "1tbs"], + "comma-dangle": ["error", "never"], + "comma-spacing": ["error", {"before": false, "after": true}], + "dot-location": ["error", "property"], + "eol-last": ["error", "always"], + "eqeqeq": "error", + "func-call-spacing": "error", + "func-style": ["error", "declaration", {"allowArrowFunctions": true}], + "import-newlines/enforce": ["error", {"items": 3, "max-len": 120, "semi": false}], + "indent": ["error", 2, {"SwitchCase": 1}], + "max-len": ["error", 120], + "no-multi-spaces": "error", + "no-multiple-empty-lines": ["error", {"max": 1}], + "no-trailing-spaces": "error", + "object-curly-spacing": ["error", "never"], + "quotes": ["error", "double", {"allowTemplateLiterals": true, "avoidEscape": true}], + "semi": ["error", "never"] + } +} diff --git a/packages/statusLambda/.vscode/launch.json b/packages/statusLambda/.vscode/launch.json new file mode 100644 index 000000000..7c9b0b4b3 --- /dev/null +++ b/packages/statusLambda/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "name": "vscode-jest-tests.v2", + "request": "launch", + "args": [ + "--runInBand", + "--watchAll=false", + "--testNamePattern", + "${jest.testNamePattern}", + "--runTestsByPath", + "${jest.testFile}", + "--config", + "${workspaceFolder}/jest.debug.config.ts" + ], + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "disableOptimisticBPs": true, + "program": "${workspaceFolder}/../../node_modules/.bin/jest", + "windows": { + "program": "${workspaceFolder}/node_modules/jest/bin/jest" + }, + "env": { + "POWERTOOLS_DEV": true, + "NODE_OPTIONS": "--experimental-vm-modules" + } + } + ] +} diff --git a/packages/statusLambda/.vscode/settings.json b/packages/statusLambda/.vscode/settings.json new file mode 100644 index 000000000..350126494 --- /dev/null +++ b/packages/statusLambda/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "jest.jestCommandLine": "/workspaces/eps-prescription-status-update-api/node_modules/.bin/jest --no-cache", + "jest.nodeEnv": { + "POWERTOOLS_DEV": true, + "NODE_OPTIONS": "--experimental-vm-modules" + } +} diff --git a/packages/statusLambda/jest.config.ts b/packages/statusLambda/jest.config.ts new file mode 100644 index 000000000..1ddbc83f6 --- /dev/null +++ b/packages/statusLambda/jest.config.ts @@ -0,0 +1,9 @@ +import defaultConfig from "../../jest.default.config" +import type {JestConfigWithTsJest} from "ts-jest" + +const jestConfig: JestConfigWithTsJest = { + ...defaultConfig, + "rootDir": "./" +} + +export default jestConfig diff --git a/packages/statusLambda/jest.debug.config.ts b/packages/statusLambda/jest.debug.config.ts new file mode 100644 index 000000000..a30627383 --- /dev/null +++ b/packages/statusLambda/jest.debug.config.ts @@ -0,0 +1,9 @@ +import config from "./jest.config" +import type {JestConfigWithTsJest} from "ts-jest" + +const debugConfig: JestConfigWithTsJest = { + ...config, + "preset": "ts-jest" +} + +export default debugConfig diff --git a/packages/statusLambda/package.json b/packages/statusLambda/package.json new file mode 100644 index 000000000..2b16f1e87 --- /dev/null +++ b/packages/statusLambda/package.json @@ -0,0 +1,27 @@ +{ + "name": "statusLambda", + "version": "1.0.0", + "description": "Lambda of the _status endpoint", + "main": "statusLambda.js", + "author": "NHS Digital", + "license": "MIT", + "scripts": { + "unit": "POWERTOOLS_DEV=true NODE_OPTIONS=--experimental-vm-modules jest --no-cache --coverage", + "lint": "eslint . --ext .ts --max-warnings 0 --fix", + "compile": "tsc", + "test": "npm run compile && npm run unit", + "check-licenses": "license-checker --failOn GPL --failOn LGPL --start ../.." + }, + "dependencies": { + "@aws-lambda-powertools/commons": "^2.0.4", + "@aws-lambda-powertools/logger": "^2.1.0", + "@aws-lambda-powertools/parameters": "^2.0.4", + "@middy/core": "^5.3.2", + "@middy/input-output-logger": "^5.3.2", + "@nhs/fhir-middy-error-handler": "^2.0.2", + "axios": "^1.6.8" + }, + "devDependencies": { + "axios-mock-adapter": "^1.22.0" + } +} diff --git a/packages/statusLambda/src/statusLambda.ts b/packages/statusLambda/src/statusLambda.ts new file mode 100644 index 000000000..70106fe1d --- /dev/null +++ b/packages/statusLambda/src/statusLambda.ts @@ -0,0 +1,54 @@ +import {APIGatewayProxyEvent, APIGatewayProxyResult} from "aws-lambda" +import {Logger} from "@aws-lambda-powertools/logger" +import {injectLambdaContext} from "@aws-lambda-powertools/logger/middleware" +import middy from "@middy/core" +import inputOutputLogger from "@middy/input-output-logger" +import errorHandler from "@nhs/fhir-middy-error-handler" + +const logger = new Logger({serviceName: "status"}) + +/* eslint-disable max-len */ + +/** + * + * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format + * @param {Object} _event - API Gateway Lambda Proxy Input Format + * + * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html + * @returns {Object} object - API Gateway Lambda Proxy Output Format + * + */ + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const lambdaHandler = async (event: APIGatewayProxyEvent): Promise => { + logger.appendKeys({ + "x-request-id": event.headers["x-request-id"], + "x-correlation-id": event.headers["x-correlation-id"], + "apigw-request-id": event.requestContext.requestId + }) + + const commitId = process.env.COMMIT_ID + const versionNumber = process.env.VERSION_NUMBER + + const statusBody = {commitId: commitId, versionNumber: versionNumber} + + return { + statusCode: 200, + body: JSON.stringify(statusBody), + headers: { + "Content-Type": "application/health+json", + "Cache-Control": "no-cache" + } + } +} + +export const handler = middy(lambdaHandler) + .use(injectLambdaContext(logger, {clearState: true})) + .use( + inputOutputLogger({ + logger: (request) => { + logger.info(request) + } + }) + ) + .use(errorHandler({logger: logger})) diff --git a/packages/statusLambda/tests/mockAPIGatewayProxyEvent.js b/packages/statusLambda/tests/mockAPIGatewayProxyEvent.js new file mode 100644 index 000000000..ba81073e7 --- /dev/null +++ b/packages/statusLambda/tests/mockAPIGatewayProxyEvent.js @@ -0,0 +1,60 @@ +const mockAPIGatewayProxyEvent = { + httpMethod: "POST", + body: "", + headers: { + "nhsd-nhslogin-user": "P9:9912003071", + "nhsd-correlation-id": "test-request-id.test-correlation-id.rrt-5789322914740101037-b-aet2-20145-482635-2", + "x-request-id": "test-request-id", + "nhsd-request-id": "test-request-id", + "x-correlation-id": "test-correlation-id" + }, + isBase64Encoded: false, + multiValueHeaders: { }, + multiValueQueryStringParameters: { }, + path: "/hello", + pathParameters: { }, + queryStringParameters: { }, + requestContext: { + accountId: "123456789012", + apiId: "1234", + authorizer: { }, + httpMethod: "POST", + identity: { + accessKey: "", + accountId: "", + apiKey: "", + apiKeyId: "", + caller: "", + clientCert: { + clientCertPem: "", + issuerDN: "", + serialNumber: "", + subjectDN: "", + validity: { + notAfter: "", + notBefore: "" + } + }, + cognitoAuthenticationProvider: "", + cognitoAuthenticationType: "", + cognitoIdentityId: "", + cognitoIdentityPoolId: "", + principalOrgId: "", + sourceIp: "", + user: "", + userAgent: "", + userArn: "" + }, + path: "/", + protocol: "HTTP/1.1", + requestId: "c6af9ac6-7b61-11e6-9a41-93e8deadbeef", + requestTimeEpoch: 1428582896000, + resourceId: "123456", + resourcePath: "/", + stage: "dev" + }, + resource: "", + stageVariables: { } +} + +module.exports = mockAPIGatewayProxyEvent diff --git a/packages/statusLambda/tests/mockContext.js b/packages/statusLambda/tests/mockContext.js new file mode 100644 index 000000000..f3a4138cf --- /dev/null +++ b/packages/statusLambda/tests/mockContext.js @@ -0,0 +1,16 @@ +const mockContext = { + callbackWaitsForEmptyEventLoop: true, + functionVersion: "$LATEST", + functionName: "foo-bar-function", + memoryLimitInMB: "128", + logGroupName: "/aws/lambda/foo-bar-function-123456abcdef", + logStreamName: "2021/03/09/[$LATEST]abcdef123456abcdef123456abcdef123456", + invokedFunctionArn: "arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function", + awsRequestId: "c6af9ac6-7b61-11e6-9a41-93e812345678", + getRemainingTimeInMillis: () => 1234, + done: () => console.log("Done!"), + fail: () => console.log("Failed!"), + succeed: () => console.log("Succeeded!") +} + +module.exports = mockContext diff --git a/packages/statusLambda/tests/test-handler.test.ts b/packages/statusLambda/tests/test-handler.test.ts new file mode 100644 index 000000000..42a3fe18b --- /dev/null +++ b/packages/statusLambda/tests/test-handler.test.ts @@ -0,0 +1,83 @@ +import {APIGatewayProxyResult} from "aws-lambda" +import {Logger} from "@aws-lambda-powertools/logger" +import axios from "axios" +import MockAdapter from "axios-mock-adapter" +import { + jest, + expect, + describe, + it +} from "@jest/globals" +import {handler} from "../src/statusLambda" +import mockContext from "./mockContext" +import mockAPIGatewayProxyEvent from "./mockAPIGatewayProxyEvent" + +const mock = new MockAdapter(axios) + +const dummyContext = mockContext + +describe("Unit test for status check", function () { + let originalEnv: {[key: string]: string | undefined} + afterEach(() => { + process.env = {...originalEnv} + mock.reset() + }) + + it("returns commit id from environment", async () => { + process.env.COMMIT_ID = "test_commit_id" + process.env.TargetSpineServer = "sandbox" + + const result: APIGatewayProxyResult = (await handler( + mockAPIGatewayProxyEvent, + dummyContext + )) as APIGatewayProxyResult + + expect(result.statusCode).toEqual(200) + expect(JSON.parse(result.body)).toMatchObject({ + commitId: "test_commit_id" + }) + }) + + it("returns version number from environment", async () => { + process.env.VERSION_NUMBER = "test_version_number" + process.env.TargetSpineServer = "sandbox" + + const result: APIGatewayProxyResult = (await handler( + mockAPIGatewayProxyEvent, + dummyContext + )) as APIGatewayProxyResult + + expect(result.statusCode).toEqual(200) + expect(JSON.parse(result.body)).toMatchObject({ + versionNumber: "test_version_number" + }) + }) + + it("appends trace id's to the logger", async () => { + const mockAppendKeys = jest.spyOn(Logger.prototype, "appendKeys") + + await handler(mockAPIGatewayProxyEvent, dummyContext) + + expect(mockAppendKeys).toHaveBeenCalledWith({ + "x-request-id": "test-request-id", + "x-correlation-id": "test-correlation-id", + "apigw-request-id": "c6af9ac6-7b61-11e6-9a41-93e8deadbeef" + }) + }) + + it("returns no-cache Cache-Control header", async () => { + process.env.COMMIT_ID = "test_commit_id" + process.env.TargetSpineServer = "sandbox" + + const result: APIGatewayProxyResult = (await handler( + mockAPIGatewayProxyEvent, + dummyContext + )) as APIGatewayProxyResult + + const headers = result.headers + + expect(headers).toMatchObject({ + "Cache-Control": "no-cache" + }) + }) +}) diff --git a/packages/statusLambda/tsconfig.json b/packages/statusLambda/tsconfig.json new file mode 100644 index 000000000..bf3b049e5 --- /dev/null +++ b/packages/statusLambda/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.defaults.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "lib" + }, + "include": ["src/**/*", "tests/**/*"], + "exclude": ["node_modules"] +} diff --git a/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts b/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts index 1b0beb59c..19f2dc0ac 100644 --- a/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts +++ b/packages/updatePrescriptionStatus/src/updatePrescriptionStatus.ts @@ -76,7 +76,7 @@ const lambdaHandler = async (event: APIGatewayProxyEvent): Promise { expect(JSON.parse(response.body)).toEqual(bundleWrap([serverError()])) }) - it("when data store update times out, expect 408 status code and relevant error message", async () => { + it("when data store update times out, expect 504 status code and relevant error message", async () => { mockSend.mockImplementation(() => new Promise(() => {})) const event: APIGatewayProxyEvent = generateMockEvent(requestDispatched) @@ -141,7 +141,7 @@ describe("Integration tests for updatePrescriptionStatus handler", () => { await jest.advanceTimersByTimeAsync(LAMBDA_TIMEOUT_MS) const response = await eventHandler - expect(response.statusCode).toBe(408) + expect(response.statusCode).toBe(504) expect(JSON.parse(response.body)).toEqual(bundleWrap([timeoutResponse()])) }) diff --git a/sonar-project.properties b/sonar-project.properties index ed5c684dc..d1411abed 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,5 +2,5 @@ sonar.organization=nhsdigital sonar.projectKey=NHSDigital_eps-prescription-status-update-api sonar.host.url=https://sonarcloud.io -sonar.coverage.exclusions=**/*.test.*,**/jest.config.ts,scripts/*,packages/specification/* -sonar.javascript.lcov.reportPaths=packages/updatePrescriptionStatus/coverage/lcov.info,packages/sandbox/coverage/lcov.info,packages/specification/coverage/lcov.info,packages/gsul/coverage/lcov.info +sonar.coverage.exclusions=**/*.test.*,**/mock*,**/jest.*.ts,scripts/* +sonar.javascript.lcov.reportPaths=packages/gsul/coverage/lcov.info,packages/updatePrescriptionStatus/coverage/lcov.info,packages/sandbox/coverage/lcov.info,packages/specification/coverage/lcov.info,packages/statusLambda/coverage/lcov.info diff --git a/tsconfig.build.json b/tsconfig.build.json index 6bfc91ada..72be72a7f 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -4,8 +4,9 @@ "files": [], // Building this project will build all of the following: "references": [ - { "path": "packages/updatePrescriptionStatus" }, { "path": "packages/gsul" }, - { "path": "packages/sandbox" } + { "path": "packages/updatePrescriptionStatus" }, + { "path": "packages/sandbox" }, + { "path": "packages/statusLambda" } ] } From 6bb1ea9ba8f0b80a1af219b416246ed48c847053 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:09 +0000 Subject: [PATCH 10/19] Revert "Revert "Upgrade: [dependabot] - bump boto3 from 1.34.93 to 1.34.94 (#178)"" This reverts commit db76dd5b999ec527125743c40e99a63cfdad698f. --- poetry.lock | 16 ++++++++-------- pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index d3b9469cb..283a7dcb9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -96,17 +96,17 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.34.93" +version = "1.34.94" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.34.93-py3-none-any.whl", hash = "sha256:b59355bf4a1408563969526f314611dbeacc151cf90ecb22af295dcc4fe18def"}, - {file = "boto3-1.34.93.tar.gz", hash = "sha256:e39516e4ca21612932599819662759c04485d53ca457996a913163da11f052a4"}, + {file = "boto3-1.34.94-py3-none-any.whl", hash = "sha256:bbb87d641c73462e53b1777083b55c8f13921618ad08757478a8122985c56c13"}, + {file = "boto3-1.34.94.tar.gz", hash = "sha256:22f65b3c9b7a419f8f39c2dddc421e14fab8cbb3bd8a9d467e874237d39f59b1"}, ] [package.dependencies] -botocore = ">=1.34.93,<1.35.0" +botocore = ">=1.34.94,<1.35.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -115,13 +115,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.34.93" +version = "1.34.94" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.34.93-py3-none-any.whl", hash = "sha256:6fbd5a53a2adc9b3d4ebd90ae0ede83a91a41d96231f8a5984051f75495f246d"}, - {file = "botocore-1.34.93.tar.gz", hash = "sha256:79d39b0b87e962991c6dd55e78ce15155099f6fb741be88b1b8a456a702cc150"}, + {file = "botocore-1.34.94-py3-none-any.whl", hash = "sha256:f00a79002e0cb9d6895ecd0919c506402850177d7b6c4d2634fa2da362d95bcb"}, + {file = "botocore-1.34.94.tar.gz", hash = "sha256:99b11be9a28f9051af4c96fa121e9c3f22a86d499abd773c9e868b2a38961bae"}, ] [package.dependencies] @@ -1737,4 +1737,4 @@ termcolor = ">=2.3,<3.0" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "697da685991fa6b81991a7f2e956ba14319f56eba5bf0de47872bb5a10885f25" +content-hash = "f7e40a87fb6ee757ce14389dd3e9df8e54102722632632942bfa0104a837401d" diff --git a/pyproject.toml b/pyproject.toml index 7162d2ed9..e94bc2b2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ jsonpath-rw = "^1.4.0" semver = "^3.0.2" gitpython = "^3.1.42" requests = "^2.31.0" -boto3 = "^1.34.93" +boto3 = "^1.34.94" argparse = "^1.4.0" pre-commit = "^3.5.0" pytest = "^7.4.3" From 37219bc5c8bddc8dc16d9760adb5faa0ee9a520a Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:21 +0000 Subject: [PATCH 11/19] Revert "Revert "Fix: [AEA-0000] - fix deployment following adding status endpoint (#184)"" This reverts commit ac9bdf52f949a47a29226aa5f43dd24206707f17. --- SAMtemplates/apis/main.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SAMtemplates/apis/main.yaml b/SAMtemplates/apis/main.yaml index 478be6fb0..5b54c7c11 100644 --- a/SAMtemplates/apis/main.yaml +++ b/SAMtemplates/apis/main.yaml @@ -226,7 +226,8 @@ Resources: IntegrationHttpMethod: POST Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${StatusLambdaFunctionArn}/invocations - # if you add a new endpoint, then change the stage name + # if you add a new endpoint, then need to manually force a deployment + # aws apigateway create-deployment --rest-api-id --stage-name prod --description 'Deployed from CLI' RestApiGatewayDeployment: Type: AWS::ApiGateway::Deployment DependsOn: @@ -234,13 +235,13 @@ Resources: - StatusLambdaMethod Properties: RestApiId: !Ref RestApiGateway - StageName: prod-v1 RestApiGatewayStage: Type: AWS::ApiGateway::Stage Properties: RestApiId: !Ref RestApiGateway DeploymentId: !Ref RestApiGatewayDeployment + StageName: prod TracingEnabled: true AccessLogSetting: DestinationArn: !GetAtt RestApiGatewayResources.Outputs.ApiGwAccessLogsArn From 6047bb2c55f198cf7a49429df7ce91dd1ddaba71 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:27 +0000 Subject: [PATCH 12/19] Revert "Revert "Upgrade: [dependabot] - bump pytest from 7.4.4 to 8.2.0 (#171)"" This reverts commit 08e1eb768f7b6c28c087c61edb007cb195811e92. --- poetry.lock | 20 ++++++++++---------- pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index 283a7dcb9..821e007a3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1015,13 +1015,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- [[package]] name = "pluggy" -version = "1.4.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1200,23 +1200,23 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pytest" -version = "7.4.4" +version = "8.2.0" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233"}, + {file = "pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"}, ] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.5,<2.0" [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "python-dateutil" @@ -1737,4 +1737,4 @@ termcolor = ">=2.3,<3.0" [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "f7e40a87fb6ee757ce14389dd3e9df8e54102722632632942bfa0104a837401d" +content-hash = "39a576be17e0c4473e188549d3007ea7525e18787bbb185faaa9dd8f18ee6bc3" diff --git a/pyproject.toml b/pyproject.toml index e94bc2b2f..da53f9c81 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ requests = "^2.31.0" boto3 = "^1.34.94" argparse = "^1.4.0" pre-commit = "^3.5.0" -pytest = "^7.4.3" +pytest = "^8.2.0" cfn-lint = "^0.86.4" pyjwt = "^2.8.0" proxygen-cli = "^2.1.13" From ce8e9fb9c01632d0b5167ec5ab0186a79fc0a99b Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:36 +0000 Subject: [PATCH 13/19] Revert "Revert "Upgrade: [dependabot] - bump @typescript-eslint/eslint-plugin from 7.7.1 to 7.8.0 (#180)"" This reverts commit f86967bff4deecf28e09e337dd5e823b90c865eb. --- package-lock.json | 218 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 200 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b238d879..b7cea638b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@types/aws-lambda": "^8.10.137", "@types/jest": "^29.5.12", "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.7.1", + "@typescript-eslint/eslint-plugin": "^7.8.0", "@typescript-eslint/parser": "^7.7.1", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", @@ -3570,16 +3570,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", - "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz", + "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/type-utils": "7.7.1", - "@typescript-eslint/utils": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/type-utils": "7.8.0", + "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.3.1", @@ -3604,6 +3604,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", + "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/parser": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", @@ -3650,13 +3697,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", - "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz", + "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.7.1", - "@typescript-eslint/utils": "7.7.1", + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/utils": "7.8.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -3676,6 +3723,64 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", + "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/types": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", @@ -3718,17 +3823,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", + "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.15", "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/typescript-estree": "7.7.1", + "@typescript-eslint/scope-manager": "7.8.0", + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/typescript-estree": "7.8.0", "semver": "^7.6.0" }, "engines": { @@ -3742,6 +3847,81 @@ "eslint": "^8.56.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", + "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", + "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", + "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", + "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.8.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", diff --git a/package.json b/package.json index 2fd106062..c4c5baedc 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@types/aws-lambda": "^8.10.137", "@types/jest": "^29.5.12", "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.7.1", + "@typescript-eslint/eslint-plugin": "^7.8.0", "@typescript-eslint/parser": "^7.7.1", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", From 15d09e1f9a042e06994713e82c001416d156be71 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:43 +0000 Subject: [PATCH 14/19] Revert "Revert "Upgrade: [dependabot] - bump @typescript-eslint/parser from 7.7.1 to 7.8.0 (#181)"" This reverts commit 87e37fc7d942f972797c7e1a977ee67730e35d41. --- package-lock.json | 210 ++++------------------------------------------ package.json | 2 +- 2 files changed, 16 insertions(+), 196 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7cea638b..53770ea7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@types/jest": "^29.5.12", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/parser": "^7.8.0", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", "eslint": "^8.57.0", @@ -3604,63 +3604,16 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz", + "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==", "dev": true, "dependencies": { + "@typescript-eslint/scope-manager": "7.8.0", "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", - "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/typescript-estree": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", + "@typescript-eslint/typescript-estree": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0", "debug": "^4.3.4" }, "engines": { @@ -3680,13 +3633,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz", - "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", + "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1" + "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/visitor-keys": "7.8.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3723,7 +3676,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", @@ -3736,7 +3689,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", @@ -3764,64 +3717,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", - "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz", - "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/utils": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", @@ -3847,65 +3742,7 @@ "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", @@ -3922,23 +3759,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", - "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.7.1", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "dev": true, diff --git a/package.json b/package.json index c4c5baedc..919965842 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@types/jest": "^29.5.12", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/parser": "^7.8.0", "aws-lambda": "^1.0.7", "conventional-changelog-eslint": "^5.0.0", "eslint": "^8.57.0", From e033b15c3859964c6e23206bb0a01d377722b59a Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:44:51 +0000 Subject: [PATCH 15/19] Revert "Revert "Fix: [AEA-4027] - Invalid NHS Numbers accepted in PSU (#165)"" This reverts commit 9e6b181c208d5bd7f420286d226c4f94d4131edb. --- packages/updatePrescriptionStatus/src/utils/nhsNumber.ts | 6 +++--- .../tests/utils/testValidateNhsNumber.test.ts | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts b/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts index acf61ef82..ef0dcb354 100644 --- a/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts +++ b/packages/updatePrescriptionStatus/src/utils/nhsNumber.ts @@ -1,7 +1,7 @@ // Adapted from: https://github.com/tbrd/nhs-numbers export function validateNhsNumber(nhsNumber: string): boolean { - if (nhsNumber === undefined || nhsNumber === null || Number.isNaN(Number(nhsNumber))) { + if (!nhsNumber || nhsNumber.length !== 10 || !/^\d+$/.test(nhsNumber)) { return false } @@ -13,9 +13,9 @@ export function validateNhsNumber(nhsNumber: string): boolean { calculatedCheckDigit = 0 } - const providedCheckDigit = chars[9] + const providedCheckDigit = parseInt(chars[9]) - return calculatedCheckDigit === Number(providedCheckDigit) + return calculatedCheckDigit === providedCheckDigit } export function calculateCheckDigit(numberString: string): number { diff --git a/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts b/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts index 7805f6043..4cfea6730 100644 --- a/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts +++ b/packages/updatePrescriptionStatus/tests/utils/testValidateNhsNumber.test.ts @@ -50,6 +50,11 @@ describe("validateNhsNumber", () => { expect(validateNhsNumber("123456789")).toBe(false) expect(validateNhsNumber("12345678901")).toBe(false) expect(validateNhsNumber("123456789012")).toBe(false) + expect(validateNhsNumber("96878500351")).toBe(false) + expect(validateNhsNumber("1239687850035")).toBe(false) + expect(validateNhsNumber("1239687850035123")).toBe(false) + expect(validateNhsNumber("9687850035123123123123")).toBe(false) + expect(validateNhsNumber("1239687850035123123123123")).toBe(false) }) }) }) From 5c0f8894b63ef9467a78ba55cec18d3319b6243f Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:45:16 +0000 Subject: [PATCH 16/19] Revert "Revert "Fix: [AEA-0000] - fix int sandbox deployment (#186)"" This reverts commit e64b8411dd811ad8d7bb86a6d05cee4403b2d118. --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3773548d..e06c0259f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -238,7 +238,7 @@ jobs: LOG_RETENTION_DAYS: 30 DEPLOY_APIGEE: true secrets: - CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} + CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.INT_CLOUD_FORMATION_DEPLOY_ROLE }} release_prod: needs: [tag_release, release_int, release_int_sandbox, package_code, get_commit_id] From 10bea35bd26276aa6a570453c08e47db55f78215 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:45:36 +0000 Subject: [PATCH 17/19] Revert "Fix: [AEA-0000] - fix int sandbox deployment (#186)" This reverts commit 7348e3193aa911b405c7cfe3116b668c82791423. --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e06c0259f..c3773548d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -238,7 +238,7 @@ jobs: LOG_RETENTION_DAYS: 30 DEPLOY_APIGEE: true secrets: - CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.INT_CLOUD_FORMATION_DEPLOY_ROLE }} + CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} release_prod: needs: [tag_release, release_int, release_int_sandbox, package_code, get_commit_id] From e53401b2b41d3d3c2fb0af8ba9e278e7ddec80de Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:46:30 +0000 Subject: [PATCH 18/19] Revert "Revert "Fix: [AEA-0000] - fix int sandbox deployment (#186)"" This reverts commit e64b8411dd811ad8d7bb86a6d05cee4403b2d118. --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3773548d..e06c0259f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -238,7 +238,7 @@ jobs: LOG_RETENTION_DAYS: 30 DEPLOY_APIGEE: true secrets: - CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.DEV_CLOUD_FORMATION_DEPLOY_ROLE }} + CLOUD_FORMATION_DEPLOY_ROLE: ${{ secrets.INT_CLOUD_FORMATION_DEPLOY_ROLE }} release_prod: needs: [tag_release, release_int, release_int_sandbox, package_code, get_commit_id] From 51d1a49a513b4755360309fc450ece6abbe33707 Mon Sep 17 00:00:00 2001 From: Anthony Brown <121869075+anthony-nhs@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:58:47 +0000 Subject: [PATCH 19/19] change name of deployment --- SAMtemplates/apis/main.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/SAMtemplates/apis/main.yaml b/SAMtemplates/apis/main.yaml index 5b54c7c11..315da5867 100644 --- a/SAMtemplates/apis/main.yaml +++ b/SAMtemplates/apis/main.yaml @@ -226,13 +226,17 @@ Resources: IntegrationHttpMethod: POST Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${StatusLambdaFunctionArn}/invocations - # if you add a new endpoint, then need to manually force a deployment - # aws apigateway create-deployment --rest-api-id --stage-name prod --description 'Deployed from CLI' - RestApiGatewayDeployment: + # ********************************************************************* + # if you add a new endpoint, then change the name of this resource + # also need to change it in RestApiGatewayStage.Properties.DeploymentId + # ********************************************************************* + RestApiGatewayDeploymentV1: Type: AWS::ApiGateway::Deployment DependsOn: + # see note above if you add something in here when you add a new endpoint - UpdatePrescriptionStatusMethod - StatusLambdaMethod + # see note above if you add something in here when you add a new endpoint Properties: RestApiId: !Ref RestApiGateway @@ -240,7 +244,7 @@ Resources: Type: AWS::ApiGateway::Stage Properties: RestApiId: !Ref RestApiGateway - DeploymentId: !Ref RestApiGatewayDeployment + DeploymentId: !Ref RestApiGatewayDeploymentV1 StageName: prod TracingEnabled: true AccessLogSetting: