@lunora/workflow 1.0.0-alpha.57 → 1.0.0-alpha.58

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.
@@ -1,5 +1,5 @@
1
1
  import { WorkflowEntrypoint, WorkflowEvent, WorkflowStep } from 'cloudflare:workers';
2
- import { W as WorkflowDefinition } from "../packem_shared/types.d-Dw7Wldsx.mjs";
2
+ import { W as WorkflowDefinition } from "../packem_shared/types.d-DKvSidAr.mjs";
3
3
  import '@lunora/values';
4
4
  /**
5
5
  * Base class for the generated `WorkflowEntrypoint` classes. Applies a
@@ -1,5 +1,5 @@
1
1
  import { WorkflowEntrypoint, WorkflowEvent, WorkflowStep } from 'cloudflare:workers';
2
- import { W as WorkflowDefinition } from "../packem_shared/types.d-Dw7Wldsx.js";
2
+ import { W as WorkflowDefinition } from "../packem_shared/types.d-DKvSidAr.js";
3
3
  import '@lunora/values';
4
4
  /**
5
5
  * Base class for the generated `WorkflowEntrypoint` classes. Applies a
package/dist/do/index.mjs CHANGED
@@ -1 +1 @@
1
- import{WorkflowEntrypoint as p}from"cloudflare:workers";import{NonRetryableError as i}from"cloudflare:workflows";import{convertNonRetryableError as m}from"../packem_shared/NonRetryableError-BPu01mU8.mjs";import{extractBranchMarker as f,stripBranchMarker as h,signalBranchParentSafe as l,errorOutcome as u,okOutcome as y}from"../packem_shared/MAX_BRANCHES-j59ZUUSu.mjs";import{createWorkflowRunContext as d}from"../packem_shared/createWorkflowRunContext-B2mYJh7u.mjs";class N extends p{#r;#t;constructor(t,e,o,r){super(t,e),this.#t=o,this.#r=r??"workflow"}async run(t,e){const o=e,r=f(t.payload),c=r?{...t,payload:h(t.payload)}:t,a=d({env:this.env,event:c,exportName:this.#r,nonRetryableErrorClass:i,step:o});let n;try{n=await this.#t.handler(a)}catch(s){return r&&await l({env:this.env,log:a.log,step:o},r,u(s)),m(s,i)}return r&&await l({env:this.env,log:a.log,step:o},r,y(n)),n}}export{N as default};
1
+ import{WorkflowEntrypoint as p}from"cloudflare:workers";import{NonRetryableError as i}from"cloudflare:workflows";import{convertNonRetryableError as m}from"../packem_shared/NonRetryableError-BPu01mU8.mjs";import{extractBranchMarker as f,stripBranchMarker as h,signalBranchParentSafe as l,errorOutcome as u,okOutcome as y}from"../packem_shared/MAX_BRANCHES-j59ZUUSu.mjs";import{createWorkflowRunContext as d}from"../packem_shared/createWorkflowRunContext-DhzM_oYZ.mjs";class N extends p{#r;#t;constructor(t,e,o,r){super(t,e),this.#t=o,this.#r=r??"workflow"}async run(t,e){const o=e,r=f(t.payload),c=r?{...t,payload:h(t.payload)}:t,a=d({env:this.env,event:c,exportName:this.#r,nonRetryableErrorClass:i,step:o});let n;try{n=await this.#t.handler(a)}catch(s){return r&&await l({env:this.env,log:a.log,step:o},r,u(s)),m(s,i)}return r&&await l({env:this.env,log:a.log,step:o},r,y(n)),n}}export{N as default};
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as Workflows, L as LunoraWorkflowsOptions, b as WorkflowEventDefinition, S as StepArgsValidator, c as StepConfig, d as StepDefinition, e as WorkflowConfig, W as WorkflowDefinition, f as WorkflowBranch, g as WorkflowInstanceStatus, h as WorkflowEventLike, i as WorkflowStepLike, j as WorkflowRunContext, k as WorkflowLogger, l as WorkflowRunFunction, m as WorkflowRunStepFunction, n as WorkflowWaitForEventFunction } from "./packem_shared/types.d-Dw7Wldsx.mjs";
2
- export type { A as ArgsOf, B as BranchCompensationParams, F as FunctionKind, o as FunctionReference, I as InferStepArgs, R as RunFunctionOptions, p as RunStepOptions, q as StepHandler, r as StepRollbackContext, s as StepRollbackHandler, t as StepRunContext, u as WaitForEventOptions, v as WorkflowBindingLike, w as WorkflowBranchOutputs, x as WorkflowCreateOptions, y as WorkflowHandle, z as WorkflowHandler, C as WorkflowInstanceLike, D as WorkflowParallelFunction, E as WorkflowRollbackContextLike, G as WorkflowRollbackHandlerLike, H as WorkflowSpawnFunction, J as WorkflowSpawnOptions, K as WorkflowStatusResult, M as WorkflowStepConfigLike, N as WorkflowStepContextLike, O as WorkflowStepRollbackOptionsLike } from "./packem_shared/types.d-Dw7Wldsx.mjs";
1
+ import { a as Workflows, L as LunoraWorkflowsOptions, b as WorkflowEventDefinition, S as StepArgsValidator, c as StepConfig, d as StepDefinition, e as WorkflowConfig, W as WorkflowDefinition, f as WorkflowBranch, g as WorkflowInstanceStatus, h as WorkflowEventLike, i as WorkflowStepLike, j as WorkflowRunContext, k as WorkflowLogger, l as WorkflowRunFunction, m as WorkflowRunStepFunction, n as WorkflowWaitForEventFunction } from "./packem_shared/types.d-DKvSidAr.mjs";
2
+ export type { A as ArgsOf, B as BranchCompensationParams, F as FunctionKind, o as FunctionReference, I as InferStepArgs, R as RunFunctionOptions, p as RunStepOptions, q as StepHandler, r as StepRollbackContext, s as StepRollbackHandler, t as StepRunContext, u as WaitForEventOptions, v as WorkflowBindingLike, w as WorkflowBranchOutputs, x as WorkflowCreateOptions, y as WorkflowHandle, z as WorkflowHandler, C as WorkflowInstanceLike, D as WorkflowParallelFunction, E as WorkflowRollbackContextLike, G as WorkflowRollbackHandlerLike, H as WorkflowSpawnFunction, J as WorkflowSpawnOptions, K as WorkflowStatusResult, M as WorkflowStepConfigLike, N as WorkflowStepContextLike, O as WorkflowStepRollbackOptionsLike } from "./packem_shared/types.d-DKvSidAr.mjs";
3
3
  import { Validator } from '@lunora/values';
4
4
  import { LunoraError } from '@lunora/errors';
5
5
  /** Wiring info for one declared workflow, emitted by codegen into the generated shard. */
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as Workflows, L as LunoraWorkflowsOptions, b as WorkflowEventDefinition, S as StepArgsValidator, c as StepConfig, d as StepDefinition, e as WorkflowConfig, W as WorkflowDefinition, f as WorkflowBranch, g as WorkflowInstanceStatus, h as WorkflowEventLike, i as WorkflowStepLike, j as WorkflowRunContext, k as WorkflowLogger, l as WorkflowRunFunction, m as WorkflowRunStepFunction, n as WorkflowWaitForEventFunction } from "./packem_shared/types.d-Dw7Wldsx.js";
2
- export type { A as ArgsOf, B as BranchCompensationParams, F as FunctionKind, o as FunctionReference, I as InferStepArgs, R as RunFunctionOptions, p as RunStepOptions, q as StepHandler, r as StepRollbackContext, s as StepRollbackHandler, t as StepRunContext, u as WaitForEventOptions, v as WorkflowBindingLike, w as WorkflowBranchOutputs, x as WorkflowCreateOptions, y as WorkflowHandle, z as WorkflowHandler, C as WorkflowInstanceLike, D as WorkflowParallelFunction, E as WorkflowRollbackContextLike, G as WorkflowRollbackHandlerLike, H as WorkflowSpawnFunction, J as WorkflowSpawnOptions, K as WorkflowStatusResult, M as WorkflowStepConfigLike, N as WorkflowStepContextLike, O as WorkflowStepRollbackOptionsLike } from "./packem_shared/types.d-Dw7Wldsx.js";
1
+ import { a as Workflows, L as LunoraWorkflowsOptions, b as WorkflowEventDefinition, S as StepArgsValidator, c as StepConfig, d as StepDefinition, e as WorkflowConfig, W as WorkflowDefinition, f as WorkflowBranch, g as WorkflowInstanceStatus, h as WorkflowEventLike, i as WorkflowStepLike, j as WorkflowRunContext, k as WorkflowLogger, l as WorkflowRunFunction, m as WorkflowRunStepFunction, n as WorkflowWaitForEventFunction } from "./packem_shared/types.d-DKvSidAr.js";
2
+ export type { A as ArgsOf, B as BranchCompensationParams, F as FunctionKind, o as FunctionReference, I as InferStepArgs, R as RunFunctionOptions, p as RunStepOptions, q as StepHandler, r as StepRollbackContext, s as StepRollbackHandler, t as StepRunContext, u as WaitForEventOptions, v as WorkflowBindingLike, w as WorkflowBranchOutputs, x as WorkflowCreateOptions, y as WorkflowHandle, z as WorkflowHandler, C as WorkflowInstanceLike, D as WorkflowParallelFunction, E as WorkflowRollbackContextLike, G as WorkflowRollbackHandlerLike, H as WorkflowSpawnFunction, J as WorkflowSpawnOptions, K as WorkflowStatusResult, M as WorkflowStepConfigLike, N as WorkflowStepContextLike, O as WorkflowStepRollbackOptionsLike } from "./packem_shared/types.d-DKvSidAr.js";
3
3
  import { Validator } from '@lunora/values';
4
4
  import { LunoraError } from '@lunora/errors';
5
5
  /** Wiring info for one declared workflow, emitted by codegen into the generated shard. */
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{createWorkflowContext as e}from"./packem_shared/createWorkflowContext-zQR_9N-v.mjs";import{default as f}from"./packem_shared/createWorkflows-LvAyUyKq.mjs";import{defineWorkflowEvent as a,isWorkflowEventDefinition as i}from"./packem_shared/defineWorkflowEvent-suERPEEV.mjs";import{defineStep as p,isStepDefinition as s}from"./packem_shared/defineStep-D1-9eOnA.mjs";import{defineWorkflow as w,isWorkflowDefinition as x,workflowBindingName as k,workflowClassName as c,workflowDefaultName as E}from"./packem_shared/defineWorkflow-tKaIifbZ.mjs";import{NonRetryableError as N,convertNonRetryableError as R,isNonRetryableError as v,toNativeNonRetryableError as d}from"./packem_shared/NonRetryableError-BPu01mU8.mjs";import{MAX_BRANCHES as u,branch as C}from"./packem_shared/MAX_BRANCHES-j59ZUUSu.mjs";import{WorkflowsRestError as S,createWorkflowsRestClient as y}from"./packem_shared/WorkflowsRestError-Ccq1FUR1.mjs";import{createWorkflowRunContext as g}from"./packem_shared/createWorkflowRunContext-B2mYJh7u.mjs";import{c as h,v as F}from"./packem_shared/run-step-IuqYPWKG.mjs";import{createWaitForEvent as I}from"./packem_shared/createWaitForEvent-D5Ohn2Pz.mjs";import{isDuplicateInstanceError as X}from"./packem_shared/isDuplicateInstanceError-CecnqNAa.mjs";export{u as MAX_BRANCHES,N as NonRetryableError,S as WorkflowsRestError,C as branch,R as convertNonRetryableError,h as createRunStep,I as createWaitForEvent,e as createWorkflowContext,g as createWorkflowRunContext,f as createWorkflows,y as createWorkflowsRestClient,p as defineStep,w as defineWorkflow,a as defineWorkflowEvent,X as isDuplicateInstanceError,v as isNonRetryableError,s as isStepDefinition,x as isWorkflowDefinition,i as isWorkflowEventDefinition,d as toNativeNonRetryableError,F as validateStepArgs,k as workflowBindingName,c as workflowClassName,E as workflowDefaultName};
1
+ import{createWorkflowContext as e}from"./packem_shared/createWorkflowContext-zQR_9N-v.mjs";import{default as f}from"./packem_shared/createWorkflows-LvAyUyKq.mjs";import{defineWorkflowEvent as a,isWorkflowEventDefinition as i}from"./packem_shared/defineWorkflowEvent-suERPEEV.mjs";import{defineStep as p,isStepDefinition as s}from"./packem_shared/defineStep-D1-9eOnA.mjs";import{defineWorkflow as w,isWorkflowDefinition as x,workflowBindingName as k,workflowClassName as c,workflowDefaultName as E}from"./packem_shared/defineWorkflow-tKaIifbZ.mjs";import{NonRetryableError as N,convertNonRetryableError as R,isNonRetryableError as v,toNativeNonRetryableError as d}from"./packem_shared/NonRetryableError-BPu01mU8.mjs";import{MAX_BRANCHES as u,branch as C}from"./packem_shared/MAX_BRANCHES-j59ZUUSu.mjs";import{WorkflowsRestError as S,createWorkflowsRestClient as y}from"./packem_shared/WorkflowsRestError-Ccq1FUR1.mjs";import{createWorkflowRunContext as g}from"./packem_shared/createWorkflowRunContext-DhzM_oYZ.mjs";import{c as h,v as F}from"./packem_shared/run-step-IuqYPWKG.mjs";import{createWaitForEvent as I}from"./packem_shared/createWaitForEvent-D5Ohn2Pz.mjs";import{isDuplicateInstanceError as X}from"./packem_shared/isDuplicateInstanceError-CecnqNAa.mjs";export{u as MAX_BRANCHES,N as NonRetryableError,S as WorkflowsRestError,C as branch,R as convertNonRetryableError,h as createRunStep,I as createWaitForEvent,e as createWorkflowContext,g as createWorkflowRunContext,f as createWorkflows,y as createWorkflowsRestClient,p as defineStep,w as defineWorkflow,a as defineWorkflowEvent,X as isDuplicateInstanceError,v as isNonRetryableError,s as isStepDefinition,x as isWorkflowDefinition,i as isWorkflowEventDefinition,d as toNativeNonRetryableError,F as validateStepArgs,k as workflowBindingName,c as workflowClassName,E as workflowDefaultName};
@@ -1 +1 @@
1
- import{t as A,p as h,c as I}from"./run-step-IuqYPWKG.mjs";import{LunoraError as R}from"@lunora/errors";import{workflowBindingName as y}from"./defineWorkflow-tKaIifbZ.mjs";import{raiseNonRetryable as k}from"./NonRetryableError-BPu01mU8.mjs";import{createSpawn as T,createParallel as C}from"./MAX_BRANCHES-j59ZUUSu.mjs";import{createWaitForEvent as N}from"./createWaitForEvent-D5Ohn2Pz.mjs";const O=r=>({debug:(n,...t)=>{console.debug(r,n,...t)},error:(n,...t)=>{console.error(r,n,...t)},info:(n,...t)=>{console.info(r,n,...t)},warn:(n,...t)=>{console.warn(r,n,...t)}}),v=r=>{let n="";for(let c=0;c<r.length;c+=32768)n+=String.fromCharCode(...r.subarray(c,c+32768));return btoa(n)},$=r=>{const n=atob(r),t=new Uint8Array(n.length);for(let c=0;c<n.length;c+=1)t[c]=n.codePointAt(c)??0;return t},S="$lunora.wire$",w=64,b=1024,g="__proto__",p={BigInt64Array,BigUint64Array,Float32Array,Float64Array,Int8Array,Int16Array,Int32Array,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array},E={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},s=(r,n=0)=>{if(n>w)throw new RangeError(`wire-codec: value nesting exceeds the ${w}-level limit`);if(r===null||typeof r!="object")return r;if(Array.isArray(r)){if(r[0]===S)switch(r[1]){case"-inf":return-1/0;case"arr":return r[2].map(e=>s(e,n+1));case"bigint":{const e=r[2];if(typeof e!="string"||e.length>b||!/^-?\d+$/.test(e))throw new RangeError(`wire-codec: invalid or over-long bigint (max ${b} digits)`);return BigInt(e)}case"date":{const e=s(r[2],n+1);if(typeof e!="number")throw new TypeError("wire-codec: malformed date — epoch must be a number");return new Date(e)}case"map":{const e=r[2];return new Map(e.map(o=>{if(!Array.isArray(o)||o.length!==2)throw new TypeError("wire-codec: malformed map entry — expected a [key, value] pair");return[s(o[0],n+1),s(o[1],n+1)]}))}case"set":return new Set(r[2].map(e=>s(e,n+1)));case"url":{const e=r[2];if(typeof e!="string")throw new TypeError("wire-codec: malformed url — href must be a string");return new URL(e)}case"error":{const e=r[2],o=r[3];if(typeof e!="string"||typeof o!="string")throw new TypeError("wire-codec: malformed error — name and message must be strings");const l=(Object.hasOwn(E,e)?E[e]:void 0)??Error,i=new l(o);i.name!==e&&Object.defineProperty(i,"name",{configurable:!0,value:e,writable:!0});const d=s(r[4],n+1);if(d===null||typeof d!="object"||Array.isArray(d))throw new TypeError("wire-codec: malformed error — props must be an object");for(const a of Object.keys(d))a===g?Object.defineProperty(i,a,{configurable:!0,enumerable:!0,value:d[a],writable:!0}):i[a]=d[a];return r.length>5&&Object.defineProperty(i,"cause",{configurable:!0,value:s(r[5],n+1),writable:!0}),i}case"bytes":{const e=r[2];if(typeof e!="string")throw new TypeError("wire-codec: malformed bytes — payload must be a base64 string");const o=$(e);if(v(o)!==e)throw new TypeError("wire-codec: malformed bytes — payload must be canonical padded base64");const l=r[3]??"Uint8Array";if(l==="ArrayBuffer")return o.buffer.byteLength===o.byteLength?o.buffer:o.slice().buffer;const i=Object.hasOwn(p,l)?p[l]:void 0;return i?new i(o.slice().buffer):o}case"inf":return 1/0;case"nan":return Number.NaN;case"undefined":return;default:return r.map(e=>s(e,n+1))}return r.map(f=>s(f,n+1))}const t=r,c={};for(const f of Object.keys(t)){const e=s(t[f],n+1);f===g?Object.defineProperty(c,f,{configurable:!0,enumerable:!0,value:e,writable:!0}):c[f]=e}return c},D=r=>{const n=O(`[workflow:${r.exportName}]`),t=A({env:r.env,fetchImpl:r.fetchImpl,label:"@lunora/workflow"}),c=h(t,`${r.event.instanceId}#body`),f=a=>{const u=y(a),m=r.env[u];if(!m||typeof m.create!="function"||typeof m.get!="function")throw new R("INTERNAL",`@lunora/workflow: cannot spawn child workflow "${a}" — no Workflow binding "${u}" on env (is it declared in lunora/workflows.ts?)`);return m};let e=0;const o=a=>{if(a!==void 0)return a;const u=`${r.event.instanceId}-c${String(e)}`;return e+=1,u},l={env:r.env,instanceId:r.event.instanceId,log:n,nextChildId:o,parentBinding:y(r.exportName),resolveBinding:f,step:r.step},d=(()=>{try{return s(r.event.payload)}catch(a){return k(`@lunora/workflow: workflow "${r.exportName}" params could not be decoded — ${a instanceof Error?a.message:String(a)}`,a,r.nonRetryableErrorClass)}})();return{env:r.env,event:r.event,log:n,parallel:C(l),params:d,run:c,runStep:I({env:r.env,instanceId:r.event.instanceId,log:n,nonRetryableErrorClass:r.nonRetryableErrorClass,run:t,step:r.step}),spawn:T(l),step:r.step,waitForEvent:N({nonRetryableErrorClass:r.nonRetryableErrorClass,step:r.step})}};export{D as createWorkflowRunContext};
1
+ import{t as h,p as A,c as I}from"./run-step-IuqYPWKG.mjs";import{LunoraError as R}from"@lunora/errors";import{workflowBindingName as y}from"./defineWorkflow-tKaIifbZ.mjs";import{raiseNonRetryable as k}from"./NonRetryableError-BPu01mU8.mjs";import{createSpawn as T,createParallel as C}from"./MAX_BRANCHES-j59ZUUSu.mjs";import{createWaitForEvent as v}from"./createWaitForEvent-D5Ohn2Pz.mjs";const N=r=>({debug:(n,...t)=>{console.debug(r,n,...t)},error:(n,...t)=>{console.error(r,n,...t)},info:(n,...t)=>{console.info(r,n,...t)},warn:(n,...t)=>{console.warn(r,n,...t)}}),O=r=>{let n="";for(let c=0;c<r.length;c+=32768)n+=String.fromCharCode(...r.subarray(c,c+32768));return btoa(n)},$=r=>{const n=atob(r),t=new Uint8Array(n.length);for(let c=0;c<n.length;c+=1)t[c]=n.codePointAt(c)??0;return t},S="$lunora.wire$",w=64,b=1024,g="__proto__",p={BigInt64Array,BigUint64Array,Float32Array,Float64Array,Int8Array,Int16Array,Int32Array,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array},E={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError},s=(r,n=0)=>{if(n>w)throw new RangeError(`wire-codec: value nesting exceeds the ${w}-level limit`);if(r===null||typeof r!="object")return r;if(Array.isArray(r)){if(r[0]===S)switch(r[1]){case"-inf":return-1/0;case"arr":return r[2].map(e=>s(e,n+1));case"bigint":{const e=r[2];if(typeof e!="string"||e.length>b||!/^-?\d+$/.test(e))throw new RangeError(`wire-codec: invalid or over-long bigint (max ${b} digits)`);return BigInt(e)}case"date":{const e=s(r[2],n+1);if(typeof e!="number")throw new TypeError("wire-codec: malformed date — epoch must be a number");return new Date(e)}case"map":{const e=r[2];return new Map(e.map(o=>{if(!Array.isArray(o)||o.length!==2)throw new TypeError("wire-codec: malformed map entry — expected a [key, value] pair");return[s(o[0],n+1),s(o[1],n+1)]}))}case"set":return new Set(r[2].map(e=>s(e,n+1)));case"url":{const e=r[2];if(typeof e!="string")throw new TypeError("wire-codec: malformed url — href must be a string");return new URL(e)}case"error":{const e=r[2],o=r[3];if(typeof e!="string"||typeof o!="string")throw new TypeError("wire-codec: malformed error — name and message must be strings");const l=(Object.hasOwn(E,e)?E[e]:void 0)??Error,i=new l(o);i.name!==e&&Object.defineProperty(i,"name",{configurable:!0,value:e,writable:!0});const d=s(r[4],n+1);if(d===null||typeof d!="object"||Array.isArray(d))throw new TypeError("wire-codec: malformed error — props must be an object");for(const a of Object.keys(d))a===g?Object.defineProperty(i,a,{configurable:!0,enumerable:!0,value:d[a],writable:!0}):i[a]=d[a];return r.length>5&&Object.defineProperty(i,"cause",{configurable:!0,value:s(r[5],n+1),writable:!0}),i}case"bytes":{const e=r[2];if(typeof e!="string")throw new TypeError("wire-codec: malformed bytes — payload must be a base64 string");const o=$(e);if(O(o)!==e)throw new TypeError("wire-codec: malformed bytes — payload must be canonical padded base64");const l=r[3]??"Uint8Array";if(l==="ArrayBuffer")return o.buffer.byteLength===o.byteLength?o.buffer:o.slice().buffer;const i=Object.hasOwn(p,l)?p[l]:void 0;return i?new i(o.slice().buffer):o}case"inf":return 1/0;case"nan":return Number.NaN;case"undefined":return;default:return r.map(e=>s(e,n+1))}return r.map(f=>s(f,n+1))}const t=r,c={};for(const f of Object.keys(t)){const e=s(t[f],n+1);f===g?Object.defineProperty(c,f,{configurable:!0,enumerable:!0,value:e,writable:!0}):c[f]=e}return c},D=r=>{const n=N(`[workflow:${r.exportName}]`),t=h({env:r.env,fetchImpl:r.fetchImpl,label:"@lunora/workflow"}),c=A(t,`${r.event.instanceId}#body`),f=a=>{const u=y(a),m=r.env[u];if(!m||typeof m.create!="function"||typeof m.get!="function")throw new R("INTERNAL",`@lunora/workflow: cannot spawn child workflow "${a}" — no Workflow binding "${u}" on env (is it declared in lunora/workflows.ts?)`);return m};let e=0;const o=a=>{if(a!==void 0)return a;const u=`${r.event.instanceId}-c${String(e)}`;return e+=1,u},l={env:r.env,instanceId:r.event.instanceId,log:n,nextChildId:o,parentBinding:y(r.exportName),resolveBinding:f,step:r.step},d=(()=>{try{return s(r.event.payload)}catch(a){return k(`@lunora/workflow: workflow "${r.exportName}" params could not be decoded — ${a instanceof Error?a.message:String(a)}`,a,r.nonRetryableErrorClass)}})();return{env:r.env,event:r.event,...r.fetchImpl===void 0?{}:{fetchImpl:r.fetchImpl},log:n,parallel:C(l),params:d,run:c,runStep:I({env:r.env,instanceId:r.event.instanceId,log:n,nonRetryableErrorClass:r.nonRetryableErrorClass,run:t,step:r.step}),spawn:T(l),step:r.step,waitForEvent:v({nonRetryableErrorClass:r.nonRetryableErrorClass,step:r.step})}};export{D as createWorkflowRunContext};
@@ -460,6 +460,17 @@ interface WorkflowRunContext<Params = Record<string, unknown>> {
460
460
  readonly env: Record<string, unknown>;
461
461
  /** The triggering event (id, payload, timestamp, workflow name). */
462
462
  readonly event: WorkflowEventLike<Params>;
463
+ /**
464
+ * The `fetch` the host injected for this run, if it injected one — absent on
465
+ * a host that relies on the runtime's global.
466
+ *
467
+ * Exposed because `ctx.run` is not the only dispatcher a workflow body
468
+ * builds: `@lunora/agent`'s loop builds its own (to carry the run's
469
+ * identity), and without this it would fall back to a global `fetch` the
470
+ * host deliberately replaced — or, where there is none, throw before its
471
+ * first dispatch. A body that builds a dispatcher passes this to it.
472
+ */
473
+ readonly fetchImpl?: typeof fetch;
463
474
  /** Structured logger surfaced in `wrangler tail` / Studio logs. */
464
475
  readonly log: WorkflowLogger;
465
476
  /** Run branches as isolated child workflow instances and await their outputs (declaration-ordered tuple). */
@@ -460,6 +460,17 @@ interface WorkflowRunContext<Params = Record<string, unknown>> {
460
460
  readonly env: Record<string, unknown>;
461
461
  /** The triggering event (id, payload, timestamp, workflow name). */
462
462
  readonly event: WorkflowEventLike<Params>;
463
+ /**
464
+ * The `fetch` the host injected for this run, if it injected one — absent on
465
+ * a host that relies on the runtime's global.
466
+ *
467
+ * Exposed because `ctx.run` is not the only dispatcher a workflow body
468
+ * builds: `@lunora/agent`'s loop builds its own (to carry the run's
469
+ * identity), and without this it would fall back to a global `fetch` the
470
+ * host deliberately replaced — or, where there is none, throw before its
471
+ * first dispatch. A body that builds a dispatcher passes this to it.
472
+ */
473
+ readonly fetchImpl?: typeof fetch;
463
474
  /** Structured logger surfaced in `wrangler tail` / Studio logs. */
464
475
  readonly log: WorkflowLogger;
465
476
  /** Run branches as isolated child workflow instances and await their outputs (declaration-ordered tuple). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/workflow",
3
- "version": "1.0.0-alpha.57",
3
+ "version": "1.0.0-alpha.58",
4
4
  "description": "Durable workflows for Lunora: defineWorkflow over Cloudflare Workflows, generated WorkflowEntrypoint classes, and the ctx.workflows surface",
5
5
  "keywords": [
6
6
  "cloudflare",