From 2ea244a2f653b6e467fe2e9f1309f09730849c50 Mon Sep 17 00:00:00 2001 From: Jamie Feingold Date: Fri, 17 Jul 2026 09:22:20 -0500 Subject: [PATCH] chore: added schemas (W-23365673) --- package.json | 2 +- schemas/org-create-shape.json | 24 +++++++++ schemas/org-create-snapshot.json | 43 +++++++++++++++ schemas/org-delete-shape.json | 48 +++++++++++++++++ schemas/org-delete-snapshot.json | 79 +++++++++++++++++++++++++++ schemas/org-get-snapshot.json | 43 +++++++++++++++ schemas/org-list-shape.json | 40 ++++++++++++++ schemas/org-list-snapshot.json | 49 +++++++++++++++++ src/commands/org/delete/shape.ts | 12 +++-- src/commands/org/delete/snapshot.ts | 6 ++- src/commands/org/list/shape.ts | 6 +-- src/commands/org/list/snapshot.ts | 6 +-- src/shared/orgShapeListUtils.ts | 2 + src/shared/snapshot.ts | 2 + test/nuts/orgShape.nut.ts | 6 ++- yarn.lock | 83 ++++++++++++++++++++--------- 16 files changed, 410 insertions(+), 41 deletions(-) create mode 100644 schemas/org-create-shape.json create mode 100644 schemas/org-create-snapshot.json create mode 100644 schemas/org-delete-shape.json create mode 100644 schemas/org-delete-snapshot.json create mode 100644 schemas/org-get-snapshot.json create mode 100644 schemas/org-list-shape.json create mode 100644 schemas/org-list-snapshot.json diff --git a/package.json b/package.json index f036ad09..37e1ea40 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "change-case": "^5.4.4" }, "devDependencies": { - "@oclif/plugin-command-snapshot": "^5.3.30", + "@oclif/plugin-command-snapshot": "^5.3.31", "@salesforce/cli-plugins-testkit": "^5.3.62", "@salesforce/dev-scripts": "^11.0.4", "@salesforce/plugin-command-reference": "^3.1.119", diff --git a/schemas/org-create-shape.json b/schemas/org-create-shape.json new file mode 100644 index 00000000..8b396003 --- /dev/null +++ b/schemas/org-create-shape.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/ShapeCreateResult", + "definitions": { + "ShapeCreateResult": { + "type": "object", + "properties": { + "shapeId": { + "type": "string" + }, + "success": { + "type": "boolean" + }, + "errors": { + "type": "array", + "minItems": 0, + "maxItems": 0 + } + }, + "required": ["shapeId", "success", "errors"], + "additionalProperties": false + } + } +} diff --git a/schemas/org-create-snapshot.json b/schemas/org-create-snapshot.json new file mode 100644 index 00000000..53f54072 --- /dev/null +++ b/schemas/org-create-snapshot.json @@ -0,0 +1,43 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/OrgSnapshot", + "definitions": { + "OrgSnapshot": { + "type": "object", + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "CreatedDate": { + "type": "string" + }, + "LastModifiedDate": { + "type": "string" + }, + "ExpirationDate": { + "type": "string" + }, + "Error": { + "type": "string" + }, + "SourceOrg": { + "type": "string" + }, + "SnapshotName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Content": { + "type": "string" + } + }, + "required": ["CreatedDate", "Description", "Id", "LastModifiedDate", "SnapshotName", "SourceOrg", "Status"] + } + } +} diff --git a/schemas/org-delete-shape.json b/schemas/org-delete-shape.json new file mode 100644 index 00000000..65837300 --- /dev/null +++ b/schemas/org-delete-shape.json @@ -0,0 +1,48 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/OrgShapeDeleteResult", + "definitions": { + "OrgShapeDeleteResult": { + "anyOf": [ + { + "type": "object", + "additionalProperties": false, + "properties": { + "shapeIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/FailureMsg" + } + }, + "orgId": { + "type": "string" + } + }, + "required": ["failures", "orgId", "shapeIds"] + }, + { + "not": {} + } + ] + }, + "FailureMsg": { + "type": "object", + "properties": { + "shapeId": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": ["shapeId", "message"], + "additionalProperties": false + } + } +} diff --git a/schemas/org-delete-snapshot.json b/schemas/org-delete-snapshot.json new file mode 100644 index 00000000..79d1c945 --- /dev/null +++ b/schemas/org-delete-snapshot.json @@ -0,0 +1,79 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/OptionalSaveResult", + "definitions": { + "OptionalSaveResult": { + "anyOf": [ + { + "$ref": "#/definitions/SaveResult" + }, + { + "not": {} + } + ] + }, + "SaveResult": { + "anyOf": [ + { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "const": true + }, + "id": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "not": {} + } + } + }, + "required": ["success", "id", "errors"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "const": false + }, + "id": { + "not": {} + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/SaveError" + } + } + }, + "required": ["success", "errors"], + "additionalProperties": false + } + ] + }, + "SaveError": { + "type": "object", + "properties": { + "errorCode": { + "type": "string" + }, + "message": { + "type": "string" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["errorCode", "message"], + "additionalProperties": false + } + } +} diff --git a/schemas/org-get-snapshot.json b/schemas/org-get-snapshot.json new file mode 100644 index 00000000..53f54072 --- /dev/null +++ b/schemas/org-get-snapshot.json @@ -0,0 +1,43 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/OrgSnapshot", + "definitions": { + "OrgSnapshot": { + "type": "object", + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "CreatedDate": { + "type": "string" + }, + "LastModifiedDate": { + "type": "string" + }, + "ExpirationDate": { + "type": "string" + }, + "Error": { + "type": "string" + }, + "SourceOrg": { + "type": "string" + }, + "SnapshotName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Content": { + "type": "string" + } + }, + "required": ["CreatedDate", "Description", "Id", "LastModifiedDate", "SnapshotName", "SourceOrg", "Status"] + } + } +} diff --git a/schemas/org-list-shape.json b/schemas/org-list-shape.json new file mode 100644 index 00000000..dab98b3f --- /dev/null +++ b/schemas/org-list-shape.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/OrgShapeListResults", + "definitions": { + "OrgShapeListResults": { + "type": "array", + "items": { + "$ref": "#/definitions/OrgShapeListResult" + } + }, + "OrgShapeListResult": { + "type": "object", + "properties": { + "orgId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "shapeId": { + "type": "string" + }, + "status": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "createdDate": { + "type": "string" + } + }, + "required": ["orgId", "username", "shapeId", "status", "createdBy", "createdDate"], + "additionalProperties": false + } + } +} diff --git a/schemas/org-list-snapshot.json b/schemas/org-list-snapshot.json new file mode 100644 index 00000000..55e75ea3 --- /dev/null +++ b/schemas/org-list-snapshot.json @@ -0,0 +1,49 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/OrgSnapshots", + "definitions": { + "OrgSnapshots": { + "type": "array", + "items": { + "$ref": "#/definitions/OrgSnapshot" + } + }, + "OrgSnapshot": { + "type": "object", + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "CreatedDate": { + "type": "string" + }, + "LastModifiedDate": { + "type": "string" + }, + "ExpirationDate": { + "type": "string" + }, + "Error": { + "type": "string" + }, + "SourceOrg": { + "type": "string" + }, + "SnapshotName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Content": { + "type": "string" + } + }, + "required": ["CreatedDate", "Description", "Id", "LastModifiedDate", "SnapshotName", "SourceOrg", "Status"] + } + } +} diff --git a/src/commands/org/delete/shape.ts b/src/commands/org/delete/shape.ts index 43e04e51..88bdaf28 100644 --- a/src/commands/org/delete/shape.ts +++ b/src/commands/org/delete/shape.ts @@ -28,11 +28,13 @@ import utils, { DeleteAllResult } from '../../../shared/deleteUtils.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('@salesforce/plugin-signups', 'shape.delete'); -export type OrgShapeDeleteResult = { - orgId: string; -} & DeleteAllResult; +export type OrgShapeDeleteResult = + | ({ + orgId: string; + } & DeleteAllResult) + | undefined; -export class OrgShapeDeleteCommand extends SfCommand { +export class OrgShapeDeleteCommand extends SfCommand { public static readonly summary = messages.getMessage('summary'); public static readonly description = messages.getMessage('description'); public static readonly examples = messages.getMessages('examples'); @@ -51,7 +53,7 @@ export class OrgShapeDeleteCommand extends SfCommand { + public async run(): Promise { const { flags } = await this.parse(OrgShapeDeleteCommand); const username = flags['target-org'].getUsername(); if (!username) throw new SfError('No username found for target-org'); diff --git a/src/commands/org/delete/snapshot.ts b/src/commands/org/delete/snapshot.ts index f97fc2dc..5b84ada5 100644 --- a/src/commands/org/delete/snapshot.ts +++ b/src/commands/org/delete/snapshot.ts @@ -32,7 +32,9 @@ const messages = Messages.loadMessages('@salesforce/plugin-signups', 'snapshot.d // jsforce can return SaveError[] or never[] const isSaveError = (error: SaveError): error is SaveError => error.message !== undefined; -export class SnapshotDelete extends SfCommand { +export type OptionalSaveResult = SaveResult | undefined; + +export class SnapshotDelete extends SfCommand { public static readonly summary = messages.getMessage('summary'); public static readonly description = messages.getMessage('description'); public static readonly examples = messages.getMessages('examples'); @@ -55,7 +57,7 @@ export class SnapshotDelete extends SfCommand { }), }; - public async run(): Promise { + public async run(): Promise { const { flags } = await this.parse(SnapshotDelete); if (!flags['no-prompt'] && !(await this.confirm({ message: messages.getMessage('prompt.confirm') }))) { return; diff --git a/src/commands/org/list/shape.ts b/src/commands/org/list/shape.ts index 6bda6a20..9040d6e9 100644 --- a/src/commands/org/list/shape.ts +++ b/src/commands/org/list/shape.ts @@ -16,12 +16,12 @@ import { Flags, loglevel, SfCommand, StandardColors } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; -import utils, { OrgShapeListResult } from '../../../shared/orgShapeListUtils.js'; +import utils, { OrgShapeListResults } from '../../../shared/orgShapeListUtils.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('@salesforce/plugin-signups', 'shape.list'); -export class OrgShapeListCommand extends SfCommand { +export class OrgShapeListCommand extends SfCommand { public static readonly summary = messages.getMessage('summary'); public static readonly description = messages.getMessage('description'); public static readonly examples = messages.getMessages('examples'); @@ -38,7 +38,7 @@ export class OrgShapeListCommand extends SfCommand { // there were no flags being used in the original! // eslint-disable-next-line sf-plugin/should-parse-flags - public async run(): Promise { + public async run(): Promise { const { orgShapes, errors } = await utils.getAllOrgShapesFromAuthenticatedOrgs(); errors.forEach((e) => this.warn(e)); if (orgShapes.length === 0) { diff --git a/src/commands/org/list/snapshot.ts b/src/commands/org/list/snapshot.ts index cd2233ad..5a1b94e2 100644 --- a/src/commands/org/list/snapshot.ts +++ b/src/commands/org/list/snapshot.ts @@ -21,12 +21,12 @@ import { SfCommand, } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; -import { OrgSnapshot, queryAll, printRecordTable } from '../../../shared/snapshot.js'; +import { OrgSnapshots, queryAll, printRecordTable } from '../../../shared/snapshot.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('@salesforce/plugin-signups', 'snapshot.list'); -export class SnapshotList extends SfCommand { +export class SnapshotList extends SfCommand { public static readonly summary = messages.getMessage('summary'); public static readonly description = messages.getMessage('description'); public static readonly examples = messages.getMessages('examples'); @@ -38,7 +38,7 @@ export class SnapshotList extends SfCommand { loglevel, }; - public async run(): Promise { + public async run(): Promise { const { flags } = await this.parse(SnapshotList); const results = await queryAll(flags['target-dev-hub'].getConnection(flags['api-version'])); if (!this.jsonEnabled()) { diff --git a/src/shared/orgShapeListUtils.ts b/src/shared/orgShapeListUtils.ts index d3907a40..b9b33a46 100644 --- a/src/shared/orgShapeListUtils.ts +++ b/src/shared/orgShapeListUtils.ts @@ -36,6 +36,8 @@ export type OrgShapeListResult = { createdDate: string; }; +export type OrgShapeListResults = OrgShapeListResult[]; + export type JsForceError = { errorCode: string; fields: string[]; diff --git a/src/shared/snapshot.ts b/src/shared/snapshot.ts index 643c64fb..eb623a19 100644 --- a/src/shared/snapshot.ts +++ b/src/shared/snapshot.ts @@ -37,6 +37,8 @@ export type OrgSnapshot = OrgSnapshotRequest & { Error?: string; }; +export type OrgSnapshots = OrgSnapshot[]; + export const ORG_SNAPSHOT_FIELDS = [ 'Id', 'SnapshotName', diff --git a/test/nuts/orgShape.nut.ts b/test/nuts/orgShape.nut.ts index cb50a443..acb6df93 100644 --- a/test/nuts/orgShape.nut.ts +++ b/test/nuts/orgShape.nut.ts @@ -70,15 +70,17 @@ describe('org:shape commands', () => { { ensureExitCode: 0, } - ).jsonOutput?.result as OrgShapeDeleteResult; + ).jsonOutput?.result; + expect(deleteResult).to.not.be.undefined; expect(deleteResult).to.have.all.keys(['orgId', 'shapeIds', 'failures']); - expect(deleteResult.shapeIds).to.include(newShapeId); + expect(deleteResult!.shapeIds).to.include(newShapeId); }); it('finds the shapes as it was before create', () => { const modifiedShapes = execCmd('force:org:shape:list --json', { ensureExitCode: 0, }).jsonOutput?.result as OrgShapeListResult[]; + expect; expect(modifiedShapes.length).to.equal(shapeAlreadyExists ? originalShapes.length - 1 : originalShapes.length); expect( modifiedShapes.some((shape) => { diff --git a/yarn.lock b/yarn.lock index baf4cd92..8af365f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1081,10 +1081,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/plugin-command-snapshot@^5.3.30": - version "5.3.30" - resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.3.30.tgz#0353f303d7bbfd8461833693f160288868c4bbb3" - integrity sha512-DyRRsNNlCs15vxoGQ1CcyP9Kkt+JGMg+Axovyd4Eutkg6Z/Q55HrIvxAT6shjIkWoFH44cqcDrhCGCA/7EFsLQ== +"@oclif/plugin-command-snapshot@^5.3.31": + version "5.3.31" + resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.3.31.tgz#1064f54273cead813d90c07604c16c3e99f07850" + integrity sha512-jDfwOlgIK+p8Q/YZcBsExZPGeFArtFZ5tqWV+tkW/fKLMMAIbKcrW/NPFFTGsaS3tL8nJfeqyT0f4e5ODd+vDA== dependencies: "@oclif/core" "^4" ansis "^3.17.0" @@ -1094,7 +1094,7 @@ lodash.get "^4.4.2" lodash.sortby "^4.7.0" semver "^7.8.5" - ts-json-schema-generator "^1.5.1" + ts-json-schema-generator "^2.9.0" "@oclif/plugin-help@^6.2.53": version "6.2.53" @@ -2455,10 +2455,10 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" - integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== +commander@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== commander@^4.0.1: version "4.1.1" @@ -3673,6 +3673,15 @@ glob@^10.3.10: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" +glob@^13.0.6: + version "13.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== + dependencies: + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" + glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -3685,7 +3694,7 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3, glob@^8.1.0: +glob@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -4859,6 +4868,11 @@ lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== +lru-cache@^11.0.0: + version "11.5.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.2.tgz#00e16665c90c620fba14a3c368732a976493f760" + integrity sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -5023,7 +5037,7 @@ minimatch@9.0.3: dependencies: brace-expansion "^2.0.1" -minimatch@^10.2.5: +minimatch@^10.2.2, minimatch@^10.2.5: version "10.2.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== @@ -5070,6 +5084,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +minipass@^7.1.2, minipass@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== + mocha@^10.7.0: version "10.7.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.0.tgz#9e5cbed8fa9b37537a25bd1f7fb4f6fc45458b9a" @@ -5546,6 +5565,14 @@ path-scurry@^1.10.1: lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-scurry@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + path-to-regexp@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" @@ -6064,11 +6091,16 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: +safe-stable-stringify@^2.3.1: version "2.4.3" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== +safe-stable-stringify@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" + integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -6657,18 +6689,19 @@ ts-api-utils@^1.0.1, ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -ts-json-schema-generator@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ts-json-schema-generator/-/ts-json-schema-generator-1.5.1.tgz#7759c421240be86d393a884ad186f926b22332db" - integrity sha512-apX5qG2+NA66j7b4AJm8q/DpdTeOsjfh7A3LpKsUiil0FepkNwtN28zYgjrsiiya2/OPhsr/PSjX5FUYg79rCg== +ts-json-schema-generator@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/ts-json-schema-generator/-/ts-json-schema-generator-2.9.0.tgz#cc2b99db0e64ee9ee6898c8c74905337536ef9fc" + integrity sha512-NR5ZE108uiPtBHBJNGnhwoUaUx5vWTDJzDFG9YlRoqxPU76n+5FClRh92dcGgysbe1smRmYalM9Saj97GW1J4Q== dependencies: "@types/json-schema" "^7.0.15" - commander "^12.0.0" - glob "^8.0.3" + commander "^14.0.3" + glob "^13.0.6" json5 "^2.2.3" normalize-path "^3.0.0" - safe-stable-stringify "^2.4.3" - typescript "~5.4.2" + safe-stable-stringify "^2.5.0" + tslib "^2.8.1" + typescript "^5.9.3" ts-node@^10.8.1, ts-node@^10.9.2: version "10.9.2" @@ -6709,7 +6742,7 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.6.2: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.6.2, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -6840,10 +6873,10 @@ typescript@^5.5.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== -typescript@~5.4.2: - version "5.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript@^5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0"