@fairmint/canton-node-sdk 0.0.92 → 0.0.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ import { ValidatorApiClient } from "../../clients";
2
+ import { DisclosedContract } from "../../clients/ledger-json-api/schemas";
3
+ export declare function getFeaturedAppRightContractDetails(validatorApi: ValidatorApiClient): Promise<DisclosedContract>;
4
+ //# sourceMappingURL=featuredAppRight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featuredAppRight.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/featuredAppRight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,wBAAsB,kCAAkC,CACtD,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsB5B"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFeaturedAppRightContractDetails = getFeaturedAppRightContractDetails;
4
+ async function getFeaturedAppRightContractDetails(validatorApi) {
5
+ const featuredAppRight = await validatorApi.lookupFeaturedAppRight({
6
+ partyId: validatorApi.getPartyId(),
7
+ });
8
+ if (!featuredAppRight || !featuredAppRight.featured_app_right) {
9
+ throw new Error(`No featured app right found for party ${validatorApi.getPartyId()}`);
10
+ }
11
+ // The featured-apps endpoint may not include the synchronizer/domain id.
12
+ // Fallback to amulet rules which reliably expose the domain_id to use as synchronizerId.
13
+ const amuletRules = await validatorApi.getAmuletRules();
14
+ const synchronizerIdFromRules = amuletRules?.amulet_rules?.domain_id || '';
15
+ return {
16
+ contractId: featuredAppRight.featured_app_right.contract_id,
17
+ createdEventBlob: featuredAppRight.featured_app_right.created_event_blob,
18
+ synchronizerId: featuredAppRight?.featured_app_right?.domain_id ||
19
+ synchronizerIdFromRules,
20
+ templateId: featuredAppRight.featured_app_right.template_id,
21
+ };
22
+ }
23
+ //# sourceMappingURL=featuredAppRight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featuredAppRight.js","sourceRoot":"","sources":["../../../../src/utils/contracts/featuredAppRight.ts"],"names":[],"mappings":";;AAGA,gFAwBC;AAxBM,KAAK,UAAU,kCAAkC,CACtD,YAAgC;IAEhC,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC;QACjE,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE;KACnC,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,yCAAyC,YAAY,CAAC,UAAU,EAAE,EAAE,CACrE,CAAC;IACJ,CAAC;IACD,yEAAyE;IACzE,yFAAyF;IACzF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IACxD,MAAM,uBAAuB,GAC1B,WAAmB,EAAE,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;IACtD,OAAO;QACL,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,WAAW;QAC3D,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,kBAAkB;QACxE,cAAc,EACX,gBAAwB,EAAE,kBAAkB,EAAE,SAAS;YACxD,uBAAuB;QACzB,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,WAAW;KAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { SubmitAndWaitForTransactionTreeResponse } from "../../clients/ledger-json-api/operations";
2
+ export interface CreatedTreeEventValue {
3
+ contractId: string;
4
+ templateId: string;
5
+ contractKey?: unknown;
6
+ createArgument?: unknown;
7
+ createdEventBlob?: string;
8
+ witnessParties?: string[];
9
+ signatories?: string[];
10
+ observers?: string[];
11
+ createdAt?: string;
12
+ packageName?: string;
13
+ }
14
+ export interface CreatedTreeEventWrapper {
15
+ CreatedTreeEvent: {
16
+ value: CreatedTreeEventValue;
17
+ };
18
+ }
19
+ export declare function findCreatedEventByTemplateId(response: SubmitAndWaitForTransactionTreeResponse, expectedTemplateId: string): CreatedTreeEventWrapper | undefined;
20
+ //# sourceMappingURL=findCreatedEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCreatedEvent.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/findCreatedEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,0CAA0C,CAAC;AAEnG,MAAM,WAAW,qBAAqB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACvC,gBAAgB,EAAE;QACjB,KAAK,EAAE,qBAAqB,CAAC;KAC7B,CAAC;CACF;AAQD,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,uCAAuC,EACjD,kBAAkB,EAAE,MAAM,GACxB,uBAAuB,GAAG,SAAS,CAwBrC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findCreatedEventByTemplateId = findCreatedEventByTemplateId;
4
+ function isCreatedTreeEventWrapper(event) {
5
+ if (!event || typeof event !== 'object')
6
+ return false;
7
+ const e = event;
8
+ return !!e.CreatedTreeEvent && typeof e.CreatedTreeEvent === 'object' && 'value' in e.CreatedTreeEvent;
9
+ }
10
+ function findCreatedEventByTemplateId(response, expectedTemplateId) {
11
+ const eventsById = (response.transactionTree?.eventsById ?? {});
12
+ // Extract the part after the first ':' from the expected template ID
13
+ const expectedTemplateIdSuffix = expectedTemplateId.includes(':')
14
+ ? expectedTemplateId.substring(expectedTemplateId.indexOf(':') + 1)
15
+ : expectedTemplateId;
16
+ for (const event of Object.values(eventsById)) {
17
+ if (isCreatedTreeEventWrapper(event)) {
18
+ const created = event.CreatedTreeEvent.value;
19
+ if (created?.templateId) {
20
+ // Extract the part after the first ':' from the actual template ID
21
+ const actualTemplateIdSuffix = created.templateId.includes(':')
22
+ ? created.templateId.substring(created.templateId.indexOf(':') + 1)
23
+ : created.templateId;
24
+ if (actualTemplateIdSuffix === expectedTemplateIdSuffix) {
25
+ return event;
26
+ }
27
+ }
28
+ }
29
+ }
30
+ return undefined;
31
+ }
32
+ //# sourceMappingURL=findCreatedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCreatedEvent.js","sourceRoot":"","sources":["../../../../src/utils/contracts/findCreatedEvent.ts"],"names":[],"mappings":";;AA2BA,oEA2BC;AAjCD,SAAS,yBAAyB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAmD,CAAC;IAC9D,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,gBAAgB,CAAC;AACxG,CAAC;AAED,SAAgB,4BAA4B,CAC3C,QAAiD,EACjD,kBAA0B;IAE1B,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,IAAI,EAAE,CAA4B,CAAC;IAE3F,qEAAqE;IACrE,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC;QAChE,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,kBAAkB,CAAC;IAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC7C,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;gBACzB,mEAAmE;gBACnE,MAAM,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9D,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAEtB,IAAI,sBAAsB,KAAK,wBAAwB,EAAE,CAAC;oBACzD,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -1,2 +1,4 @@
1
1
  export * from './contract-monitor';
2
+ export * from './featuredAppRight';
3
+ export * from './findCreatedEvent';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -15,4 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./contract-monitor"), exports);
18
+ __exportStar(require("./featuredAppRight"), exports);
19
+ __exportStar(require("./findCreatedEvent"), exports);
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,qDAAmC"}
@@ -0,0 +1,23 @@
1
+ import { LedgerJsonApiClient } from "../../clients";
2
+ import { DisclosedContract, Command } from "../../clients/ledger-json-api/schemas";
3
+ export interface BatchSubmitResult {
4
+ updateId: string;
5
+ }
6
+ export declare class TransactionBatch {
7
+ private readonly client;
8
+ private readonly actAs;
9
+ private readAs;
10
+ private disclosedContracts;
11
+ private commands;
12
+ constructor(client: LedgerJsonApiClient, actAs: string[], readAs?: string[]);
13
+ addDisclosedContracts(contracts: DisclosedContract[]): this;
14
+ addCommand(command: Command): this;
15
+ addCommands(commands: Command[]): this;
16
+ addBuiltCommand(input: {
17
+ command: Command;
18
+ disclosedContracts?: DisclosedContract[];
19
+ }): this;
20
+ clear(): this;
21
+ submit(): Promise<BatchSubmitResult>;
22
+ }
23
+ //# sourceMappingURL=TransactionBatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionBatch.d.ts","sourceRoot":"","sources":["../../../../src/utils/transactions/TransactionBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAiB;gBAErB,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;IAMpE,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAK3D,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAKtC,eAAe,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAAG,IAAI;IAQ5F,KAAK,IAAI,IAAI;IAMP,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAqBlD"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBatch = void 0;
4
+ class TransactionBatch {
5
+ constructor(client, actAs, readAs) {
6
+ this.disclosedContracts = [];
7
+ this.commands = [];
8
+ this.client = client;
9
+ this.actAs = actAs;
10
+ this.readAs = readAs;
11
+ }
12
+ addDisclosedContracts(contracts) {
13
+ this.disclosedContracts.push(...contracts);
14
+ return this;
15
+ }
16
+ addCommand(command) {
17
+ this.commands.push(command);
18
+ return this;
19
+ }
20
+ addCommands(commands) {
21
+ this.commands.push(...commands);
22
+ return this;
23
+ }
24
+ addBuiltCommand(input) {
25
+ this.commands.push(input.command);
26
+ if (input.disclosedContracts && input.disclosedContracts.length > 0) {
27
+ this.disclosedContracts.push(...input.disclosedContracts);
28
+ }
29
+ return this;
30
+ }
31
+ clear() {
32
+ this.commands = [];
33
+ this.disclosedContracts = [];
34
+ return this;
35
+ }
36
+ async submit() {
37
+ // Dedupe disclosed contracts by their stringified representation
38
+ this.disclosedContracts = Array.from(new Map(this.disclosedContracts.map(contract => [
39
+ JSON.stringify(contract),
40
+ contract
41
+ ])).values());
42
+ const response = (await this.client.submitAndWaitForTransactionTree({
43
+ actAs: this.actAs,
44
+ ...(this.readAs ? { readAs: this.readAs } : {}),
45
+ commands: this.commands,
46
+ ...(this.disclosedContracts.length > 0
47
+ ? { disclosedContracts: this.disclosedContracts }
48
+ : {}),
49
+ }));
50
+ return { updateId: response.transactionTree.updateId };
51
+ }
52
+ }
53
+ exports.TransactionBatch = TransactionBatch;
54
+ //# sourceMappingURL=TransactionBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionBatch.js","sourceRoot":"","sources":["../../../../src/utils/transactions/TransactionBatch.ts"],"names":[],"mappings":";;;AAQA,MAAa,gBAAgB;IAO3B,YAAY,MAA2B,EAAE,KAAe,EAAE,MAAiB;QAHnE,uBAAkB,GAAwB,EAAE,CAAC;QAC7C,aAAQ,GAAc,EAAE,CAAC;QAG/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,qBAAqB,CAAC,SAA8B;QACzD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,OAAgB;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,QAAmB;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,eAAe,CAAC,KAAqE;QAC1F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAClC,IAAI,GAAG,CACL,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxB,QAAQ;SACT,CAAC,CACH,CAAC,MAAM,EAAE,CACX,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC;YAClE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;gBACpC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAA4C,CAAC;QAE/C,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC;CACF;AA/DD,4CA+DC"}
@@ -1,2 +1,3 @@
1
1
  export * from './find-created-event';
2
+ export * from './TransactionBatch';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/transactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/transactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./find-created-event"), exports);
18
+ __exportStar(require("./TransactionBatch"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/transactions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/transactions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,qDAAmC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/canton-node-sdk",
3
- "version": "0.0.92",
3
+ "version": "0.0.94",
4
4
  "description": "Canton Node SDK",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
@@ -54,22 +54,22 @@
54
54
  "homepage": "https://sdk.canton.fairmint.com/",
55
55
  "devDependencies": {
56
56
  "@types/jest": "30.0.0",
57
- "@types/node": "24.3.0",
57
+ "@types/node": "24.5.2",
58
58
  "@typescript-eslint/eslint-plugin": "8.40.0",
59
59
  "@typescript-eslint/parser": "8.41.0",
60
- "eslint": "9.34.0",
60
+ "eslint": "9.36.0",
61
61
  "eslint-config-prettier": "10.1.8",
62
62
  "eslint-plugin-import": "2.32.0",
63
63
  "eslint-plugin-markdown": "5.1.0",
64
64
  "eslint-plugin-prettier": "5.5.4",
65
- "jest": "30.1.2",
65
+ "jest": "30.1.3",
66
66
  "markdownlint-cli": "0.45.0",
67
67
  "npm-package-json-lint": "9.0.0",
68
68
  "prettier": "3.6.2",
69
69
  "ts-jest": "29.4.1",
70
70
  "tsx": "4.20.5",
71
71
  "typescript": "5.9.2",
72
- "@types/ws": "8.5.12"
72
+ "@types/ws": "8.18.1"
73
73
  },
74
74
  "engines": {
75
75
  "node": ">=18.0.0"
@@ -81,6 +81,6 @@
81
81
  "openapi-fetch": "^0.14.0",
82
82
  "openapi-typescript": "7.9.1",
83
83
  "zod": "4.1.5",
84
- "ws": "8.18.0"
84
+ "ws": "8.18.3"
85
85
  }
86
86
  }