@trigger.dev/core 4.3.1 → 4.3.3

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.
Files changed (113) hide show
  1. package/dist/commonjs/v3/apiClient/index.js +32 -8
  2. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  3. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js +39 -0
  4. package/dist/commonjs/v3/apiClient/streamBatchItems.test.js.map +1 -1
  5. package/dist/commonjs/v3/idempotency-key-catalog/catalog.d.ts +9 -0
  6. package/dist/commonjs/v3/idempotency-key-catalog/catalog.js +3 -0
  7. package/dist/commonjs/v3/idempotency-key-catalog/catalog.js.map +1 -0
  8. package/dist/commonjs/v3/idempotency-key-catalog/index.d.ts +9 -0
  9. package/dist/commonjs/v3/idempotency-key-catalog/index.js +33 -0
  10. package/dist/commonjs/v3/idempotency-key-catalog/index.js.map +1 -0
  11. package/dist/commonjs/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.d.ts +8 -0
  12. package/dist/commonjs/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.js +35 -0
  13. package/dist/commonjs/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.js.map +1 -0
  14. package/dist/commonjs/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.d.ts +1 -0
  15. package/dist/commonjs/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.js +161 -0
  16. package/dist/commonjs/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.js.map +1 -0
  17. package/dist/commonjs/v3/idempotency-key-catalog-api.d.ts +3 -0
  18. package/dist/commonjs/v3/idempotency-key-catalog-api.js +9 -0
  19. package/dist/commonjs/v3/idempotency-key-catalog-api.js.map +1 -0
  20. package/dist/commonjs/v3/idempotencyKeys.d.ts +51 -4
  21. package/dist/commonjs/v3/idempotencyKeys.js +97 -5
  22. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -1
  23. package/dist/commonjs/v3/imports/superjson-cjs.cjs.map +1 -0
  24. package/dist/commonjs/v3/imports/superjson.d.ts +1 -0
  25. package/dist/commonjs/v3/imports/superjson.js +13 -0
  26. package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +61 -60
  27. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +191 -184
  28. package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +46 -45
  29. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +163 -156
  30. package/dist/commonjs/v3/schemas/api.d.ts +246 -56
  31. package/dist/commonjs/v3/schemas/api.js +14 -3
  32. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  33. package/dist/commonjs/v3/schemas/checkpoints.d.ts +66 -66
  34. package/dist/commonjs/v3/schemas/common.d.ts +215 -177
  35. package/dist/commonjs/v3/schemas/common.js +6 -0
  36. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  37. package/dist/commonjs/v3/schemas/messages.d.ts +2149 -2032
  38. package/dist/commonjs/v3/schemas/runEngine.d.ts +157 -150
  39. package/dist/commonjs/v3/schemas/schemas.d.ts +281 -262
  40. package/dist/commonjs/v3/schemas/webhooks.d.ts +68 -68
  41. package/dist/commonjs/v3/serverOnly/idempotencyKeys.d.ts +36 -0
  42. package/dist/commonjs/v3/serverOnly/idempotencyKeys.js +58 -0
  43. package/dist/commonjs/v3/serverOnly/idempotencyKeys.js.map +1 -0
  44. package/dist/commonjs/v3/serverOnly/index.d.ts +1 -0
  45. package/dist/commonjs/v3/serverOnly/index.js +1 -0
  46. package/dist/commonjs/v3/serverOnly/index.js.map +1 -1
  47. package/dist/commonjs/v3/types/tools.js +2 -2
  48. package/dist/commonjs/v3/types/tools.js.map +1 -1
  49. package/dist/commonjs/v3/utils/flattenAttributes.d.ts +2 -2
  50. package/dist/commonjs/v3/utils/flattenAttributes.js +24 -13
  51. package/dist/commonjs/v3/utils/flattenAttributes.js.map +1 -1
  52. package/dist/commonjs/v3/utils/globals.d.ts +2 -0
  53. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  54. package/dist/commonjs/v3/utils/ioSerialization.js +15 -27
  55. package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
  56. package/dist/commonjs/version.js +1 -1
  57. package/dist/esm/v3/apiClient/index.js +32 -8
  58. package/dist/esm/v3/apiClient/index.js.map +1 -1
  59. package/dist/esm/v3/apiClient/streamBatchItems.test.js +39 -0
  60. package/dist/esm/v3/apiClient/streamBatchItems.test.js.map +1 -1
  61. package/dist/esm/v3/idempotency-key-catalog/catalog.d.ts +9 -0
  62. package/dist/esm/v3/idempotency-key-catalog/catalog.js +2 -0
  63. package/dist/esm/v3/idempotency-key-catalog/catalog.js.map +1 -0
  64. package/dist/esm/v3/idempotency-key-catalog/index.d.ts +9 -0
  65. package/dist/esm/v3/idempotency-key-catalog/index.js +29 -0
  66. package/dist/esm/v3/idempotency-key-catalog/index.js.map +1 -0
  67. package/dist/esm/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.d.ts +8 -0
  68. package/dist/esm/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.js +31 -0
  69. package/dist/esm/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.js.map +1 -0
  70. package/dist/esm/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.d.ts +1 -0
  71. package/dist/esm/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.js +159 -0
  72. package/dist/esm/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.js.map +1 -0
  73. package/dist/esm/v3/idempotency-key-catalog-api.d.ts +3 -0
  74. package/dist/esm/v3/idempotency-key-catalog-api.js +6 -0
  75. package/dist/esm/v3/idempotency-key-catalog-api.js.map +1 -0
  76. package/dist/esm/v3/idempotencyKeys.d.ts +51 -4
  77. package/dist/esm/v3/idempotencyKeys.js +96 -5
  78. package/dist/esm/v3/idempotencyKeys.js.map +1 -1
  79. package/dist/esm/v3/imports/superjson.d.ts +2 -0
  80. package/dist/esm/v3/imports/superjson.js +10 -0
  81. package/dist/esm/v3/imports/superjson.js.map +1 -0
  82. package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +61 -60
  83. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +191 -184
  84. package/dist/esm/v3/runEngineWorker/workload/http.d.ts +46 -45
  85. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +163 -156
  86. package/dist/esm/v3/schemas/api.d.ts +246 -56
  87. package/dist/esm/v3/schemas/api.js +11 -0
  88. package/dist/esm/v3/schemas/api.js.map +1 -1
  89. package/dist/esm/v3/schemas/checkpoints.d.ts +66 -66
  90. package/dist/esm/v3/schemas/common.d.ts +215 -177
  91. package/dist/esm/v3/schemas/common.js +6 -0
  92. package/dist/esm/v3/schemas/common.js.map +1 -1
  93. package/dist/esm/v3/schemas/messages.d.ts +2149 -2032
  94. package/dist/esm/v3/schemas/runEngine.d.ts +157 -150
  95. package/dist/esm/v3/schemas/schemas.d.ts +281 -262
  96. package/dist/esm/v3/schemas/webhooks.d.ts +68 -68
  97. package/dist/esm/v3/serverOnly/idempotencyKeys.d.ts +36 -0
  98. package/dist/esm/v3/serverOnly/idempotencyKeys.js +51 -0
  99. package/dist/esm/v3/serverOnly/idempotencyKeys.js.map +1 -0
  100. package/dist/esm/v3/serverOnly/index.d.ts +1 -0
  101. package/dist/esm/v3/serverOnly/index.js +1 -0
  102. package/dist/esm/v3/serverOnly/index.js.map +1 -1
  103. package/dist/esm/v3/types/tools.js +2 -2
  104. package/dist/esm/v3/types/tools.js.map +1 -1
  105. package/dist/esm/v3/utils/flattenAttributes.d.ts +2 -2
  106. package/dist/esm/v3/utils/flattenAttributes.js +24 -13
  107. package/dist/esm/v3/utils/flattenAttributes.js.map +1 -1
  108. package/dist/esm/v3/utils/globals.d.ts +2 -0
  109. package/dist/esm/v3/utils/globals.js.map +1 -1
  110. package/dist/esm/v3/utils/ioSerialization.js +9 -24
  111. package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
  112. package/dist/esm/version.js +1 -1
  113. package/package.json +2 -2
@@ -0,0 +1,29 @@
1
+ const API_NAME = "idempotency-key-catalog";
2
+ import { getGlobal, registerGlobal } from "../utils/globals.js";
3
+ import { LRUIdempotencyKeyCatalog } from "./lruIdempotencyKeyCatalog.js";
4
+ export class IdempotencyKeyCatalogAPI {
5
+ static _instance;
6
+ constructor() { }
7
+ static getInstance() {
8
+ if (!this._instance) {
9
+ this._instance = new IdempotencyKeyCatalogAPI();
10
+ }
11
+ return this._instance;
12
+ }
13
+ registerKeyOptions(hash, options) {
14
+ this.#getCatalog().registerKeyOptions(hash, options);
15
+ }
16
+ getKeyOptions(hash) {
17
+ return this.#getCatalog().getKeyOptions(hash);
18
+ }
19
+ #getCatalog() {
20
+ let catalog = getGlobal(API_NAME);
21
+ if (!catalog) {
22
+ // Auto-initialize with LRU catalog on first access
23
+ catalog = new LRUIdempotencyKeyCatalog();
24
+ registerGlobal(API_NAME, catalog, true);
25
+ }
26
+ return catalog;
27
+ }
28
+ }
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/idempotency-key-catalog/index.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,OAAO,wBAAwB;IAC3B,MAAM,CAAC,SAAS,CAA4B;IAEpD,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,kBAAkB,CAAC,IAAY,EAAE,OAA8B;QACpE,IAAI,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEM,aAAa,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,WAAW;QACT,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,mDAAmD;YACnD,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;YACzC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { IdempotencyKeyCatalog, IdempotencyKeyOptions } from "./catalog.js";
2
+ export declare class LRUIdempotencyKeyCatalog implements IdempotencyKeyCatalog {
3
+ private cache;
4
+ private readonly maxSize;
5
+ constructor(maxSize?: number);
6
+ registerKeyOptions(hash: string, options: IdempotencyKeyOptions): void;
7
+ getKeyOptions(hash: string): IdempotencyKeyOptions | undefined;
8
+ }
@@ -0,0 +1,31 @@
1
+ export class LRUIdempotencyKeyCatalog {
2
+ cache;
3
+ maxSize;
4
+ constructor(maxSize = 1_000) {
5
+ this.cache = new Map();
6
+ // Clamp to non-negative to prevent infinite loop in eviction
7
+ this.maxSize = Math.max(0, maxSize);
8
+ }
9
+ registerKeyOptions(hash, options) {
10
+ // Delete and re-add to update position (most recently used)
11
+ this.cache.delete(hash);
12
+ this.cache.set(hash, options);
13
+ // Evict oldest entries if over capacity
14
+ while (this.cache.size > this.maxSize) {
15
+ const oldest = this.cache.keys().next().value;
16
+ if (oldest !== undefined) {
17
+ this.cache.delete(oldest);
18
+ }
19
+ }
20
+ }
21
+ getKeyOptions(hash) {
22
+ const options = this.cache.get(hash);
23
+ if (options) {
24
+ // Move to end (most recently used)
25
+ this.cache.delete(hash);
26
+ this.cache.set(hash, options);
27
+ }
28
+ return options;
29
+ }
30
+ }
31
+ //# sourceMappingURL=lruIdempotencyKeyCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lruIdempotencyKeyCatalog.js","sourceRoot":"","sources":["../../../../src/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IAC3B,KAAK,CAAqC;IACjC,OAAO,CAAS;IAEjC,YAAY,UAAkB,KAAK;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,6DAA6D;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,IAAY,EAAE,OAA8B;QAC7D,4DAA4D;QAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE9B,wCAAwC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,159 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { LRUIdempotencyKeyCatalog } from "./lruIdempotencyKeyCatalog.js";
3
+ describe("LRUIdempotencyKeyCatalog", () => {
4
+ describe("registerKeyOptions and getKeyOptions", () => {
5
+ it("should store and retrieve options", () => {
6
+ const catalog = new LRUIdempotencyKeyCatalog();
7
+ const options = { key: "my-key", scope: "global" };
8
+ catalog.registerKeyOptions("hash1", options);
9
+ expect(catalog.getKeyOptions("hash1")).toEqual(options);
10
+ });
11
+ it("should return undefined for non-existent keys", () => {
12
+ const catalog = new LRUIdempotencyKeyCatalog();
13
+ expect(catalog.getKeyOptions("non-existent")).toBeUndefined();
14
+ });
15
+ it("should store multiple keys", () => {
16
+ const catalog = new LRUIdempotencyKeyCatalog();
17
+ const options1 = { key: "key1", scope: "global" };
18
+ const options2 = { key: "key2", scope: "run" };
19
+ const options3 = { key: "key3", scope: "attempt" };
20
+ catalog.registerKeyOptions("hash1", options1);
21
+ catalog.registerKeyOptions("hash2", options2);
22
+ catalog.registerKeyOptions("hash3", options3);
23
+ expect(catalog.getKeyOptions("hash1")).toEqual(options1);
24
+ expect(catalog.getKeyOptions("hash2")).toEqual(options2);
25
+ expect(catalog.getKeyOptions("hash3")).toEqual(options3);
26
+ });
27
+ it("should update options when registering same key twice", () => {
28
+ const catalog = new LRUIdempotencyKeyCatalog();
29
+ const options1 = { key: "key1", scope: "global" };
30
+ const options2 = { key: "key1-updated", scope: "run" };
31
+ catalog.registerKeyOptions("hash1", options1);
32
+ catalog.registerKeyOptions("hash1", options2);
33
+ expect(catalog.getKeyOptions("hash1")).toEqual(options2);
34
+ });
35
+ });
36
+ describe("LRU eviction", () => {
37
+ it("should evict oldest entry when over capacity", () => {
38
+ const catalog = new LRUIdempotencyKeyCatalog(3);
39
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
40
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
41
+ catalog.registerKeyOptions("hash3", { key: "key3", scope: "global" });
42
+ // All three should exist
43
+ expect(catalog.getKeyOptions("hash1")).toBeDefined();
44
+ expect(catalog.getKeyOptions("hash2")).toBeDefined();
45
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
46
+ // After the gets above, the LRU order from oldest to newest is: hash1, hash2, hash3
47
+ // (each get moves the key to the most recent position)
48
+ // Add a fourth - hash1 should be evicted (it was accessed first, so it's the oldest)
49
+ catalog.registerKeyOptions("hash4", { key: "key4", scope: "global" });
50
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
51
+ expect(catalog.getKeyOptions("hash2")).toBeDefined();
52
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
53
+ expect(catalog.getKeyOptions("hash4")).toBeDefined();
54
+ });
55
+ it("should evict least recently registered entry when capacity exceeded", () => {
56
+ const catalog = new LRUIdempotencyKeyCatalog(3);
57
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
58
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
59
+ catalog.registerKeyOptions("hash3", { key: "key3", scope: "global" });
60
+ // Adding fourth should evict hash1 (oldest)
61
+ catalog.registerKeyOptions("hash4", { key: "key4", scope: "global" });
62
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
63
+ expect(catalog.getKeyOptions("hash2")).toBeDefined();
64
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
65
+ expect(catalog.getKeyOptions("hash4")).toBeDefined();
66
+ });
67
+ it("should evict multiple entries when adding many at once would exceed capacity", () => {
68
+ const catalog = new LRUIdempotencyKeyCatalog(2);
69
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
70
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
71
+ catalog.registerKeyOptions("hash3", { key: "key3", scope: "global" });
72
+ catalog.registerKeyOptions("hash4", { key: "key4", scope: "global" });
73
+ // Only hash3 and hash4 should remain
74
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
75
+ expect(catalog.getKeyOptions("hash2")).toBeUndefined();
76
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
77
+ expect(catalog.getKeyOptions("hash4")).toBeDefined();
78
+ });
79
+ it("should work with maxSize of 1", () => {
80
+ const catalog = new LRUIdempotencyKeyCatalog(1);
81
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
82
+ expect(catalog.getKeyOptions("hash1")).toBeDefined();
83
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
84
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
85
+ expect(catalog.getKeyOptions("hash2")).toBeDefined();
86
+ });
87
+ });
88
+ describe("LRU ordering", () => {
89
+ it("should move accessed key to most recent position", () => {
90
+ const catalog = new LRUIdempotencyKeyCatalog(3);
91
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
92
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
93
+ catalog.registerKeyOptions("hash3", { key: "key3", scope: "global" });
94
+ // Access hash1, moving it to most recent
95
+ catalog.getKeyOptions("hash1");
96
+ // Add hash4 - should evict hash2 (now the oldest)
97
+ catalog.registerKeyOptions("hash4", { key: "key4", scope: "global" });
98
+ expect(catalog.getKeyOptions("hash1")).toBeDefined();
99
+ expect(catalog.getKeyOptions("hash2")).toBeUndefined();
100
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
101
+ expect(catalog.getKeyOptions("hash4")).toBeDefined();
102
+ });
103
+ it("should move re-registered key to most recent position", () => {
104
+ const catalog = new LRUIdempotencyKeyCatalog(3);
105
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
106
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
107
+ catalog.registerKeyOptions("hash3", { key: "key3", scope: "global" });
108
+ // Re-register hash1, moving it to most recent
109
+ catalog.registerKeyOptions("hash1", { key: "key1-updated", scope: "run" });
110
+ // Add hash4 - should evict hash2 (now the oldest)
111
+ catalog.registerKeyOptions("hash4", { key: "key4", scope: "global" });
112
+ expect(catalog.getKeyOptions("hash1")).toEqual({ key: "key1-updated", scope: "run" });
113
+ expect(catalog.getKeyOptions("hash2")).toBeUndefined();
114
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
115
+ expect(catalog.getKeyOptions("hash4")).toBeDefined();
116
+ });
117
+ it("should not affect order when getting non-existent key", () => {
118
+ const catalog = new LRUIdempotencyKeyCatalog(2);
119
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
120
+ catalog.registerKeyOptions("hash2", { key: "key2", scope: "global" });
121
+ // Try to get non-existent key
122
+ catalog.getKeyOptions("non-existent");
123
+ // Add hash3 - should still evict hash1 (oldest)
124
+ catalog.registerKeyOptions("hash3", { key: "key3", scope: "global" });
125
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
126
+ expect(catalog.getKeyOptions("hash2")).toBeDefined();
127
+ expect(catalog.getKeyOptions("hash3")).toBeDefined();
128
+ });
129
+ });
130
+ describe("default maxSize", () => {
131
+ it("should use default maxSize of 1000", () => {
132
+ const catalog = new LRUIdempotencyKeyCatalog();
133
+ // Register 1001 entries
134
+ for (let i = 0; i < 1001; i++) {
135
+ catalog.registerKeyOptions(`hash${i}`, { key: `key${i}`, scope: "global" });
136
+ }
137
+ // First entry should be evicted
138
+ expect(catalog.getKeyOptions("hash0")).toBeUndefined();
139
+ // Last entry should exist
140
+ expect(catalog.getKeyOptions("hash1000")).toBeDefined();
141
+ });
142
+ });
143
+ describe("edge cases", () => {
144
+ it("should handle negative maxSize by clamping to 0", () => {
145
+ const catalog = new LRUIdempotencyKeyCatalog(-5);
146
+ // With maxSize clamped to 0, nothing should be stored
147
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
148
+ // Should be immediately evicted since maxSize is 0
149
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
150
+ });
151
+ it("should handle maxSize of 0", () => {
152
+ const catalog = new LRUIdempotencyKeyCatalog(0);
153
+ catalog.registerKeyOptions("hash1", { key: "key1", scope: "global" });
154
+ // Should be immediately evicted since maxSize is 0
155
+ expect(catalog.getKeyOptions("hash1")).toBeUndefined();
156
+ });
157
+ });
158
+ });
159
+ //# sourceMappingURL=lruIdempotencyKeyCatalog.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lruIdempotencyKeyCatalog.test.js","sourceRoot":"","sources":["../../../../src/v3/idempotency-key-catalog/lruIdempotencyKeyCatalog.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { IdempotencyKeyCatalogAPI } from "./idempotency-key-catalog/index.js";
2
+ /** Entrypoint for idempotency key catalog API */
3
+ export declare const idempotencyKeyCatalog: IdempotencyKeyCatalogAPI;
@@ -0,0 +1,6 @@
1
+ // Split module-level variable definition into separate files to allow
2
+ // tree-shaking on each api instance.
3
+ import { IdempotencyKeyCatalogAPI } from "./idempotency-key-catalog/index.js";
4
+ /** Entrypoint for idempotency key catalog API */
5
+ export const idempotencyKeyCatalog = IdempotencyKeyCatalogAPI.getInstance();
6
+ //# sourceMappingURL=idempotency-key-catalog-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idempotency-key-catalog-api.js","sourceRoot":"","sources":["../../../src/v3/idempotency-key-catalog-api.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC"}
@@ -1,5 +1,21 @@
1
+ import type { IdempotencyKeyOptions, IdempotencyKeyScope } from "./idempotency-key-catalog/catalog.js";
1
2
  import { IdempotencyKey } from "./types/idempotencyKeys.js";
2
3
  import type { ZodFetchOptions } from "./apiClient/core.js";
4
+ export type { IdempotencyKeyScope, IdempotencyKeyOptions } from "./idempotency-key-catalog/catalog.js";
5
+ /**
6
+ * Extracts the user-provided key and scope from an idempotency key created with `idempotencyKeys.create()`.
7
+ *
8
+ * @param idempotencyKey The idempotency key to extract options from
9
+ * @returns The original key and scope, or undefined if the key doesn't have attached options
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const key = await idempotencyKeys.create("my-key", { scope: "global" });
14
+ * const options = getIdempotencyKeyOptions(key);
15
+ * // options = { key: "my-key", scope: "global" }
16
+ * ```
17
+ */
18
+ export declare function getIdempotencyKeyOptions(idempotencyKey: IdempotencyKey | string): IdempotencyKeyOptions | undefined;
3
19
  export declare function isIdempotencyKey(value: string | string[] | IdempotencyKey): value is IdempotencyKey;
4
20
  export declare function flattenIdempotencyKey(idempotencyKey?: IdempotencyKey | string | string[] | (undefined | IdempotencyKey | string | string[])[]): IdempotencyKey | string | string[] | undefined;
5
21
  export declare function makeIdempotencyKey(idempotencyKey?: IdempotencyKey | string | string[]): Promise<IdempotencyKey | undefined>;
@@ -39,7 +55,7 @@ export declare function makeIdempotencyKey(idempotencyKey?: IdempotencyKey | str
39
55
  * ```
40
56
  */
41
57
  export declare function createIdempotencyKey(key: string | string[], options?: {
42
- scope?: "run" | "attempt" | "global";
58
+ scope?: IdempotencyKeyScope;
43
59
  }): Promise<IdempotencyKey>;
44
60
  type AttemptKeyMaterial = {
45
61
  run: {
@@ -51,8 +67,39 @@ type AttemptKeyMaterial = {
51
67
  };
52
68
  /** Creates a unique key for each attempt. */
53
69
  export declare function attemptKey(ctx: AttemptKeyMaterial): string;
54
- /** Resets an idempotency key, effectively deleting it from the associated task.*/
55
- export declare function resetIdempotencyKey(taskIdentifier: string, idempotencyKey: string, requestOptions?: ZodFetchOptions): Promise<{
70
+ export type ResetIdempotencyKeyOptions = {
71
+ scope?: IdempotencyKeyScope;
72
+ /** Required if scope is "run" or "attempt" to reconstruct the hash */
73
+ parentRunId?: string;
74
+ /** Required if scope is "attempt" to reconstruct the hash */
75
+ attemptNumber?: number;
76
+ };
77
+ /**
78
+ * Resets an idempotency key, effectively deleting it from the associated task.
79
+ *
80
+ * @param taskIdentifier The task identifier (e.g., "my-task")
81
+ * @param idempotencyKey The idempotency key to reset. Can be:
82
+ * - An `IdempotencyKey` created with `idempotencyKeys.create()` (options are extracted automatically)
83
+ * - A string or string array (requires `options.scope` and potentially `options.parentRunId`)
84
+ * @param options Options for reconstructing the hash if needed
85
+ * @param requestOptions Optional fetch options
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * // Using a key created with idempotencyKeys.create() - options are extracted automatically
90
+ * const key = await idempotencyKeys.create("my-key", { scope: "global" });
91
+ * await idempotencyKeys.reset("my-task", key);
92
+ *
93
+ * // Using a raw string with global scope
94
+ * await idempotencyKeys.reset("my-task", "my-key", { scope: "global" });
95
+ *
96
+ * // Using a raw string with run scope (requires parentRunId)
97
+ * await idempotencyKeys.reset("my-task", "my-key", {
98
+ * scope: "run",
99
+ * parentRunId: "run_abc123"
100
+ * });
101
+ * ```
102
+ */
103
+ export declare function resetIdempotencyKey(taskIdentifier: string, idempotencyKey: IdempotencyKey | string | string[], options?: ResetIdempotencyKeyOptions, requestOptions?: ZodFetchOptions): Promise<{
56
104
  id: string;
57
105
  }>;
58
- export {};
@@ -1,9 +1,34 @@
1
1
  import { apiClientManager } from "./apiClientManager-api.js";
2
+ import { idempotencyKeyCatalog } from "./idempotency-key-catalog-api.js";
2
3
  import { taskContext } from "./task-context-api.js";
3
4
  import { digestSHA256 } from "./utils/crypto.js";
5
+ /**
6
+ * Extracts the user-provided key and scope from an idempotency key created with `idempotencyKeys.create()`.
7
+ *
8
+ * @param idempotencyKey The idempotency key to extract options from
9
+ * @returns The original key and scope, or undefined if the key doesn't have attached options
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const key = await idempotencyKeys.create("my-key", { scope: "global" });
14
+ * const options = getIdempotencyKeyOptions(key);
15
+ * // options = { key: "my-key", scope: "global" }
16
+ * ```
17
+ */
18
+ export function getIdempotencyKeyOptions(idempotencyKey) {
19
+ // Look up options from the catalog using the hash string
20
+ if (typeof idempotencyKey === "string") {
21
+ return idempotencyKeyCatalog.getKeyOptions(idempotencyKey);
22
+ }
23
+ return undefined;
24
+ }
4
25
  export function isIdempotencyKey(value) {
5
26
  // Cannot check the brand at runtime because it doesn't exist (it's a TypeScript-only construct)
6
- return typeof value === "string" && value.length === 64;
27
+ // Check for primitive strings only (we no longer use String objects)
28
+ if (typeof value === "string") {
29
+ return value.length === 64;
30
+ }
31
+ return false;
7
32
  }
8
33
  export function flattenIdempotencyKey(idempotencyKey) {
9
34
  if (!idempotencyKey) {
@@ -70,7 +95,13 @@ export async function makeIdempotencyKey(idempotencyKey) {
70
95
  * ```
71
96
  */
72
97
  export async function createIdempotencyKey(key, options) {
73
- const idempotencyKey = await generateIdempotencyKey([...(Array.isArray(key) ? key : [key])].concat(injectScope(options?.scope ?? "run")));
98
+ const scope = options?.scope ?? "run";
99
+ const keyArray = Array.isArray(key) ? key : [key];
100
+ const userKey = keyArray.join("-");
101
+ const idempotencyKey = await generateIdempotencyKey(keyArray.concat(injectScope(scope)));
102
+ // Register the original key and scope in the catalog for later extraction
103
+ idempotencyKeyCatalog.registerKeyOptions(idempotencyKey, { key: userKey, scope });
104
+ // Return primitive string cast as IdempotencyKey
74
105
  return idempotencyKey;
75
106
  }
76
107
  function injectScope(scope) {
@@ -97,9 +128,69 @@ async function generateIdempotencyKey(keyMaterial) {
97
128
  export function attemptKey(ctx) {
98
129
  return `${ctx.run.id}-${ctx.attempt.number}`;
99
130
  }
100
- /** Resets an idempotency key, effectively deleting it from the associated task.*/
101
- export async function resetIdempotencyKey(taskIdentifier, idempotencyKey, requestOptions) {
131
+ /**
132
+ * Resets an idempotency key, effectively deleting it from the associated task.
133
+ *
134
+ * @param taskIdentifier The task identifier (e.g., "my-task")
135
+ * @param idempotencyKey The idempotency key to reset. Can be:
136
+ * - An `IdempotencyKey` created with `idempotencyKeys.create()` (options are extracted automatically)
137
+ * - A string or string array (requires `options.scope` and potentially `options.parentRunId`)
138
+ * @param options Options for reconstructing the hash if needed
139
+ * @param requestOptions Optional fetch options
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * // Using a key created with idempotencyKeys.create() - options are extracted automatically
144
+ * const key = await idempotencyKeys.create("my-key", { scope: "global" });
145
+ * await idempotencyKeys.reset("my-task", key);
146
+ *
147
+ * // Using a raw string with global scope
148
+ * await idempotencyKeys.reset("my-task", "my-key", { scope: "global" });
149
+ *
150
+ * // Using a raw string with run scope (requires parentRunId)
151
+ * await idempotencyKeys.reset("my-task", "my-key", {
152
+ * scope: "run",
153
+ * parentRunId: "run_abc123"
154
+ * });
155
+ * ```
156
+ */
157
+ export async function resetIdempotencyKey(taskIdentifier, idempotencyKey, options, requestOptions) {
102
158
  const client = apiClientManager.clientOrThrow();
103
- return client.resetIdempotencyKey(taskIdentifier, idempotencyKey, requestOptions);
159
+ // If the key is already a 64-char hash, use it directly
160
+ if (typeof idempotencyKey === "string" && idempotencyKey.length === 64) {
161
+ return client.resetIdempotencyKey(taskIdentifier, idempotencyKey, requestOptions);
162
+ }
163
+ // Try to extract options from an IdempotencyKey created with idempotencyKeys.create()
164
+ const attachedOptions = typeof idempotencyKey === "string"
165
+ ? getIdempotencyKeyOptions(idempotencyKey)
166
+ : undefined;
167
+ const scope = attachedOptions?.scope ?? options?.scope ?? "run";
168
+ const keyArray = Array.isArray(idempotencyKey)
169
+ ? idempotencyKey
170
+ : [attachedOptions?.key ?? String(idempotencyKey)];
171
+ // Build scope suffix based on scope type
172
+ let scopeSuffix = [];
173
+ switch (scope) {
174
+ case "run": {
175
+ const parentRunId = options?.parentRunId ?? taskContext?.ctx?.run.id;
176
+ if (!parentRunId) {
177
+ throw new Error("resetIdempotencyKey: parentRunId is required for 'run' scope when called outside a task context");
178
+ }
179
+ scopeSuffix = [parentRunId];
180
+ break;
181
+ }
182
+ case "attempt": {
183
+ const parentRunId = options?.parentRunId ?? taskContext?.ctx?.run.id;
184
+ const attemptNumber = options?.attemptNumber ?? taskContext?.ctx?.attempt.number;
185
+ if (!parentRunId || attemptNumber === undefined) {
186
+ throw new Error("resetIdempotencyKey: parentRunId and attemptNumber are required for 'attempt' scope when called outside a task context");
187
+ }
188
+ scopeSuffix = [parentRunId, attemptNumber.toString()];
189
+ break;
190
+ }
191
+ }
192
+ // Generate the hash using the same algorithm as createIdempotencyKey
193
+ const hash = await generateIdempotencyKey(keyArray.concat(scopeSuffix));
194
+ return client.resetIdempotencyKey(taskIdentifier, hash, requestOptions);
104
195
  }
105
196
  //# sourceMappingURL=idempotencyKeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"idempotencyKeys.js","sourceRoot":"","sources":["../../../src/v3/idempotencyKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,UAAU,gBAAgB,CAC9B,KAAyC;IAEzC,gGAAgG;IAChG,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,cAIsD;IAEtD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,sEAAsE;QACtE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,MAAM,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAa,CAAC;IACjB,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAAmD;IAEnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,oBAAoB,CAAC,cAAc,EAAE;QAChD,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAsB,EACtB,OAAkD;IAElD,MAAM,cAAc,GAAG,MAAM,sBAAsB,CACjD,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CACrF,CAAC;IAEF,OAAO,cAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAAmC;IACtD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAqB;IACzD,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAWD,6CAA6C;AAC7C,MAAM,UAAU,UAAU,CAAC,GAAuB;IAChD,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,cAAsB,EACtB,cAAsB,EACtB,cAAgC;IAEhC,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IAEhD,OAAO,MAAM,CAAC,mBAAmB,CAC/B,cAAc,EACd,cAAc,EACd,cAAc,CACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"idempotencyKeys.js","sourceRoot":"","sources":["../../../src/v3/idempotencyKeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import superjson from "superjson";
2
+ export default superjson;
@@ -0,0 +1,10 @@
1
+ // @ts-ignore
2
+ import superjson from "superjson";
3
+ superjson.registerCustom({
4
+ isApplicable: (v) => typeof Buffer === "function" && Buffer.isBuffer(v),
5
+ serialize: (v) => [...v],
6
+ deserialize: (v) => Buffer.from(v),
7
+ }, "buffer");
8
+ // @ts-ignore
9
+ export default superjson;
10
+ //# sourceMappingURL=superjson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superjson.js","sourceRoot":"","sources":["../../../../src/v3/imports/superjson.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,SAAS,CAAC,cAAc,CACtB;IACE,YAAY,EAAE,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CACnC,EACD,QAAQ,CACT,CAAC;AAEF,aAAa;AACb,eAAe,SAAS,CAAC"}