@workflow/core 4.0.1-beta.2 → 4.0.1-beta.21

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 (129) hide show
  1. package/LICENSE.md +201 -21
  2. package/dist/builtins.js +1 -1
  3. package/dist/create-hook.js +1 -1
  4. package/dist/define-hook.d.ts +40 -25
  5. package/dist/define-hook.d.ts.map +1 -1
  6. package/dist/define-hook.js +22 -27
  7. package/dist/events-consumer.js +1 -1
  8. package/dist/global.d.ts +10 -1
  9. package/dist/global.d.ts.map +1 -1
  10. package/dist/global.js +14 -2
  11. package/dist/index.d.ts +3 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +3 -2
  14. package/dist/logger.js +1 -1
  15. package/dist/observability.d.ts.map +1 -1
  16. package/dist/observability.js +39 -11
  17. package/dist/parse-name.js +1 -1
  18. package/dist/private.d.ts +5 -0
  19. package/dist/private.d.ts.map +1 -1
  20. package/dist/private.js +6 -1
  21. package/dist/runtime/resume-hook.d.ts +15 -10
  22. package/dist/runtime/resume-hook.d.ts.map +1 -1
  23. package/dist/runtime/resume-hook.js +71 -61
  24. package/dist/runtime/start.d.ts +5 -1
  25. package/dist/runtime/start.d.ts.map +1 -1
  26. package/dist/runtime/start.js +56 -45
  27. package/dist/runtime/world.d.ts.map +1 -1
  28. package/dist/runtime/world.js +20 -20
  29. package/dist/runtime.d.ts +1 -1
  30. package/dist/runtime.d.ts.map +1 -1
  31. package/dist/runtime.js +213 -57
  32. package/dist/schemas.d.ts +1 -15
  33. package/dist/schemas.d.ts.map +1 -1
  34. package/dist/schemas.js +2 -15
  35. package/dist/serialization.d.ts +54 -7
  36. package/dist/serialization.d.ts.map +1 -1
  37. package/dist/serialization.js +129 -34
  38. package/dist/sleep.d.ts +33 -0
  39. package/dist/sleep.d.ts.map +1 -0
  40. package/dist/sleep.js +10 -0
  41. package/dist/source-map.d.ts +10 -0
  42. package/dist/source-map.d.ts.map +1 -0
  43. package/dist/source-map.js +56 -0
  44. package/dist/step/context-storage.d.ts +2 -0
  45. package/dist/step/context-storage.d.ts.map +1 -1
  46. package/dist/step/context-storage.js +1 -1
  47. package/dist/step/get-closure-vars.d.ts +9 -0
  48. package/dist/step/get-closure-vars.d.ts.map +1 -0
  49. package/dist/step/get-closure-vars.js +16 -0
  50. package/dist/step/get-step-metadata.js +1 -1
  51. package/dist/step/get-workflow-metadata.js +1 -1
  52. package/dist/step/writable-stream.d.ts +14 -0
  53. package/dist/step/writable-stream.d.ts.map +1 -0
  54. package/dist/step/writable-stream.js +30 -0
  55. package/dist/step.d.ts +1 -1
  56. package/dist/step.d.ts.map +1 -1
  57. package/dist/step.js +35 -6
  58. package/dist/symbols.d.ts +1 -0
  59. package/dist/symbols.d.ts.map +1 -1
  60. package/dist/symbols.js +2 -1
  61. package/dist/telemetry/semantic-conventions.d.ts +46 -38
  62. package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
  63. package/dist/telemetry/semantic-conventions.js +7 -3
  64. package/dist/telemetry.d.ts +8 -4
  65. package/dist/telemetry.d.ts.map +1 -1
  66. package/dist/telemetry.js +20 -6
  67. package/dist/types.d.ts +0 -7
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js +1 -26
  70. package/dist/util.d.ts +9 -27
  71. package/dist/util.d.ts.map +1 -1
  72. package/dist/util.js +34 -42
  73. package/dist/vm/index.js +2 -2
  74. package/dist/vm/uuid.js +1 -1
  75. package/dist/workflow/create-hook.js +1 -1
  76. package/dist/workflow/define-hook.d.ts +3 -3
  77. package/dist/workflow/define-hook.d.ts.map +1 -1
  78. package/dist/workflow/define-hook.js +1 -1
  79. package/dist/workflow/get-workflow-metadata.js +1 -1
  80. package/dist/workflow/hook.d.ts.map +1 -1
  81. package/dist/workflow/hook.js +2 -2
  82. package/dist/workflow/index.d.ts +1 -0
  83. package/dist/workflow/index.d.ts.map +1 -1
  84. package/dist/workflow/index.js +2 -1
  85. package/dist/workflow/sleep.d.ts +4 -0
  86. package/dist/workflow/sleep.d.ts.map +1 -0
  87. package/dist/workflow/sleep.js +55 -0
  88. package/dist/workflow/writable-stream.js +1 -1
  89. package/dist/workflow.d.ts.map +1 -1
  90. package/dist/workflow.js +22 -7
  91. package/dist/writable-stream.d.ts +5 -4
  92. package/dist/writable-stream.d.ts.map +1 -1
  93. package/dist/writable-stream.js +7 -6
  94. package/package.json +21 -18
  95. package/dist/builtins.js.map +0 -1
  96. package/dist/create-hook.js.map +0 -1
  97. package/dist/define-hook.js.map +0 -1
  98. package/dist/events-consumer.js.map +0 -1
  99. package/dist/global.js.map +0 -1
  100. package/dist/index.js.map +0 -1
  101. package/dist/logger.js.map +0 -1
  102. package/dist/observability.js.map +0 -1
  103. package/dist/parse-name.js.map +0 -1
  104. package/dist/private.js.map +0 -1
  105. package/dist/runtime/resume-hook.js.map +0 -1
  106. package/dist/runtime/start.js.map +0 -1
  107. package/dist/runtime/world.js.map +0 -1
  108. package/dist/runtime.js.map +0 -1
  109. package/dist/schemas.js.map +0 -1
  110. package/dist/serialization.js.map +0 -1
  111. package/dist/step/context-storage.js.map +0 -1
  112. package/dist/step/get-step-metadata.js.map +0 -1
  113. package/dist/step/get-workflow-metadata.js.map +0 -1
  114. package/dist/step.js.map +0 -1
  115. package/dist/symbols.js.map +0 -1
  116. package/dist/telemetry/semantic-conventions.js.map +0 -1
  117. package/dist/telemetry.js.map +0 -1
  118. package/dist/types.js.map +0 -1
  119. package/dist/util.js.map +0 -1
  120. package/dist/vm/index.js.map +0 -1
  121. package/dist/vm/uuid.js.map +0 -1
  122. package/dist/workflow/create-hook.js.map +0 -1
  123. package/dist/workflow/define-hook.js.map +0 -1
  124. package/dist/workflow/get-workflow-metadata.js.map +0 -1
  125. package/dist/workflow/hook.js.map +0 -1
  126. package/dist/workflow/index.js.map +0 -1
  127. package/dist/workflow/writable-stream.js.map +0 -1
  128. package/dist/workflow.js.map +0 -1
  129. package/dist/writable-stream.js.map +0 -1
@@ -12,13 +12,27 @@ export const isStreamId = (value) => {
12
12
  };
13
13
  const streamToStreamId = (value) => {
14
14
  if ('name' in value) {
15
- if (!value.name.startsWith(STREAM_ID_PREFIX)) {
16
- return `${STREAM_ID_PREFIX}${value.name}`;
15
+ const name = String(value.name);
16
+ if (!name.startsWith(STREAM_ID_PREFIX)) {
17
+ return `${STREAM_ID_PREFIX}${name}`;
17
18
  }
18
- return value.name;
19
+ return name;
19
20
  }
20
21
  return `${STREAM_ID_PREFIX}null`;
21
22
  };
23
+ const serializedStepFunctionToString = (value) => {
24
+ if (!value)
25
+ return 'null';
26
+ if (typeof value !== 'object')
27
+ return 'null';
28
+ if ('stepId' in value) {
29
+ const stepId = value.stepId;
30
+ // TODO: Add closure vars to the string representation.
31
+ // value.closureVars
32
+ return `<step:${stepId}>`;
33
+ }
34
+ return '<function>';
35
+ };
22
36
  /**
23
37
  * This is an extra reviver for devalue that takes any streams that would be converted,
24
38
  * into actual streams, and instead formats them as string links for printing in CLI output.
@@ -30,12 +44,13 @@ const streamPrintRevivers = {
30
44
  ReadableStream: streamToStreamId,
31
45
  WritableStream: streamToStreamId,
32
46
  TransformStream: streamToStreamId,
47
+ StepFunction: serializedStepFunctionToString,
33
48
  };
34
49
  const hydrateStepIO = (step) => {
35
50
  return {
36
51
  ...step,
37
52
  input: step.input && Array.isArray(step.input) && step.input.length
38
- ? hydrateStepArguments(step.input, [], globalThis, streamPrintRevivers)
53
+ ? hydrateStepArguments(step.input, [], step.runId, globalThis, streamPrintRevivers)
39
54
  : step.input,
40
55
  output: step.output
41
56
  ? hydrateStepReturnValue(step.output, globalThis, streamPrintRevivers)
@@ -49,23 +64,36 @@ const hydrateWorkflowIO = (workflow) => {
49
64
  ? hydrateWorkflowArguments(workflow.input, globalThis, streamPrintRevivers)
50
65
  : workflow.input,
51
66
  output: workflow.output
52
- ? hydrateWorkflowReturnValue(workflow.output, [], globalThis, streamPrintRevivers)
67
+ ? hydrateWorkflowReturnValue(workflow.output, [], workflow.runId, globalThis, streamPrintRevivers)
53
68
  : workflow.output,
54
69
  };
55
70
  };
56
71
  const hydrateEventData = (event) => {
72
+ if (!event.eventData) {
73
+ return event;
74
+ }
75
+ const eventData = { ...event.eventData };
76
+ // Events can have various eventData with non-devalued keys.
77
+ // So far, only eventData.result is devalued (though this may change),
78
+ // so we need to hydrate it specifically.
79
+ try {
80
+ if ('result' in eventData && typeof eventData.result === 'object') {
81
+ eventData.result = hydrateStepReturnValue(eventData.result, globalThis, streamPrintRevivers);
82
+ }
83
+ }
84
+ catch (error) {
85
+ console.error('Error hydrating event data', error);
86
+ }
57
87
  return {
58
88
  ...event,
59
- eventData: event.eventData
60
- ? hydrateStepArguments(event.eventData, [], globalThis)
61
- : event.eventData,
89
+ eventData,
62
90
  };
63
91
  };
64
92
  const hydrateHookMetadata = (hook) => {
65
93
  return {
66
94
  ...hook,
67
- metadata: hook.metadata
68
- ? hydrateStepArguments(hook.metadata, [], globalThis)
95
+ metadata: hook.metadata && 'runId' in hook
96
+ ? hydrateStepArguments(hook.metadata, [], hook.runId, globalThis, streamPrintRevivers)
69
97
  : hook.metadata,
70
98
  };
71
99
  };
@@ -123,4 +151,4 @@ export function truncateId(id, maxLength = 12) {
123
151
  return id;
124
152
  return `${id.slice(0, maxLength)}...`;
125
153
  }
126
- //# sourceMappingURL=observability.js.map
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QiwwQkFBMEIsR0FDM0IsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztBQUVqQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWMsRUFBVyxFQUFFO0lBQ3BELE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBVSxFQUFVLEVBQUU7SUFDOUMsSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxHQUFHLGdCQUFnQixHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEdBQUcsZ0JBQWdCLE1BQU0sQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUFHLENBQUMsS0FBYyxFQUFVLEVBQUU7SUFDaEUsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUMxQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUM3QyxJQUFJLFFBQVEsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixNQUFN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
@@ -37,4 +37,4 @@ export function parseWorkflowName(name) {
37
37
  export function parseStepName(name) {
38
38
  return parseName('step', name);
39
39
  }
40
- //# sourceMappingURL=parse-name.js.map
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtbmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FDaEIsR0FBVyxFQUNYLElBQVk7SUFFWixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELElBQUksTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQ3pDLElBQUk7UUFDSixZQUFZLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztLQUMzQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDIn0=
package/dist/private.d.ts CHANGED
@@ -15,6 +15,11 @@ export declare function registerStepFunction(stepId: string, stepFn: StepFunctio
15
15
  * Find a registered step function by name
16
16
  */
17
17
  export declare function getStepFunction(stepId: string): StepFunction | undefined;
18
+ /**
19
+ * Get closure variables for the current step function
20
+ * @internal
21
+ */
22
+ export { __private_getClosureVars } from './step/get-closure-vars.js';
18
23
  export interface WorkflowOrchestratorContext {
19
24
  globalThis: typeof globalThis;
20
25
  eventsConsumer: EventsConsumer;
@@ -1 +1 @@
1
- {"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,YAAY,CACtB,IAAI,SAAS,YAAY,EAAE,GAAG,GAAG,EAAE,EACnC,MAAM,SAAS,YAAY,GAAG,OAAO,GAAG,OAAO,IAC7C,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,QAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAExE;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,YAAY,CACtB,IAAI,SAAS,YAAY,EAAE,GAAG,GAAG,EAAE,EACnC,MAAM,SAAS,YAAY,GAAG,OAAO,GAAG,OAAO,IAC7C,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,QAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAExE;AAED;;;GAGG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,MAAM,CAAC;CAC9B"}
package/dist/private.js CHANGED
@@ -14,4 +14,9 @@ export function registerStepFunction(stepId, stepFn) {
14
14
  export function getStepFunction(stepId) {
15
15
  return registeredSteps.get(stepId);
16
16
  }
17
- //# sourceMappingURL=private.js.map
17
+ /**
18
+ * Get closure variables for the current step function
19
+ * @internal
20
+ */
21
+ export { __private_getClosureVars } from './step/get-closure-vars.js';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcml2YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBYUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBYyxFQUFFLE1BQW9CO0lBQ3ZFLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYztJQUM1QyxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDIn0=
@@ -15,7 +15,8 @@ export declare function getHookByToken(token: string): Promise<Hook>;
15
15
  *
16
16
  * @param token - The unique token identifying the hook
17
17
  * @param payload - The data payload to send to the hook
18
- * @returns Promise resolving to an object with the runId, or null if the hook doesn't exist
18
+ * @returns Promise resolving to the hook
19
+ * @throws Error if the hook is not found or if there's an error during the process
19
20
  *
20
21
  * @example
21
22
  *
@@ -25,17 +26,17 @@ export declare function getHookByToken(token: string): Promise<Hook>;
25
26
  *
26
27
  * export async function POST(request: Request) {
27
28
  * const { token, data } = await request.json();
28
- * const result = await resumeHook(token, data);
29
29
  *
30
- * if (!result) {
30
+ * try {
31
+ * const hook = await resumeHook(token, data);
32
+ * return Response.json({ runId: hook.runId });
33
+ * } catch (error) {
31
34
  * return new Response('Hook not found', { status: 404 });
32
35
  * }
33
- *
34
- * return Response.json({ runId: result.runId });
35
36
  * }
36
37
  * ```
37
38
  */
38
- export declare function resumeHook<T = any>(token: string, payload: T): Promise<Hook | null>;
39
+ export declare function resumeHook<T = any>(token: string, payload: T): Promise<Hook>;
39
40
  /**
40
41
  * Resumes a webhook by sending a {@link https://developer.mozilla.org/en-US/docs/Web/API/Request | Request}
41
42
  * object to a hook identified by its token.
@@ -45,7 +46,8 @@ export declare function resumeHook<T = any>(token: string, payload: T): Promise<
45
46
  *
46
47
  * @param token - The unique token identifying the hook
47
48
  * @param request - The request to send to the hook
48
- * @returns Promise resolving to the response, or null if the hook doesn't exist
49
+ * @returns Promise resolving to the response
50
+ * @throws Error if the hook is not found or if there's an error during the process
49
51
  *
50
52
  * @example
51
53
  *
@@ -61,9 +63,12 @@ export declare function resumeHook<T = any>(token: string, payload: T): Promise<
61
63
  * return new Response('Missing token', { status: 400 });
62
64
  * }
63
65
  *
64
- * const response = await resumeWebhook(token, request);
65
- *
66
- * return response ?? new Response('Webhook not found', { status: 404 });
66
+ * try {
67
+ * const response = await resumeWebhook(token, request);
68
+ * return response;
69
+ * } catch (error) {
70
+ * return new Response('Webhook not found', { status: 404 });
71
+ * }
67
72
  * }
68
73
  * ```
69
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"resume-hook.d.ts","sourceRoot":"","sources":["../../src/runtime/resume-hook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAW5C;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAuEtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAkDnB"}
1
+ {"version":3,"file":"resume-hook.d.ts","sourceRoot":"","sources":["../../src/runtime/resume-hook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAyB,MAAM,iBAAiB,CAAC;AAWnE;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAkDnB"}
@@ -4,6 +4,7 @@ import { dehydrateStepReturnValue, hydrateStepArguments, } from '../serializatio
4
4
  import { WEBHOOK_RESPONSE_WRITABLE } from '../symbols.js';
5
5
  import * as Attribute from '../telemetry/semantic-conventions.js';
6
6
  import { getSpanContextForTraceCarrier, trace } from '../telemetry.js';
7
+ import { waitedUntil } from '../util.js';
7
8
  import { getWorld } from './world.js';
8
9
  /**
9
10
  * Get the hook by token to find the associated workflow run,
@@ -16,7 +17,7 @@ export async function getHookByToken(token) {
16
17
  const world = getWorld();
17
18
  const hook = await world.hooks.getByToken(token);
18
19
  if (typeof hook.metadata !== 'undefined') {
19
- hook.metadata = hydrateStepArguments(hook.metadata, [], globalThis);
20
+ hook.metadata = hydrateStepArguments(hook.metadata, [], hook.runId);
20
21
  }
21
22
  return hook;
22
23
  }
@@ -28,7 +29,8 @@ export async function getHookByToken(token) {
28
29
  *
29
30
  * @param token - The unique token identifying the hook
30
31
  * @param payload - The data payload to send to the hook
31
- * @returns Promise resolving to an object with the runId, or null if the hook doesn't exist
32
+ * @returns Promise resolving to the hook
33
+ * @throws Error if the hook is not found or if there's an error during the process
32
34
  *
33
35
  * @example
34
36
  *
@@ -38,69 +40,73 @@ export async function getHookByToken(token) {
38
40
  *
39
41
  * export async function POST(request: Request) {
40
42
  * const { token, data } = await request.json();
41
- * const result = await resumeHook(token, data);
42
43
  *
43
- * if (!result) {
44
+ * try {
45
+ * const hook = await resumeHook(token, data);
46
+ * return Response.json({ runId: hook.runId });
47
+ * } catch (error) {
44
48
  * return new Response('Hook not found', { status: 404 });
45
49
  * }
46
- *
47
- * return Response.json({ runId: result.runId });
48
50
  * }
49
51
  * ```
50
52
  */
51
53
  export async function resumeHook(token, payload) {
52
- return trace('HOOK.resume', async (span) => {
53
- const world = getWorld();
54
- try {
55
- const hook = await getHookByToken(token);
56
- span?.setAttributes({
57
- ...Attribute.HookToken(token),
58
- ...Attribute.HookId(hook.hookId),
59
- ...Attribute.WorkflowRunId(hook.runId),
60
- });
61
- // Dehydrate the payload for storage
62
- const ops = [];
63
- const dehydratedPayload = dehydrateStepReturnValue(payload, ops, globalThis);
64
- waitUntil(Promise.all(ops));
65
- // Create a hook_received event with the payload
66
- await world.events.create(hook.runId, {
67
- eventType: 'hook_received',
68
- correlationId: hook.hookId,
69
- eventData: {
70
- payload: dehydratedPayload,
71
- },
72
- });
73
- const workflowRun = await world.runs.get(hook.runId);
74
- span?.setAttributes({
75
- ...Attribute.WorkflowName(workflowRun.workflowName),
76
- });
77
- const traceCarrier = workflowRun.executionContext?.traceCarrier;
78
- if (traceCarrier) {
79
- const context = await getSpanContextForTraceCarrier(traceCarrier);
80
- if (context) {
81
- span?.addLink?.({ context });
54
+ return await waitedUntil(() => {
55
+ return trace('HOOK.resume', async (span) => {
56
+ const world = getWorld();
57
+ try {
58
+ const hook = await getHookByToken(token);
59
+ span?.setAttributes({
60
+ ...Attribute.HookToken(token),
61
+ ...Attribute.HookId(hook.hookId),
62
+ ...Attribute.WorkflowRunId(hook.runId),
63
+ });
64
+ // Dehydrate the payload for storage
65
+ const ops = [];
66
+ const dehydratedPayload = dehydrateStepReturnValue(payload, ops, hook.runId);
67
+ // NOTE: Workaround instead of injecting catching undefined unhandled rejections in webhook bundle
68
+ waitUntil(Promise.all(ops).catch((err) => {
69
+ if (err !== undefined)
70
+ throw err;
71
+ }));
72
+ // Create a hook_received event with the payload
73
+ await world.events.create(hook.runId, {
74
+ eventType: 'hook_received',
75
+ correlationId: hook.hookId,
76
+ eventData: {
77
+ payload: dehydratedPayload,
78
+ },
79
+ });
80
+ const workflowRun = await world.runs.get(hook.runId);
81
+ span?.setAttributes({
82
+ ...Attribute.WorkflowName(workflowRun.workflowName),
83
+ });
84
+ const traceCarrier = workflowRun.executionContext?.traceCarrier;
85
+ if (traceCarrier) {
86
+ const context = await getSpanContextForTraceCarrier(traceCarrier);
87
+ if (context) {
88
+ span?.addLink?.({ context });
89
+ }
82
90
  }
91
+ // Re-trigger the workflow against the deployment ID associated
92
+ // with the workflow run that the hook belongs to
93
+ await world.queue(`__wkf_workflow_${workflowRun.workflowName}`, {
94
+ runId: hook.runId,
95
+ // attach the trace carrier from the workflow run
96
+ traceCarrier: workflowRun.executionContext?.traceCarrier ?? undefined,
97
+ }, {
98
+ deploymentId: workflowRun.deploymentId,
99
+ });
100
+ return hook;
83
101
  }
84
- // Re-trigger the workflow against the deployment ID associated
85
- // with the workflow run that the hook belongs to
86
- await world.queue(`__wkf_workflow_${workflowRun.workflowName}`, {
87
- runId: hook.runId,
88
- // attach the trace carrier from the workflow run
89
- traceCarrier: workflowRun.executionContext?.traceCarrier ?? undefined,
90
- }, {
91
- deploymentId: workflowRun.deploymentId,
92
- });
93
- return hook;
94
- }
95
- catch (_err) {
96
- // If hook not found, return null
97
- span?.setAttributes({
98
- ...Attribute.HookToken(token),
99
- ...Attribute.HookFound(false),
100
- });
101
- // TODO: Check for specific error types
102
- return null;
103
- }
102
+ catch (err) {
103
+ span?.setAttributes({
104
+ ...Attribute.HookToken(token),
105
+ ...Attribute.HookFound(false),
106
+ });
107
+ throw err;
108
+ }
109
+ });
104
110
  });
105
111
  }
106
112
  /**
@@ -112,7 +118,8 @@ export async function resumeHook(token, payload) {
112
118
  *
113
119
  * @param token - The unique token identifying the hook
114
120
  * @param request - The request to send to the hook
115
- * @returns Promise resolving to the response, or null if the hook doesn't exist
121
+ * @returns Promise resolving to the response
122
+ * @throws Error if the hook is not found or if there's an error during the process
116
123
  *
117
124
  * @example
118
125
  *
@@ -128,9 +135,12 @@ export async function resumeHook(token, payload) {
128
135
  * return new Response('Missing token', { status: 400 });
129
136
  * }
130
137
  *
131
- * const response = await resumeWebhook(token, request);
132
- *
133
- * return response ?? new Response('Webhook not found', { status: 404 });
138
+ * try {
139
+ * const response = await resumeWebhook(token, request);
140
+ * return response;
141
+ * } catch (error) {
142
+ * return new Response('Webhook not found', { status: 404 });
143
+ * }
134
144
  * }
135
145
  * ```
136
146
  */
@@ -177,4 +187,4 @@ export async function resumeWebhook(token, request) {
177
187
  }
178
188
  return response;
179
189
  }
180
- //# sourceMappingURL=resume-hook.js.map
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdW1lLWhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9yZXN1bWUtaG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEdBQ3JCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxLQUFhO0lBQ2hELE1BQU0sS0FBSyxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBZSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsTUFBTSxDQUFDLEtB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
@@ -2,6 +2,10 @@ import { Run } from '../runtime.js';
2
2
  export interface StartOptions {
3
3
  /**
4
4
  * The deployment ID to use for the workflow run.
5
+ *
6
+ * @deprecated This property should not be set in user code under normal circumstances.
7
+ * It is automatically inferred from environment variables when deploying to Vercel.
8
+ * Only set this if you are doing something advanced and know what you are doing.
5
9
  */
6
10
  deploymentId?: string;
7
11
  }
@@ -24,5 +28,5 @@ export type WorkflowMetadata = {
24
28
  * @returns The unique run ID for the newly started workflow invocation.
25
29
  */
26
30
  export declare function start<TArgs extends unknown[], TResult>(workflow: WorkflowFunction<TArgs, TResult> | WorkflowMetadata, args: TArgs, options?: StartOptions): Promise<Run<TResult>>;
27
- export declare function start<TArgs extends unknown[], TResult>(workflow: WorkflowFunction<TArgs, TResult> | WorkflowMetadata, options?: StartOptions): Promise<Run<TResult>>;
31
+ export declare function start<TResult>(workflow: WorkflowFunction<[], TResult> | WorkflowMetadata, options?: StartOptions): Promise<Run<TResult>>;
28
32
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAOpC,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,IAAI,CAC/D,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACpD,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC7D,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzB,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACpD,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC7D,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAQpC,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,IAAI,CAC/D,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACpD,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC7D,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzB,wBAAgB,KAAK,CAAC,OAAO,EAC3B,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC1D,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -1,57 +1,68 @@
1
1
  import { waitUntil } from '@vercel/functions';
2
2
  import { WorkflowRuntimeError } from '@workflow/errors';
3
+ import { withResolvers } from '@workflow/utils';
3
4
  import { Run } from '../runtime.js';
4
5
  import { dehydrateWorkflowArguments } from '../serialization.js';
5
6
  import * as Attribute from '../telemetry/semantic-conventions.js';
6
7
  import { serializeTraceCarrier, trace } from '../telemetry.js';
8
+ import { waitedUntil } from '../util.js';
7
9
  import { getWorld } from './world.js';
8
10
  export async function start(workflow, argsOrOptions, options) {
9
- // @ts-expect-error this field is added by our client transform
10
- const workflowName = workflow.workflowId;
11
- if (!workflowName) {
12
- throw new WorkflowRuntimeError(`'start' received an invalid workflow function. Ensure the Workflow Development Kit is configured correctly and the function includes a 'use workflow' directive.`, { slug: 'start-invalid-workflow-function' });
13
- }
14
- return trace(`WORKFLOW.start ${workflowName}`, async (span) => {
15
- span?.setAttributes({
16
- ...Attribute.WorkflowName(workflowName),
17
- ...Attribute.WorkflowOperation('start'),
18
- });
19
- let args = [];
20
- let opts = options ?? {};
21
- if (Array.isArray(argsOrOptions)) {
22
- args = argsOrOptions;
23
- }
24
- else if (typeof argsOrOptions === 'object') {
25
- opts = argsOrOptions;
11
+ return await waitedUntil(() => {
12
+ // @ts-expect-error this field is added by our client transform
13
+ const workflowName = workflow?.workflowId;
14
+ if (!workflowName) {
15
+ throw new WorkflowRuntimeError(`'start' received an invalid workflow function. Ensure the Workflow Development Kit is configured correctly and the function includes a 'use workflow' directive.`, { slug: 'start-invalid-workflow-function' });
26
16
  }
27
- span?.setAttributes({
28
- ...Attribute.WorkflowArgumentsCount(args.length),
29
- });
30
- const world = getWorld();
31
- const deploymentId = opts.deploymentId ?? (await world.getDeploymentId());
32
- const ops = [];
33
- const workflowArguments = dehydrateWorkflowArguments(args, ops);
34
- // Serialize current trace context to propagate across queue boundary
35
- const traceCarrier = await serializeTraceCarrier();
36
- const runResponse = await world.runs.create({
37
- deploymentId: deploymentId,
38
- workflowName: workflowName,
39
- input: workflowArguments,
40
- executionContext: { traceCarrier },
41
- });
42
- waitUntil(Promise.all(ops));
43
- span?.setAttributes({
44
- ...Attribute.WorkflowRunId(runResponse.runId),
45
- ...Attribute.WorkflowRunStatus(runResponse.status),
46
- ...Attribute.DeploymentId(deploymentId),
47
- });
48
- await world.queue(`__wkf_workflow_${workflowName}`, {
49
- runId: runResponse.runId,
50
- traceCarrier,
51
- }, {
52
- deploymentId,
17
+ return trace(`WORKFLOW.start ${workflowName}`, async (span) => {
18
+ span?.setAttributes({
19
+ ...Attribute.WorkflowName(workflowName),
20
+ ...Attribute.WorkflowOperation('start'),
21
+ });
22
+ let args = [];
23
+ let opts = options ?? {};
24
+ if (Array.isArray(argsOrOptions)) {
25
+ args = argsOrOptions;
26
+ }
27
+ else if (typeof argsOrOptions === 'object') {
28
+ opts = argsOrOptions;
29
+ }
30
+ span?.setAttributes({
31
+ ...Attribute.WorkflowArgumentsCount(args.length),
32
+ });
33
+ const world = getWorld();
34
+ const deploymentId = opts.deploymentId ?? (await world.getDeploymentId());
35
+ const ops = [];
36
+ const { promise: runIdPromise, resolve: resolveRunId } = withResolvers();
37
+ const workflowArguments = dehydrateWorkflowArguments(args, ops, runIdPromise);
38
+ // Serialize current trace context to propagate across queue boundary
39
+ const traceCarrier = await serializeTraceCarrier();
40
+ const runResponse = await world.runs.create({
41
+ deploymentId: deploymentId,
42
+ workflowName: workflowName,
43
+ input: workflowArguments,
44
+ executionContext: { traceCarrier },
45
+ });
46
+ resolveRunId(runResponse.runId);
47
+ waitUntil(Promise.all(ops).catch((err) => {
48
+ // Ignore expected client disconnect errors (e.g., browser refresh during streaming)
49
+ const isAbortError = err?.name === 'AbortError' || err?.name === 'ResponseAborted';
50
+ if (!isAbortError)
51
+ throw err;
52
+ }));
53
+ span?.setAttributes({
54
+ ...Attribute.WorkflowRunId(runResponse.runId),
55
+ ...Attribute.WorkflowRunStatus(runResponse.status),
56
+ ...Attribute.DeploymentId(deploymentId),
57
+ });
58
+ await world.queue(`__wkf_workflow_${workflowName}`, {
59
+ runId: runResponse.runId,
60
+ traceCarrier,
61
+ }, {
62
+ deploymentId,
63
+ });
64
+ return new Run(runResponse.runId);
53
65
  });
54
- return new Run(runResponse.runId);
55
66
  });
56
67
  }
57
- //# sourceMappingURL=start.js.map
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBNEN0QyxNQUFNLENBQUMsS0FBSyxVQUFVLEtBQUssQ0FDekIsUUFBNkQsRUFDN0QsYUFBb0MsRUFDcEMsT0FBc0I7SUFFdEIsT0FBTyxNQUFNLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDNUIsK0RBQStEO1FBQy9ELE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxVQUFVLENBQUM7UUFFMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsa0tBQWtLLEVBQ2xLLEVBQUUsSUFBSSxFQUFFLGlDQUFpQyxFQUFFLENBQzVDLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsa0JBQWtCLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM1RCxJQUFJLEVBQUUsYUFBYSxDQUFDO2dCQUNsQixHQUFHLFNBQVMsQ0FBQyxZQUFZ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
@@ -1 +1 @@
1
- {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAiB7C;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAO,KAkC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAO,IAAI,CAAC,KAAK,EAAE,oBAAoB,CASnE,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,KAM3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,GAAG,SAAS,KAAG,IAGnD,CAAC"}
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAsB7C;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAO,KAiC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAO,IAAI,CAAC,KAAK,EAAE,oBAAoB,CASnE,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,KAM3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,GAAG,SAAS,KAAG,IAGnD,CAAC"}