inngest 4.2.6 → 4.4.0

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 (175) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/api/schema.d.cts +2 -2
  3. package/api/schema.d.cts.map +1 -1
  4. package/api/schema.d.ts +2 -2
  5. package/api/schema.d.ts.map +1 -1
  6. package/components/DeferredFunction.cjs +66 -0
  7. package/components/DeferredFunction.cjs.map +1 -0
  8. package/components/DeferredFunction.d.cts +99 -0
  9. package/components/DeferredFunction.d.cts.map +1 -0
  10. package/components/DeferredFunction.d.ts +99 -0
  11. package/components/DeferredFunction.d.ts.map +1 -0
  12. package/components/DeferredFunction.js +65 -0
  13. package/components/DeferredFunction.js.map +1 -0
  14. package/components/Inngest.cjs +5 -2
  15. package/components/Inngest.cjs.map +1 -1
  16. package/components/Inngest.d.cts +11 -4
  17. package/components/Inngest.d.cts.map +1 -1
  18. package/components/Inngest.d.ts +11 -4
  19. package/components/Inngest.d.ts.map +1 -1
  20. package/components/Inngest.js +5 -2
  21. package/components/Inngest.js.map +1 -1
  22. package/components/InngestCommHandler.cjs +28 -23
  23. package/components/InngestCommHandler.cjs.map +1 -1
  24. package/components/InngestCommHandler.d.cts +9 -4
  25. package/components/InngestCommHandler.d.cts.map +1 -1
  26. package/components/InngestCommHandler.d.ts +9 -4
  27. package/components/InngestCommHandler.d.ts.map +1 -1
  28. package/components/InngestCommHandler.js +28 -23
  29. package/components/InngestCommHandler.js.map +1 -1
  30. package/components/InngestFunction.cjs +27 -19
  31. package/components/InngestFunction.cjs.map +1 -1
  32. package/components/InngestFunction.d.cts +6 -1
  33. package/components/InngestFunction.d.cts.map +1 -1
  34. package/components/InngestFunction.d.ts +6 -1
  35. package/components/InngestFunction.d.ts.map +1 -1
  36. package/components/InngestFunction.js +27 -19
  37. package/components/InngestFunction.js.map +1 -1
  38. package/components/InngestGroupTools.cjs +1 -1
  39. package/components/InngestGroupTools.cjs.map +1 -1
  40. package/components/InngestGroupTools.js +1 -1
  41. package/components/InngestGroupTools.js.map +1 -1
  42. package/components/InngestStepTools.cjs +3 -7
  43. package/components/InngestStepTools.cjs.map +1 -1
  44. package/components/InngestStepTools.d.cts +10 -7
  45. package/components/InngestStepTools.d.cts.map +1 -1
  46. package/components/InngestStepTools.d.ts +10 -7
  47. package/components/InngestStepTools.d.ts.map +1 -1
  48. package/components/InngestStepTools.js +3 -7
  49. package/components/InngestStepTools.js.map +1 -1
  50. package/components/connect/config.cjs +2 -0
  51. package/components/connect/config.cjs.map +1 -1
  52. package/components/connect/config.js +2 -0
  53. package/components/connect/config.js.map +1 -1
  54. package/components/connect/strategies/core/connection.cjs +91 -11
  55. package/components/connect/strategies/core/connection.cjs.map +1 -1
  56. package/components/connect/strategies/core/connection.js +91 -11
  57. package/components/connect/strategies/core/connection.js.map +1 -1
  58. package/components/connect/strategies/core/heartbeat.cjs +2 -1
  59. package/components/connect/strategies/core/heartbeat.cjs.map +1 -1
  60. package/components/connect/strategies/core/heartbeat.js +2 -1
  61. package/components/connect/strategies/core/heartbeat.js.map +1 -1
  62. package/components/connect/strategies/core/requestProcessor.cjs +27 -4
  63. package/components/connect/strategies/core/requestProcessor.cjs.map +1 -1
  64. package/components/connect/strategies/core/requestProcessor.js +27 -4
  65. package/components/connect/strategies/core/requestProcessor.js.map +1 -1
  66. package/components/connect/strategies/core/types.cjs +21 -0
  67. package/components/connect/strategies/core/types.cjs.map +1 -0
  68. package/components/connect/strategies/core/types.js +20 -0
  69. package/components/connect/strategies/core/types.js.map +1 -0
  70. package/components/connect/types.cjs.map +1 -1
  71. package/components/connect/types.d.cts +18 -0
  72. package/components/connect/types.d.cts.map +1 -1
  73. package/components/connect/types.d.ts +18 -0
  74. package/components/connect/types.d.ts.map +1 -1
  75. package/components/connect/types.js.map +1 -1
  76. package/components/execution/InngestExecution.cjs.map +1 -1
  77. package/components/execution/InngestExecution.d.cts +19 -2
  78. package/components/execution/InngestExecution.d.cts.map +1 -1
  79. package/components/execution/InngestExecution.d.ts +19 -2
  80. package/components/execution/InngestExecution.d.ts.map +1 -1
  81. package/components/execution/InngestExecution.js.map +1 -1
  82. package/components/execution/engine.cjs +233 -28
  83. package/components/execution/engine.cjs.map +1 -1
  84. package/components/execution/engine.d.cts +14 -0
  85. package/components/execution/engine.d.cts.map +1 -1
  86. package/components/execution/engine.d.ts +14 -0
  87. package/components/execution/engine.d.ts.map +1 -1
  88. package/components/execution/engine.js +233 -28
  89. package/components/execution/engine.js.map +1 -1
  90. package/components/execution/lazyOps.cjs +64 -0
  91. package/components/execution/lazyOps.cjs.map +1 -0
  92. package/components/execution/lazyOps.d.cts +42 -0
  93. package/components/execution/lazyOps.d.cts.map +1 -0
  94. package/components/execution/lazyOps.d.ts +42 -0
  95. package/components/execution/lazyOps.d.ts.map +1 -0
  96. package/components/execution/lazyOps.js +63 -0
  97. package/components/execution/lazyOps.js.map +1 -0
  98. package/components/execution/otel/middleware.d.cts +14 -5
  99. package/components/execution/otel/middleware.d.cts.map +1 -1
  100. package/components/execution/otel/middleware.d.ts +14 -5
  101. package/components/execution/otel/middleware.d.ts.map +1 -1
  102. package/components/middleware/manager.cjs +1 -1
  103. package/components/middleware/manager.cjs.map +1 -1
  104. package/components/middleware/manager.js +2 -2
  105. package/components/middleware/manager.js.map +1 -1
  106. package/components/middleware/middleware.cjs.map +1 -1
  107. package/components/middleware/middleware.d.cts +1 -1
  108. package/components/middleware/middleware.d.cts.map +1 -1
  109. package/components/middleware/middleware.d.ts +1 -1
  110. package/components/middleware/middleware.d.ts.map +1 -1
  111. package/components/middleware/middleware.js.map +1 -1
  112. package/components/middleware/utils.cjs +5 -3
  113. package/components/middleware/utils.cjs.map +1 -1
  114. package/components/middleware/utils.js +5 -3
  115. package/components/middleware/utils.js.map +1 -1
  116. package/components/triggers/typeHelpers.cjs.map +1 -1
  117. package/components/triggers/typeHelpers.d.cts +11 -0
  118. package/components/triggers/typeHelpers.d.cts.map +1 -1
  119. package/components/triggers/typeHelpers.d.ts +11 -0
  120. package/components/triggers/typeHelpers.d.ts.map +1 -1
  121. package/components/triggers/typeHelpers.js.map +1 -1
  122. package/experimental.cjs +3 -0
  123. package/experimental.d.cts +2 -1
  124. package/experimental.d.ts +2 -1
  125. package/experimental.js +2 -1
  126. package/helpers/consts.cjs +6 -0
  127. package/helpers/consts.cjs.map +1 -1
  128. package/helpers/consts.d.cts +6 -0
  129. package/helpers/consts.d.cts.map +1 -1
  130. package/helpers/consts.d.ts +6 -0
  131. package/helpers/consts.d.ts.map +1 -1
  132. package/helpers/consts.js +6 -0
  133. package/helpers/consts.js.map +1 -1
  134. package/helpers/functions.cjs +1 -0
  135. package/helpers/functions.cjs.map +1 -1
  136. package/helpers/functions.js +1 -0
  137. package/helpers/functions.js.map +1 -1
  138. package/helpers/marker.cjs +21 -0
  139. package/helpers/marker.cjs.map +1 -0
  140. package/helpers/marker.d.cts +12 -0
  141. package/helpers/marker.d.cts.map +1 -0
  142. package/helpers/marker.d.ts +12 -0
  143. package/helpers/marker.d.ts.map +1 -0
  144. package/helpers/marker.js +19 -0
  145. package/helpers/marker.js.map +1 -0
  146. package/helpers/strings.cjs +10 -4
  147. package/helpers/strings.cjs.map +1 -1
  148. package/helpers/strings.d.cts.map +1 -1
  149. package/helpers/strings.d.ts.map +1 -1
  150. package/helpers/strings.js +10 -4
  151. package/helpers/strings.js.map +1 -1
  152. package/helpers/temporal.cjs +2 -0
  153. package/helpers/temporal.d.ts +3 -0
  154. package/helpers/temporal.d.ts.map +1 -1
  155. package/helpers/temporal.js +1 -1
  156. package/package.json +2 -2
  157. package/proto/src/components/connect/protobuf/connect.cjs +11 -2
  158. package/proto/src/components/connect/protobuf/connect.cjs.map +1 -1
  159. package/proto/src/components/connect/protobuf/connect.js +11 -2
  160. package/proto/src/components/connect/protobuf/connect.js.map +1 -1
  161. package/react.d.cts.map +1 -1
  162. package/types.cjs +2 -0
  163. package/types.cjs.map +1 -1
  164. package/types.d.cts +43 -8
  165. package/types.d.cts.map +1 -1
  166. package/types.d.ts +43 -8
  167. package/types.d.ts.map +1 -1
  168. package/types.js +2 -0
  169. package/types.js.map +1 -1
  170. package/version.cjs +1 -1
  171. package/version.cjs.map +1 -1
  172. package/version.d.cts +1 -1
  173. package/version.d.ts +1 -1
  174. package/version.js +1 -1
  175. package/version.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"strings.cjs","names":["hashjs","milliseconds: number","timeStr"],"sources":["../../src/helpers/strings.ts"],"sourcesContent":["import hashjs from \"hash.js\";\nimport { default as safeStringify } from \"json-stringify-safe\";\nimport ms from \"ms\";\nimport type { TimeStr } from \"../types.ts\";\n\nconst { sha256 } = hashjs;\n\n/**\n * Constant-time equality check for two strings. Returns `false` immediately if\n * lengths differ; otherwise XOR-accumulates every char code so the total time\n * is independent of where (or whether) the strings diverge.\n *\n * Used for HMAC signature verification — `===`/`!==` short-circuit on the\n * first mismatched character and leak the matching-prefix length via timing.\n */\nexport function timingSafeEqual(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n let diff = 0;\n for (let i = 0; i < a.length; i++) {\n diff |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return diff === 0;\n}\n\n/**\n * Safely `JSON.stringify()` an `input`, handling circular refernences and\n * removing `BigInt` values.\n */\n// biome-ignore lint/suspicious/noExplicitAny: intentional\nexport const stringify = (input: any): string => {\n return safeStringify(input, (_key, value) => {\n if (typeof value !== \"bigint\") {\n return value;\n }\n });\n};\n\n/**\n * Returns a slugified string used to generate consistent IDs.\n *\n * This can be used to generate a consistent ID for a function when migrating\n * from v2 to v3 of the SDK.\n *\n * @public\n */\nexport const slugify = (str: string): string => {\n const join = \"-\";\n return str\n .toLowerCase()\n .replace(/[^a-z0-9-]+/g, join)\n .replace(/-+/g, join)\n .split(join)\n .filter(Boolean)\n .join(join);\n};\n\nconst millisecond = 1;\nconst second = millisecond * 1000;\nconst minute = second * 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\n\n/**\n * A collection of periods in milliseconds and their suffixes used when creating\n * time strings.\n */\nconst periods = [\n [\"w\", week],\n [\"d\", day],\n [\"h\", hour],\n [\"m\", minute],\n [\"s\", second],\n] as const;\n\n/**\n * Convert a given `Date`, `number`, or `ms`-compatible `string` to a\n * Inngest sleep-compatible time string (e.g. `\"1d\"` or `\"2h3010s\"`).\n *\n * Can optionally provide a `now` date to use as the base for the calculation,\n * otherwise a new date will be created on invocation.\n */\nexport const timeStr = (\n /**\n * The future date to use to convert to a time string.\n */\n input: string | number | Date,\n): string => {\n if (input instanceof Date) {\n return input.toISOString();\n }\n\n const milliseconds: number =\n typeof input === \"string\" ? ms(input as `${number}`) : input;\n\n const [, timeStr] = periods.reduce<[number, string]>(\n ([num, str], [suffix, period]) => {\n const numPeriods = Math.floor(num / period);\n\n if (numPeriods > 0) {\n return [num % period, `${str}${numPeriods}${suffix}`];\n }\n\n return [num, str];\n },\n [milliseconds, \"\"],\n );\n\n return timeStr as TimeStr;\n};\n\n/**\n * Given an unknown input, stringify it if it's a boolean, a number, or a\n * string, else return `undefined`.\n */\nexport const stringifyUnknown = (input: unknown): string | undefined => {\n if (\n typeof input === \"boolean\" ||\n typeof input === \"number\" ||\n typeof input === \"string\"\n ) {\n return input.toString();\n }\n\n return;\n};\n\nexport const hashEventKey = (eventKey: string): string => {\n return sha256().update(eventKey).digest(\"hex\");\n};\n\nexport const hashSigningKey = (signingKey: string | undefined): string => {\n if (!signingKey) {\n return \"\";\n }\n\n const prefix = signingKey.match(/^signkey-[\\w]+-/)?.shift() || \"\";\n const key = removeSigningKeyPrefix(signingKey);\n\n // Decode the key from its hex representation into a bytestream\n return `${prefix}${sha256().update(key, \"hex\").digest(\"hex\")}`;\n};\n\nexport function removeSigningKeyPrefix(signingKey: string): string {\n return signingKey.replace(/^signkey-[\\w]+-/, \"\");\n}\n"],"mappings":";;;;;;;;;AAKA,MAAM,EAAE,WAAWA;;;;;;;;;AAUnB,SAAgB,gBAAgB,GAAW,GAAoB;AAC7D,KAAI,EAAE,WAAW,EAAE,OACjB,QAAO;CAGT,IAAI,OAAO;AACX,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC5B,SAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE;AAE3C,QAAO,SAAS;;;;;;AAQlB,MAAa,aAAa,UAAuB;AAC/C,yCAAqB,QAAQ,MAAM,UAAU;AAC3C,MAAI,OAAO,UAAU,SACnB,QAAO;GAET;;;;;;;;;;AAWJ,MAAa,WAAW,QAAwB;CAC9C,MAAM,OAAO;AACb,QAAO,IACJ,aAAa,CACb,QAAQ,gBAAgB,KAAK,CAC7B,QAAQ,OAAO,KAAK,CACpB,MAAM,KAAK,CACX,OAAO,QAAQ,CACf,KAAK,KAAK;;AAIf,MAAM,SADc,IACS;AAC7B,MAAM,SAAS,SAAS;AACxB,MAAM,OAAO,SAAS;AACtB,MAAM,MAAM,OAAO;;;;;AAOnB,MAAM,UAAU;CACd,CAAC,KAPU,MAAM,EAON;CACX,CAAC,KAAK,IAAI;CACV,CAAC,KAAK,KAAK;CACX,CAAC,KAAK,OAAO;CACb,CAAC,KAAK,OAAO;CACd;;;;;;;;AASD,MAAa,WAIX,UACW;AACX,KAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;CAG5B,MAAMC,eACJ,OAAO,UAAU,2BAAc,MAAqB,GAAG;CAEzD,MAAM,GAAGC,aAAW,QAAQ,QACzB,CAAC,KAAK,MAAM,CAAC,QAAQ,YAAY;EAChC,MAAM,aAAa,KAAK,MAAM,MAAM,OAAO;AAE3C,MAAI,aAAa,EACf,QAAO,CAAC,MAAM,QAAQ,GAAG,MAAM,aAAa,SAAS;AAGvD,SAAO,CAAC,KAAK,IAAI;IAEnB,CAAC,cAAc,GAAG,CACnB;AAED,QAAOA;;AAmBT,MAAa,gBAAgB,aAA6B;AACxD,QAAO,QAAQ,CAAC,OAAO,SAAS,CAAC,OAAO,MAAM;;AAGhD,MAAa,kBAAkB,eAA2C;AACxE,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,SAAS,WAAW,MAAM,kBAAkB,EAAE,OAAO,IAAI;CAC/D,MAAM,MAAM,uBAAuB,WAAW;AAG9C,QAAO,GAAG,SAAS,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,MAAM;;AAG9D,SAAgB,uBAAuB,YAA4B;AACjE,QAAO,WAAW,QAAQ,mBAAmB,GAAG"}
1
+ {"version":3,"file":"strings.cjs","names":["hashjs","isTemporalInstant","isTemporalZonedDateTime","getISOString","milliseconds: number","isTemporalDuration","Temporal","timeStr"],"sources":["../../src/helpers/strings.ts"],"sourcesContent":["import hashjs from \"hash.js\";\nimport { default as safeStringify } from \"json-stringify-safe\";\nimport ms from \"ms\";\nimport { Temporal } from \"temporal-polyfill\";\nimport type { TimeStr } from \"../types.ts\";\nimport {\n type DurationLike,\n getISOString,\n type InstantLike,\n isTemporalDuration,\n isTemporalInstant,\n isTemporalZonedDateTime,\n type ZonedDateTimeLike,\n} from \"./temporal.ts\";\n\nconst { sha256 } = hashjs;\n\n/**\n * Constant-time equality check for two strings. Returns `false` immediately if\n * lengths differ; otherwise XOR-accumulates every char code so the total time\n * is independent of where (or whether) the strings diverge.\n *\n * Used for HMAC signature verification — `===`/`!==` short-circuit on the\n * first mismatched character and leak the matching-prefix length via timing.\n */\nexport function timingSafeEqual(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n let diff = 0;\n for (let i = 0; i < a.length; i++) {\n diff |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return diff === 0;\n}\n\n/**\n * Safely `JSON.stringify()` an `input`, handling circular refernences and\n * removing `BigInt` values.\n */\n// biome-ignore lint/suspicious/noExplicitAny: intentional\nexport const stringify = (input: any): string => {\n return safeStringify(input, (_key, value) => {\n if (typeof value !== \"bigint\") {\n return value;\n }\n });\n};\n\n/**\n * Returns a slugified string used to generate consistent IDs.\n *\n * This can be used to generate a consistent ID for a function when migrating\n * from v2 to v3 of the SDK.\n *\n * @public\n */\nexport const slugify = (str: string): string => {\n const join = \"-\";\n return str\n .toLowerCase()\n .replace(/[^a-z0-9-]+/g, join)\n .replace(/-+/g, join)\n .split(join)\n .filter(Boolean)\n .join(join);\n};\n\nconst millisecond = 1;\nconst second = millisecond * 1000;\nconst minute = second * 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\n\n/**\n * A collection of periods in milliseconds and their suffixes used when creating\n * time strings.\n */\nconst periods = [\n [\"w\", week],\n [\"d\", day],\n [\"h\", hour],\n [\"m\", minute],\n [\"s\", second],\n] as const;\n\n/**\n * Convert a given `Date`, `number`, or `ms`-compatible `string` to a\n * Inngest sleep-compatible time string (e.g. `\"1d\"` or `\"2h3010s\"`).\n */\nexport const timeStr = (\n /**\n * The future date to use to convert to a time string.\n */\n input:\n | string\n | number\n | Date\n | DurationLike\n | InstantLike\n | ZonedDateTimeLike,\n): string => {\n if (input instanceof Date) {\n return input.toISOString();\n }\n\n if (isTemporalInstant(input) || isTemporalZonedDateTime(input)) {\n return getISOString(input);\n }\n\n let milliseconds: number;\n if (isTemporalDuration(input)) {\n // `relativeTo` is required for calendar units (months/years/weeks). We\n // pass it as an ISO string rather than a Temporal object so this works\n // regardless of which Temporal implementation the user's Duration came\n // from (temporal-polyfill, @js-temporal/polyfill, native Temporal):\n // ISO strings are spec-defined and parsed by every implementation;\n // cross-polyfill object passing is not.\n milliseconds = input.total({\n unit: \"milliseconds\",\n relativeTo: Temporal.Now.plainDateTimeISO(\"UTC\").toString(),\n });\n } else if (typeof input === \"string\") {\n milliseconds = ms(input as `${number}`);\n } else {\n milliseconds = input as number;\n }\n\n const [, timeStr] = periods.reduce<[number, string]>(\n ([num, str], [suffix, period]) => {\n const numPeriods = Math.floor(num / period);\n\n if (numPeriods > 0) {\n return [num % period, `${str}${numPeriods}${suffix}`];\n }\n\n return [num, str];\n },\n [milliseconds, \"\"],\n );\n\n return timeStr as TimeStr;\n};\n\n/**\n * Given an unknown input, stringify it if it's a boolean, a number, or a\n * string, else return `undefined`.\n */\nexport const stringifyUnknown = (input: unknown): string | undefined => {\n if (\n typeof input === \"boolean\" ||\n typeof input === \"number\" ||\n typeof input === \"string\"\n ) {\n return input.toString();\n }\n\n return;\n};\n\nexport const hashEventKey = (eventKey: string): string => {\n return sha256().update(eventKey).digest(\"hex\");\n};\n\nexport const hashSigningKey = (signingKey: string | undefined): string => {\n if (!signingKey) {\n return \"\";\n }\n\n const prefix = signingKey.match(/^signkey-[\\w]+-/)?.shift() || \"\";\n const key = removeSigningKeyPrefix(signingKey);\n\n // Decode the key from its hex representation into a bytestream\n return `${prefix}${sha256().update(key, \"hex\").digest(\"hex\")}`;\n};\n\nexport function removeSigningKeyPrefix(signingKey: string): string {\n return signingKey.replace(/^signkey-[\\w]+-/, \"\");\n}\n"],"mappings":";;;;;;;;;;;AAeA,MAAM,EAAE,WAAWA;;;;;;;;;AAUnB,SAAgB,gBAAgB,GAAW,GAAoB;AAC7D,KAAI,EAAE,WAAW,EAAE,OACjB,QAAO;CAGT,IAAI,OAAO;AACX,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC5B,SAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE;AAE3C,QAAO,SAAS;;;;;;AAQlB,MAAa,aAAa,UAAuB;AAC/C,yCAAqB,QAAQ,MAAM,UAAU;AAC3C,MAAI,OAAO,UAAU,SACnB,QAAO;GAET;;;;;;;;;;AAWJ,MAAa,WAAW,QAAwB;CAC9C,MAAM,OAAO;AACb,QAAO,IACJ,aAAa,CACb,QAAQ,gBAAgB,KAAK,CAC7B,QAAQ,OAAO,KAAK,CACpB,MAAM,KAAK,CACX,OAAO,QAAQ,CACf,KAAK,KAAK;;AAIf,MAAM,SADc,IACS;AAC7B,MAAM,SAAS,SAAS;AACxB,MAAM,OAAO,SAAS;AACtB,MAAM,MAAM,OAAO;;;;;AAOnB,MAAM,UAAU;CACd,CAAC,KAPU,MAAM,EAON;CACX,CAAC,KAAK,IAAI;CACV,CAAC,KAAK,KAAK;CACX,CAAC,KAAK,OAAO;CACb,CAAC,KAAK,OAAO;CACd;;;;;AAMD,MAAa,WAIX,UAOW;AACX,KAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;AAG5B,KAAIC,mCAAkB,MAAM,IAAIC,yCAAwB,MAAM,CAC5D,QAAOC,8BAAa,MAAM;CAG5B,IAAIC;AACJ,KAAIC,oCAAmB,MAAM,CAO3B,gBAAe,MAAM,MAAM;EACzB,MAAM;EACN,YAAYC,2BAAS,IAAI,iBAAiB,MAAM,CAAC,UAAU;EAC5D,CAAC;UACO,OAAO,UAAU,SAC1B,gCAAkB,MAAqB;KAEvC,gBAAe;CAGjB,MAAM,GAAGC,aAAW,QAAQ,QACzB,CAAC,KAAK,MAAM,CAAC,QAAQ,YAAY;EAChC,MAAM,aAAa,KAAK,MAAM,MAAM,OAAO;AAE3C,MAAI,aAAa,EACf,QAAO,CAAC,MAAM,QAAQ,GAAG,MAAM,aAAa,SAAS;AAGvD,SAAO,CAAC,KAAK,IAAI;IAEnB,CAAC,cAAc,GAAG,CACnB;AAED,QAAOA;;AAmBT,MAAa,gBAAgB,aAA6B;AACxD,QAAO,QAAQ,CAAC,OAAO,SAAS,CAAC,OAAO,MAAM;;AAGhD,MAAa,kBAAkB,eAA2C;AACxE,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,SAAS,WAAW,MAAM,kBAAkB,EAAE,OAAO,IAAI;CAC/D,MAAM,MAAM,uBAAuB,WAAW;AAG9C,QAAO,GAAG,SAAS,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,MAAM;;AAG9D,SAAgB,uBAAuB,YAA4B;AACjE,QAAO,WAAW,QAAQ,mBAAmB,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.cts","names":[],"sources":["../../src/helpers/strings.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;cAgDa"}
1
+ {"version":3,"file":"strings.d.cts","names":[],"sources":["../../src/helpers/strings.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;cA0Da"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","names":[],"sources":["../../src/helpers/strings.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;cAgDa"}
1
+ {"version":3,"file":"strings.d.ts","names":[],"sources":["../../src/helpers/strings.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;cA0Da"}
@@ -1,6 +1,8 @@
1
+ import { getISOString, isTemporalDuration, isTemporalInstant, isTemporalZonedDateTime } from "./temporal.js";
1
2
  import stringify from "json-stringify-safe";
2
3
  import hashjs from "hash.js";
3
4
  import ms from "ms";
5
+ import { Temporal } from "temporal-polyfill";
4
6
 
5
7
  //#region src/helpers/strings.ts
6
8
  const { sha256 } = hashjs;
@@ -57,13 +59,17 @@ const periods = [
57
59
  /**
58
60
  * Convert a given `Date`, `number`, or `ms`-compatible `string` to a
59
61
  * Inngest sleep-compatible time string (e.g. `"1d"` or `"2h3010s"`).
60
- *
61
- * Can optionally provide a `now` date to use as the base for the calculation,
62
- * otherwise a new date will be created on invocation.
63
62
  */
64
63
  const timeStr = (input) => {
65
64
  if (input instanceof Date) return input.toISOString();
66
- const milliseconds = typeof input === "string" ? ms(input) : input;
65
+ if (isTemporalInstant(input) || isTemporalZonedDateTime(input)) return getISOString(input);
66
+ let milliseconds;
67
+ if (isTemporalDuration(input)) milliseconds = input.total({
68
+ unit: "milliseconds",
69
+ relativeTo: Temporal.Now.plainDateTimeISO("UTC").toString()
70
+ });
71
+ else if (typeof input === "string") milliseconds = ms(input);
72
+ else milliseconds = input;
67
73
  const [, timeStr$1] = periods.reduce(([num, str], [suffix, period]) => {
68
74
  const numPeriods = Math.floor(num / period);
69
75
  if (numPeriods > 0) return [num % period, `${str}${numPeriods}${suffix}`];
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","names":["stringify","safeStringify","milliseconds: number","timeStr"],"sources":["../../src/helpers/strings.ts"],"sourcesContent":["import hashjs from \"hash.js\";\nimport { default as safeStringify } from \"json-stringify-safe\";\nimport ms from \"ms\";\nimport type { TimeStr } from \"../types.ts\";\n\nconst { sha256 } = hashjs;\n\n/**\n * Constant-time equality check for two strings. Returns `false` immediately if\n * lengths differ; otherwise XOR-accumulates every char code so the total time\n * is independent of where (or whether) the strings diverge.\n *\n * Used for HMAC signature verification — `===`/`!==` short-circuit on the\n * first mismatched character and leak the matching-prefix length via timing.\n */\nexport function timingSafeEqual(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n let diff = 0;\n for (let i = 0; i < a.length; i++) {\n diff |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return diff === 0;\n}\n\n/**\n * Safely `JSON.stringify()` an `input`, handling circular refernences and\n * removing `BigInt` values.\n */\n// biome-ignore lint/suspicious/noExplicitAny: intentional\nexport const stringify = (input: any): string => {\n return safeStringify(input, (_key, value) => {\n if (typeof value !== \"bigint\") {\n return value;\n }\n });\n};\n\n/**\n * Returns a slugified string used to generate consistent IDs.\n *\n * This can be used to generate a consistent ID for a function when migrating\n * from v2 to v3 of the SDK.\n *\n * @public\n */\nexport const slugify = (str: string): string => {\n const join = \"-\";\n return str\n .toLowerCase()\n .replace(/[^a-z0-9-]+/g, join)\n .replace(/-+/g, join)\n .split(join)\n .filter(Boolean)\n .join(join);\n};\n\nconst millisecond = 1;\nconst second = millisecond * 1000;\nconst minute = second * 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\n\n/**\n * A collection of periods in milliseconds and their suffixes used when creating\n * time strings.\n */\nconst periods = [\n [\"w\", week],\n [\"d\", day],\n [\"h\", hour],\n [\"m\", minute],\n [\"s\", second],\n] as const;\n\n/**\n * Convert a given `Date`, `number`, or `ms`-compatible `string` to a\n * Inngest sleep-compatible time string (e.g. `\"1d\"` or `\"2h3010s\"`).\n *\n * Can optionally provide a `now` date to use as the base for the calculation,\n * otherwise a new date will be created on invocation.\n */\nexport const timeStr = (\n /**\n * The future date to use to convert to a time string.\n */\n input: string | number | Date,\n): string => {\n if (input instanceof Date) {\n return input.toISOString();\n }\n\n const milliseconds: number =\n typeof input === \"string\" ? ms(input as `${number}`) : input;\n\n const [, timeStr] = periods.reduce<[number, string]>(\n ([num, str], [suffix, period]) => {\n const numPeriods = Math.floor(num / period);\n\n if (numPeriods > 0) {\n return [num % period, `${str}${numPeriods}${suffix}`];\n }\n\n return [num, str];\n },\n [milliseconds, \"\"],\n );\n\n return timeStr as TimeStr;\n};\n\n/**\n * Given an unknown input, stringify it if it's a boolean, a number, or a\n * string, else return `undefined`.\n */\nexport const stringifyUnknown = (input: unknown): string | undefined => {\n if (\n typeof input === \"boolean\" ||\n typeof input === \"number\" ||\n typeof input === \"string\"\n ) {\n return input.toString();\n }\n\n return;\n};\n\nexport const hashEventKey = (eventKey: string): string => {\n return sha256().update(eventKey).digest(\"hex\");\n};\n\nexport const hashSigningKey = (signingKey: string | undefined): string => {\n if (!signingKey) {\n return \"\";\n }\n\n const prefix = signingKey.match(/^signkey-[\\w]+-/)?.shift() || \"\";\n const key = removeSigningKeyPrefix(signingKey);\n\n // Decode the key from its hex representation into a bytestream\n return `${prefix}${sha256().update(key, \"hex\").digest(\"hex\")}`;\n};\n\nexport function removeSigningKeyPrefix(signingKey: string): string {\n return signingKey.replace(/^signkey-[\\w]+-/, \"\");\n}\n"],"mappings":";;;;;AAKA,MAAM,EAAE,WAAW;;;;;;;;;AAUnB,SAAgB,gBAAgB,GAAW,GAAoB;AAC7D,KAAI,EAAE,WAAW,EAAE,OACjB,QAAO;CAGT,IAAI,OAAO;AACX,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC5B,SAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE;AAE3C,QAAO,SAAS;;;;;;AAQlB,MAAaA,eAAa,UAAuB;AAC/C,QAAOC,UAAc,QAAQ,MAAM,UAAU;AAC3C,MAAI,OAAO,UAAU,SACnB,QAAO;GAET;;;;;;;;;;AAWJ,MAAa,WAAW,QAAwB;CAC9C,MAAM,OAAO;AACb,QAAO,IACJ,aAAa,CACb,QAAQ,gBAAgB,KAAK,CAC7B,QAAQ,OAAO,KAAK,CACpB,MAAM,KAAK,CACX,OAAO,QAAQ,CACf,KAAK,KAAK;;AAIf,MAAM,SADc,IACS;AAC7B,MAAM,SAAS,SAAS;AACxB,MAAM,OAAO,SAAS;AACtB,MAAM,MAAM,OAAO;;;;;AAOnB,MAAM,UAAU;CACd,CAAC,KAPU,MAAM,EAON;CACX,CAAC,KAAK,IAAI;CACV,CAAC,KAAK,KAAK;CACX,CAAC,KAAK,OAAO;CACb,CAAC,KAAK,OAAO;CACd;;;;;;;;AASD,MAAa,WAIX,UACW;AACX,KAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;CAG5B,MAAMC,eACJ,OAAO,UAAU,WAAW,GAAG,MAAqB,GAAG;CAEzD,MAAM,GAAGC,aAAW,QAAQ,QACzB,CAAC,KAAK,MAAM,CAAC,QAAQ,YAAY;EAChC,MAAM,aAAa,KAAK,MAAM,MAAM,OAAO;AAE3C,MAAI,aAAa,EACf,QAAO,CAAC,MAAM,QAAQ,GAAG,MAAM,aAAa,SAAS;AAGvD,SAAO,CAAC,KAAK,IAAI;IAEnB,CAAC,cAAc,GAAG,CACnB;AAED,QAAOA;;AAmBT,MAAa,gBAAgB,aAA6B;AACxD,QAAO,QAAQ,CAAC,OAAO,SAAS,CAAC,OAAO,MAAM;;AAGhD,MAAa,kBAAkB,eAA2C;AACxE,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,SAAS,WAAW,MAAM,kBAAkB,EAAE,OAAO,IAAI;CAC/D,MAAM,MAAM,uBAAuB,WAAW;AAG9C,QAAO,GAAG,SAAS,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,MAAM;;AAG9D,SAAgB,uBAAuB,YAA4B;AACjE,QAAO,WAAW,QAAQ,mBAAmB,GAAG"}
1
+ {"version":3,"file":"strings.js","names":["stringify","safeStringify","milliseconds: number","timeStr"],"sources":["../../src/helpers/strings.ts"],"sourcesContent":["import hashjs from \"hash.js\";\nimport { default as safeStringify } from \"json-stringify-safe\";\nimport ms from \"ms\";\nimport { Temporal } from \"temporal-polyfill\";\nimport type { TimeStr } from \"../types.ts\";\nimport {\n type DurationLike,\n getISOString,\n type InstantLike,\n isTemporalDuration,\n isTemporalInstant,\n isTemporalZonedDateTime,\n type ZonedDateTimeLike,\n} from \"./temporal.ts\";\n\nconst { sha256 } = hashjs;\n\n/**\n * Constant-time equality check for two strings. Returns `false` immediately if\n * lengths differ; otherwise XOR-accumulates every char code so the total time\n * is independent of where (or whether) the strings diverge.\n *\n * Used for HMAC signature verification — `===`/`!==` short-circuit on the\n * first mismatched character and leak the matching-prefix length via timing.\n */\nexport function timingSafeEqual(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n let diff = 0;\n for (let i = 0; i < a.length; i++) {\n diff |= a.charCodeAt(i) ^ b.charCodeAt(i);\n }\n return diff === 0;\n}\n\n/**\n * Safely `JSON.stringify()` an `input`, handling circular refernences and\n * removing `BigInt` values.\n */\n// biome-ignore lint/suspicious/noExplicitAny: intentional\nexport const stringify = (input: any): string => {\n return safeStringify(input, (_key, value) => {\n if (typeof value !== \"bigint\") {\n return value;\n }\n });\n};\n\n/**\n * Returns a slugified string used to generate consistent IDs.\n *\n * This can be used to generate a consistent ID for a function when migrating\n * from v2 to v3 of the SDK.\n *\n * @public\n */\nexport const slugify = (str: string): string => {\n const join = \"-\";\n return str\n .toLowerCase()\n .replace(/[^a-z0-9-]+/g, join)\n .replace(/-+/g, join)\n .split(join)\n .filter(Boolean)\n .join(join);\n};\n\nconst millisecond = 1;\nconst second = millisecond * 1000;\nconst minute = second * 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\n\n/**\n * A collection of periods in milliseconds and their suffixes used when creating\n * time strings.\n */\nconst periods = [\n [\"w\", week],\n [\"d\", day],\n [\"h\", hour],\n [\"m\", minute],\n [\"s\", second],\n] as const;\n\n/**\n * Convert a given `Date`, `number`, or `ms`-compatible `string` to a\n * Inngest sleep-compatible time string (e.g. `\"1d\"` or `\"2h3010s\"`).\n */\nexport const timeStr = (\n /**\n * The future date to use to convert to a time string.\n */\n input:\n | string\n | number\n | Date\n | DurationLike\n | InstantLike\n | ZonedDateTimeLike,\n): string => {\n if (input instanceof Date) {\n return input.toISOString();\n }\n\n if (isTemporalInstant(input) || isTemporalZonedDateTime(input)) {\n return getISOString(input);\n }\n\n let milliseconds: number;\n if (isTemporalDuration(input)) {\n // `relativeTo` is required for calendar units (months/years/weeks). We\n // pass it as an ISO string rather than a Temporal object so this works\n // regardless of which Temporal implementation the user's Duration came\n // from (temporal-polyfill, @js-temporal/polyfill, native Temporal):\n // ISO strings are spec-defined and parsed by every implementation;\n // cross-polyfill object passing is not.\n milliseconds = input.total({\n unit: \"milliseconds\",\n relativeTo: Temporal.Now.plainDateTimeISO(\"UTC\").toString(),\n });\n } else if (typeof input === \"string\") {\n milliseconds = ms(input as `${number}`);\n } else {\n milliseconds = input as number;\n }\n\n const [, timeStr] = periods.reduce<[number, string]>(\n ([num, str], [suffix, period]) => {\n const numPeriods = Math.floor(num / period);\n\n if (numPeriods > 0) {\n return [num % period, `${str}${numPeriods}${suffix}`];\n }\n\n return [num, str];\n },\n [milliseconds, \"\"],\n );\n\n return timeStr as TimeStr;\n};\n\n/**\n * Given an unknown input, stringify it if it's a boolean, a number, or a\n * string, else return `undefined`.\n */\nexport const stringifyUnknown = (input: unknown): string | undefined => {\n if (\n typeof input === \"boolean\" ||\n typeof input === \"number\" ||\n typeof input === \"string\"\n ) {\n return input.toString();\n }\n\n return;\n};\n\nexport const hashEventKey = (eventKey: string): string => {\n return sha256().update(eventKey).digest(\"hex\");\n};\n\nexport const hashSigningKey = (signingKey: string | undefined): string => {\n if (!signingKey) {\n return \"\";\n }\n\n const prefix = signingKey.match(/^signkey-[\\w]+-/)?.shift() || \"\";\n const key = removeSigningKeyPrefix(signingKey);\n\n // Decode the key from its hex representation into a bytestream\n return `${prefix}${sha256().update(key, \"hex\").digest(\"hex\")}`;\n};\n\nexport function removeSigningKeyPrefix(signingKey: string): string {\n return signingKey.replace(/^signkey-[\\w]+-/, \"\");\n}\n"],"mappings":";;;;;;;AAeA,MAAM,EAAE,WAAW;;;;;;;;;AAUnB,SAAgB,gBAAgB,GAAW,GAAoB;AAC7D,KAAI,EAAE,WAAW,EAAE,OACjB,QAAO;CAGT,IAAI,OAAO;AACX,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC5B,SAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE;AAE3C,QAAO,SAAS;;;;;;AAQlB,MAAaA,eAAa,UAAuB;AAC/C,QAAOC,UAAc,QAAQ,MAAM,UAAU;AAC3C,MAAI,OAAO,UAAU,SACnB,QAAO;GAET;;;;;;;;;;AAWJ,MAAa,WAAW,QAAwB;CAC9C,MAAM,OAAO;AACb,QAAO,IACJ,aAAa,CACb,QAAQ,gBAAgB,KAAK,CAC7B,QAAQ,OAAO,KAAK,CACpB,MAAM,KAAK,CACX,OAAO,QAAQ,CACf,KAAK,KAAK;;AAIf,MAAM,SADc,IACS;AAC7B,MAAM,SAAS,SAAS;AACxB,MAAM,OAAO,SAAS;AACtB,MAAM,MAAM,OAAO;;;;;AAOnB,MAAM,UAAU;CACd,CAAC,KAPU,MAAM,EAON;CACX,CAAC,KAAK,IAAI;CACV,CAAC,KAAK,KAAK;CACX,CAAC,KAAK,OAAO;CACb,CAAC,KAAK,OAAO;CACd;;;;;AAMD,MAAa,WAIX,UAOW;AACX,KAAI,iBAAiB,KACnB,QAAO,MAAM,aAAa;AAG5B,KAAI,kBAAkB,MAAM,IAAI,wBAAwB,MAAM,CAC5D,QAAO,aAAa,MAAM;CAG5B,IAAIC;AACJ,KAAI,mBAAmB,MAAM,CAO3B,gBAAe,MAAM,MAAM;EACzB,MAAM;EACN,YAAY,SAAS,IAAI,iBAAiB,MAAM,CAAC,UAAU;EAC5D,CAAC;UACO,OAAO,UAAU,SAC1B,gBAAe,GAAG,MAAqB;KAEvC,gBAAe;CAGjB,MAAM,GAAGC,aAAW,QAAQ,QACzB,CAAC,KAAK,MAAM,CAAC,QAAQ,YAAY;EAChC,MAAM,aAAa,KAAK,MAAM,MAAM,OAAO;AAE3C,MAAI,aAAa,EACf,QAAO,CAAC,MAAM,QAAQ,GAAG,MAAM,aAAa,SAAS;AAGvD,SAAO,CAAC,KAAK,IAAI;IAEnB,CAAC,cAAc,GAAG,CACnB;AAED,QAAOA;;AAmBT,MAAa,gBAAgB,aAA6B;AACxD,QAAO,QAAQ,CAAC,OAAO,SAAS,CAAC,OAAO,MAAM;;AAGhD,MAAa,kBAAkB,eAA2C;AACxE,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,SAAS,WAAW,MAAM,kBAAkB,EAAE,OAAO,IAAI;CAC/D,MAAM,MAAM,uBAAuB,WAAW;AAG9C,QAAO,GAAG,SAAS,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,MAAM;;AAG9D,SAAgB,uBAAuB,YAA4B;AACjE,QAAO,WAAW,QAAQ,mBAAmB,GAAG"}
@@ -45,4 +45,6 @@ const getISOString = (time) => {
45
45
  //#endregion
46
46
  exports.getISOString = getISOString;
47
47
  exports.isTemporalDuration = isTemporalDuration;
48
+ exports.isTemporalInstant = isTemporalInstant;
49
+ exports.isTemporalZonedDateTime = isTemporalZonedDateTime;
48
50
  //# sourceMappingURL=temporal.cjs.map
@@ -1,4 +1,7 @@
1
+ import { Temporal } from "temporal-polyfill";
2
+
1
3
  //#region src/helpers/temporal.d.ts
4
+
2
5
  /**
3
6
  * A type that represents a `Temporal.Instant` object.
4
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"temporal.d.ts","names":[],"sources":["../../src/helpers/temporal.ts"],"sourcesContent":[],"mappings":";AAWA;AAaA;AAaA;;;;;;;KA1BY,WAAA;YACA,MAAA,CAAO,WAAA;;;;;;;;;;;KAYP,YAAA;YACA,MAAA,CAAO,WAAA;;;;;;;;;;;KAYP,iBAAA;YACA,MAAA,CAAO,WAAA"}
1
+ {"version":3,"file":"temporal.d.ts","names":[],"sources":["../../src/helpers/temporal.ts"],"sourcesContent":[],"mappings":";;;;;;AAWA;AAaA;AAaA;;;;;KA1BY,WAAA;YACA,MAAA,CAAO,WAAA;;;;;;;;;;;KAYP,YAAA;YACA,MAAA,CAAO,WAAA;;;;;;;;;;;KAYP,iBAAA;YACA,MAAA,CAAO,WAAA"}
@@ -42,5 +42,5 @@ const getISOString = (time) => {
42
42
  };
43
43
 
44
44
  //#endregion
45
- export { getISOString, isTemporalDuration };
45
+ export { getISOString, isTemporalDuration, isTemporalInstant, isTemporalZonedDateTime };
46
46
  //# sourceMappingURL=temporal.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inngest",
3
- "version": "4.2.6",
3
+ "version": "4.4.0",
4
4
  "description": "Official SDK for Inngest.com. Inngest is the reliability layer for modern applications. Inngest combines durable execution, events, and queues into a zero-infra platform with built-in observability.",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
@@ -18,7 +18,7 @@
18
18
  "test:integration": "vitest run --config vitest.config.integration.ts",
19
19
  "itest": "tsx scripts/integrationTestRunner.ts",
20
20
  "test:examples": "vitest run --dir src/test/functions",
21
- "test:types": "tsc --noEmit --project tsconfig.types.json --listFiles",
21
+ "test:types": "tsc --noEmit --project tsconfig.types.json",
22
22
  "test:dist": "tsc --noEmit dist/**/*.d.ts",
23
23
  "test:deps": "tsx scripts/checkDependencies.ts",
24
24
  "test:composite": "pnpm run local:pack && (cd test/composite_project && npm i ../../inngest.tgz && npm run test)",
@@ -603,7 +603,8 @@ function createBaseGatewayExecutorRequestData() {
603
603
  systemTraceCtx: new Uint8Array(0),
604
604
  userTraceCtx: new Uint8Array(0),
605
605
  runId: "",
606
- leaseId: ""
606
+ leaseId: "",
607
+ jobId: ""
607
608
  };
608
609
  }
609
610
  const GatewayExecutorRequestData = {
@@ -621,6 +622,7 @@ const GatewayExecutorRequestData = {
621
622
  if (message.userTraceCtx.length !== 0) writer.uint32(90).bytes(message.userTraceCtx);
622
623
  if (message.runId !== "") writer.uint32(98).string(message.runId);
623
624
  if (message.leaseId !== "") writer.uint32(106).string(message.leaseId);
625
+ if (message.jobId !== "") writer.uint32(114).string(message.jobId);
624
626
  return writer;
625
627
  },
626
628
  decode(input, length) {
@@ -682,6 +684,10 @@ const GatewayExecutorRequestData = {
682
684
  if (tag !== 106) break;
683
685
  message.leaseId = reader.string();
684
686
  continue;
687
+ case 14:
688
+ if (tag !== 114) break;
689
+ message.jobId = reader.string();
690
+ continue;
685
691
  }
686
692
  if ((tag & 7) === 4 || tag === 0) break;
687
693
  reader.skip(tag & 7);
@@ -702,7 +708,8 @@ const GatewayExecutorRequestData = {
702
708
  systemTraceCtx: isSet(object.systemTraceCtx) ? bytesFromBase64(object.systemTraceCtx) : new Uint8Array(0),
703
709
  userTraceCtx: isSet(object.userTraceCtx) ? bytesFromBase64(object.userTraceCtx) : new Uint8Array(0),
704
710
  runId: isSet(object.runId) ? globalThis.String(object.runId) : "",
705
- leaseId: isSet(object.leaseId) ? globalThis.String(object.leaseId) : ""
711
+ leaseId: isSet(object.leaseId) ? globalThis.String(object.leaseId) : "",
712
+ jobId: isSet(object.jobId) ? globalThis.String(object.jobId) : ""
706
713
  };
707
714
  },
708
715
  toJSON(message) {
@@ -720,6 +727,7 @@ const GatewayExecutorRequestData = {
720
727
  if (message.userTraceCtx.length !== 0) obj.userTraceCtx = base64FromBytes(message.userTraceCtx);
721
728
  if (message.runId !== "") obj.runId = message.runId;
722
729
  if (message.leaseId !== "") obj.leaseId = message.leaseId;
730
+ if (message.jobId !== "") obj.jobId = message.jobId;
723
731
  return obj;
724
732
  },
725
733
  create(base) {
@@ -740,6 +748,7 @@ const GatewayExecutorRequestData = {
740
748
  message.userTraceCtx = object.userTraceCtx ?? new Uint8Array(0);
741
749
  message.runId = object.runId ?? "";
742
750
  message.leaseId = object.leaseId ?? "";
751
+ message.jobId = object.jobId ?? "";
743
752
  return message;
744
753
  }
745
754
  };