@fluidgrids/workflows 2026.1027.0 → 2026.1028.1
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.
- package/README.md +170 -18
- package/dist/activation-BBh1p82z.d.cts +57 -0
- package/dist/activation-DnhG7SmF.d.ts +57 -0
- package/dist/assemble-BLqQ8lSu.d.cts +39 -0
- package/dist/assemble-DWgaXHd-.d.ts +39 -0
- package/dist/chunk-2DP2Y6EU.cjs +832 -0
- package/dist/chunk-2J6TF7YI.cjs +86 -0
- package/dist/chunk-3FOTFQ3J.js +1622 -0
- package/dist/chunk-4LYSEANA.js +199 -0
- package/dist/{chunk-KUTMY2IO.cjs → chunk-57MSZ24T.cjs} +162 -98
- package/dist/{chunk-BWSLWF2E.js → chunk-5HDSBTBX.js} +99 -32
- package/dist/chunk-623FVQSN.cjs +251 -0
- package/dist/{chunk-4DPEGDPW.js → chunk-6FSHT5IL.js} +4 -4
- package/dist/{chunk-REV7ZOA4.js → chunk-7AAZGVKD.js} +1 -35
- package/dist/chunk-7NQ37GZU.js +73 -0
- package/dist/chunk-ABFZWYHT.js +612 -0
- package/dist/{chunk-SS4LT2IP.js → chunk-BD7ZPG53.js} +5 -10
- package/dist/chunk-BO6OVILK.js +79 -0
- package/dist/chunk-C5OLWZ42.js +245 -0
- package/dist/chunk-CBL5JSCC.cjs +75 -0
- package/dist/{chunk-LSKSBVL4.cjs → chunk-CPDK3K5N.cjs} +6 -6
- package/dist/chunk-CSNWNFKU.cjs +1635 -0
- package/dist/chunk-DJYMDLV5.js +227 -0
- package/dist/{chunk-X4HKU3MX.js → chunk-E2VK7J2C.js} +3 -1
- package/dist/chunk-FMSW2HDF.cjs +267 -0
- package/dist/chunk-FQIHX7YI.cjs +80 -0
- package/dist/chunk-FR7KYWRO.cjs +41 -0
- package/dist/{chunk-AU3YW7FZ.cjs → chunk-GBQ33SIZ.cjs} +46 -51
- package/dist/{chunk-RRQ5HOBF.cjs → chunk-GVTZMA5C.cjs} +4 -4
- package/dist/chunk-H7KEVW2M.js +816 -0
- package/dist/chunk-HR3BN4C4.cjs +27 -0
- package/dist/chunk-IISBRUWJ.js +13 -0
- package/dist/chunk-JD2VQIDZ.cjs +15 -0
- package/dist/{chunk-PL73GJR4.js → chunk-JZ4TOOLN.js} +1 -1
- package/dist/chunk-L24YIZY7.cjs +207 -0
- package/dist/chunk-LNUQE6D6.js +39 -0
- package/dist/{chunk-BYJ7QTLY.cjs → chunk-NEIUQASE.cjs} +13 -13
- package/dist/chunk-P6TA5EZT.cjs +634 -0
- package/dist/chunk-PDHLTDZB.js +72 -0
- package/dist/chunk-PMCM2OH4.js +46 -0
- package/dist/chunk-PZCVF76Q.cjs +868 -0
- package/dist/{chunk-GO34UHSY.js → chunk-QAN5MZEM.js} +3 -3
- package/dist/{chunk-27HASETB.cjs → chunk-QKZL3ONM.cjs} +3 -1
- package/dist/chunk-SAENRNBJ.cjs +52 -0
- package/dist/{chunk-LMX35GNQ.js → chunk-SMCANK3F.js} +5 -4
- package/dist/{chunk-IZQNUNSU.cjs → chunk-SX2PNKKT.cjs} +18 -17
- package/dist/{chunk-LRM6JXJA.cjs → chunk-TBDXTV22.cjs} +0 -37
- package/dist/chunk-VOKMAAJP.js +848 -0
- package/dist/chunk-XB53G2DK.js +25 -0
- package/dist/chunk-Z2Y65YOY.cjs +7 -0
- package/dist/codegen/index.cjs +9 -7
- package/dist/codegen/index.d.cts +2 -2
- package/dist/codegen/index.d.ts +2 -2
- package/dist/codegen/index.js +6 -5
- package/dist/file-BOoHZgoQ.d.cts +1557 -0
- package/dist/file-yuPCFU5b.d.ts +1557 -0
- package/dist/history/index.cjs +287 -0
- package/dist/history/index.d.cts +157 -0
- package/dist/history/index.d.ts +157 -0
- package/dist/history/index.js +5 -0
- package/dist/index.cjs +134 -36
- package/dist/index.d.cts +137 -9
- package/dist/index.d.ts +137 -9
- package/dist/index.js +8 -3
- package/dist/ir/index.cjs +161 -165
- package/dist/ir/index.d.cts +32 -12
- package/dist/ir/index.d.ts +32 -12
- package/dist/ir/index.js +54 -61
- package/dist/lower-BuSvAFqi.d.cts +129 -0
- package/dist/lower-C_Qv_34S.d.ts +129 -0
- package/dist/lower-types-nofRXw9c.d.cts +15 -0
- package/dist/lower-types-nofRXw9c.d.ts +15 -0
- package/dist/{manifest-Duf-gHdO.d.cts → manifest-0OLw0i7k.d.cts} +1 -1
- package/dist/{manifest-Bp9ZJlav.d.ts → manifest-C8N6HDYl.d.ts} +1 -1
- package/dist/node-evaluator-CJNP4GHX.js +12 -0
- package/dist/node-evaluator-DMKPKUWA.cjs +22 -0
- package/dist/quickjs/index.cjs +256 -78
- package/dist/quickjs/index.d.cts +48 -7
- package/dist/quickjs/index.d.ts +48 -7
- package/dist/quickjs/index.js +254 -79
- package/dist/roundtrip/index.cjs +404 -129
- package/dist/roundtrip/index.d.cts +43 -8
- package/dist/roundtrip/index.d.ts +43 -8
- package/dist/roundtrip/index.js +260 -19
- package/dist/runtime/index.cjs +90 -0
- package/dist/runtime/index.d.cts +297 -0
- package/dist/runtime/index.d.ts +297 -0
- package/dist/runtime/index.js +8 -0
- package/dist/testing/index.cjs +1057 -0
- package/dist/testing/index.d.cts +305 -0
- package/dist/testing/index.d.ts +305 -0
- package/dist/testing/index.js +1037 -0
- package/dist/{types-Dr2Fn1Ax.d.ts → types-BGoPzgcl.d.cts} +1 -1
- package/dist/{types-Dr2Fn1Ax.d.cts → types-BGoPzgcl.d.ts} +1 -1
- package/dist/types-CpBBjaGX.d.cts +380 -0
- package/dist/types-DV-HX_Gt.d.ts +380 -0
- package/dist/{assemble-DMOuaxRI.d.ts → workflow-Bpr3vnA_.d.ts} +60 -162
- package/dist/workflow-C2a05WUJ.d.ts +444 -0
- package/dist/{assemble-BJo9TECS.d.cts → workflow-FXUkpIBc.d.cts} +60 -162
- package/dist/workflow-J-yYixny.d.cts +444 -0
- package/fixtures/README.md +128 -0
- package/fixtures/histories/activity-failure-fails-run.history.json +163 -0
- package/fixtures/histories/activity-retry-then-success.history.json +147 -0
- package/fixtures/histories/cancel-activity-abandon.history.json +126 -0
- package/fixtures/histories/cancel-activity-compensate.history.json +307 -0
- package/fixtures/histories/cancel-concurrent-non-cancellable.history.json +234 -0
- package/fixtures/histories/cancel-concurrent-scope-timeout.history.json +184 -0
- package/fixtures/histories/cancel-condition-after-cancel.history.json +200 -0
- package/fixtures/histories/cancel-during-timer.history.json +123 -0
- package/fixtures/histories/cancel-saga-compensations.history.json +325 -0
- package/fixtures/histories/cancel-scope-timeout.history.json +148 -0
- package/fixtures/histories/child-abandon-outlives-parent.history.json +191 -0
- package/fixtures/histories/child-cancel-default.history.json +234 -0
- package/fixtures/histories/child-cancel-request.history.json +206 -0
- package/fixtures/histories/child-durable-child-side.history.json +124 -0
- package/fixtures/histories/child-durable-result.history.json +163 -0
- package/fixtures/histories/child-failure-caught.history.json +166 -0
- package/fixtures/histories/child-graph-by-key.history.json +138 -0
- package/fixtures/histories/child-terminated-by-parent-close.history.json +85 -0
- package/fixtures/histories/continue-as-new-first-run.history.json +146 -0
- package/fixtures/histories/continue-as-new-history-limit.history.json +489 -0
- package/fixtures/histories/continue-as-new-last-run.history.json +147 -0
- package/fixtures/histories/continue-as-new-suggested.history.json +352 -0
- package/fixtures/histories/details-and-context.history.json +176 -0
- package/fixtures/histories/deterministic-values.history.json +128 -0
- package/fixtures/histories/engine-builtins.history.json +172 -0
- package/fixtures/histories/gather-activities.history.json +291 -0
- package/fixtures/histories/gather-all-settled.history.json +219 -0
- package/fixtures/histories/gather-mixed.history.json +281 -0
- package/fixtures/histories/input-during-running-task.history.json +111 -0
- package/fixtures/histories/nondeterminism-reordered.history.json +218 -0
- package/fixtures/histories/patched-deprecated.history.json +271 -0
- package/fixtures/histories/patched-new-run.history.json +270 -0
- package/fixtures/histories/patched-old-history.history.json +190 -0
- package/fixtures/histories/race-activity-wins.history.json +152 -0
- package/fixtures/histories/race-signal-beats-child.history.json +161 -0
- package/fixtures/histories/race-timeout-wins.history.json +118 -0
- package/fixtures/histories/side-effect-recorded.history.json +153 -0
- package/fixtures/histories/signal-buffered-at-start.history.json +157 -0
- package/fixtures/histories/signal-default-handler.history.json +187 -0
- package/fixtures/histories/signal-handler.history.json +191 -0
- package/fixtures/histories/signal-parent-child-side.history.json +132 -0
- package/fixtures/histories/signal-parent.history.json +202 -0
- package/fixtures/histories/signal-run-delivered.history.json +128 -0
- package/fixtures/histories/signal-run-undelivered.history.json +134 -0
- package/fixtures/histories/signal-wait.history.json +111 -0
- package/fixtures/histories/task-failure-code-error.history.json +137 -0
- package/fixtures/histories/task-failure-then-transient-attempt.history.json +140 -0
- package/fixtures/histories/timer-condition-met.history.json +201 -0
- package/fixtures/histories/timer-condition-timeout.history.json +118 -0
- package/fixtures/histories/timer-sleep-once.history.json +118 -0
- package/fixtures/histories/timer-sleep-sequence.history.json +210 -0
- package/fixtures/histories/update-accepted-completed.history.json +149 -0
- package/fixtures/histories/update-with-start-rejected-validation.history.json +91 -0
- package/package.json +85 -20
- package/schema/history-file.schema.json +2544 -0
- package/schema/ir-v2.schema.json +16 -0
- package/schema/run-event.schema.json +2374 -0
- package/schema/workflow-command.schema.json +1095 -0
- package/schema/workflow-task.schema.json +3560 -0
- package/dist/chunk-265J2FCH.cjs +0 -33
- package/dist/chunk-LUXCXFOE.cjs +0 -269
- package/dist/chunk-S34NJE3A.js +0 -262
- package/dist/chunk-SRQRLWOS.js +0 -31
- package/dist/lower-DcOY8ux0.d.cts +0 -49
- package/dist/lower-Dw5grNrI.d.ts +0 -49
- package/dist/node-evaluator-2GTUZVPK.cjs +0 -17
- package/dist/node-evaluator-RMYEWCXZ.js +0 -8
package/dist/ir/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings,
|
|
1
|
+
import { b as WorkflowDefinition, W as WorkflowInterface, J as JsonObject, P as Position } from '../types-BGoPzgcl.cjs';
|
|
2
|
+
export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings, a as Json, L as LegacyCredentialRef, N as NodeArgs, f as NodeErrorConfig, g as NodeTimeout, R as RetryConfig, h as RunOnSetting, i as WorkflowAuthoring, j as WorkflowCode, k as WorkflowConfig, l as WorkflowEdge, m as WorkflowNode } from '../types-BGoPzgcl.cjs';
|
|
3
3
|
export { S as SourceFile, b as buildIdOf, h as hashedProjection, i as irHash, s as sourceHash } from '../hash-CZkTXPCX.cjs';
|
|
4
|
-
import { N as NodeManifest } from '../manifest-
|
|
5
|
-
export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-
|
|
4
|
+
import { N as NodeManifest } from '../manifest-0OLw0i7k.cjs';
|
|
5
|
+
export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-0OLw0i7k.cjs';
|
|
6
6
|
export { P as PathSegment, R as RefRoot, T as TemplatePart, V as ValueRefModel, f as formatRefExpression, a as formatRefTemplate, p as parseRefExpression, b as parseTemplate } from '../expressions-DhHaqyar.cjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -322,6 +322,13 @@ declare const IR_V2_SCHEMA: {
|
|
|
322
322
|
readonly type: "string";
|
|
323
323
|
readonly minLength: 1;
|
|
324
324
|
};
|
|
325
|
+
readonly consume: {
|
|
326
|
+
readonly enum: readonly ["first", "all"];
|
|
327
|
+
};
|
|
328
|
+
readonly limitWaitUntil: {
|
|
329
|
+
readonly type: "string";
|
|
330
|
+
readonly minLength: 1;
|
|
331
|
+
};
|
|
325
332
|
readonly limitWait: {
|
|
326
333
|
readonly type: "object";
|
|
327
334
|
readonly required: readonly ["amount", "unit"];
|
|
@@ -339,6 +346,9 @@ declare const IR_V2_SCHEMA: {
|
|
|
339
346
|
readonly type: "object";
|
|
340
347
|
};
|
|
341
348
|
};
|
|
349
|
+
readonly not: {
|
|
350
|
+
readonly required: readonly ["limitWait", "limitWaitUntil"];
|
|
351
|
+
};
|
|
342
352
|
};
|
|
343
353
|
};
|
|
344
354
|
};
|
|
@@ -610,6 +620,24 @@ interface ExecutorNodeView {
|
|
|
610
620
|
disabled: boolean;
|
|
611
621
|
nodeDataNodeType: unknown;
|
|
612
622
|
argsContextNodeType: unknown;
|
|
623
|
+
/**
|
|
624
|
+
* `data.operation_name` as the run-context node data carries it
|
|
625
|
+
* (`workflow-executor.service.ts:1823`).
|
|
626
|
+
*/
|
|
627
|
+
dataOperationName: unknown;
|
|
628
|
+
/** The node-state row version: `data.version || '1.0.0'` (`:3955`, `:4205`, `:4292`). */
|
|
629
|
+
nodeStateVersion: unknown;
|
|
630
|
+
/**
|
|
631
|
+
* The state an adapter or tool sub-node sees: `args.state || data.args.state || {}`
|
|
632
|
+
* (`:5539`, `:6486`). Sub-nodes resolve a registered store endpoint, so this is
|
|
633
|
+
* `undefined` for internal node types.
|
|
634
|
+
*/
|
|
635
|
+
subNodeState: unknown;
|
|
636
|
+
/**
|
|
637
|
+
* The operation a tool sub-node binds: `state.operation || data.operation_name`
|
|
638
|
+
* (`buildToolConfigLocally`, `:6491`). `undefined` for internal node types.
|
|
639
|
+
*/
|
|
640
|
+
toolOperation: unknown;
|
|
613
641
|
}
|
|
614
642
|
/** The executor-visible values of one node. */
|
|
615
643
|
declare function executorNodeView(node: unknown): ExecutorNodeView;
|
|
@@ -645,14 +673,6 @@ declare function isValidJsonSchema(schema: unknown): boolean;
|
|
|
645
673
|
/** Validate a workflow definition. */
|
|
646
674
|
declare function validate(definition: unknown, options?: ValidateOptions): ValidationResult;
|
|
647
675
|
|
|
648
|
-
/**
|
|
649
|
-
* Canonical JSON (RFC 8785, JSON Canonicalization Scheme).
|
|
650
|
-
*
|
|
651
|
-
* Object keys are sorted by UTF-16 code units, numbers use the ECMAScript
|
|
652
|
-
* shortest round-trip form, strings use the ECMAScript escaping, and there is
|
|
653
|
-
* no insignificant whitespace. The Python SDK implements the same scheme, so a
|
|
654
|
-
* graph lowered by either SDK hashes to the same `irHash`.
|
|
655
|
-
*/
|
|
656
676
|
declare class CanonicalJsonError extends Error {
|
|
657
677
|
constructor(message: string);
|
|
658
678
|
}
|
package/dist/ir/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings,
|
|
1
|
+
import { b as WorkflowDefinition, W as WorkflowInterface, J as JsonObject, P as Position } from '../types-BGoPzgcl.js';
|
|
2
|
+
export { C as CodeBundleActivityExport, c as CodeBundleWorkflowExport, d as ConnectionRef, E as ErrorType, e as ExecutionSettings, a as Json, L as LegacyCredentialRef, N as NodeArgs, f as NodeErrorConfig, g as NodeTimeout, R as RetryConfig, h as RunOnSetting, i as WorkflowAuthoring, j as WorkflowCode, k as WorkflowConfig, l as WorkflowEdge, m as WorkflowNode } from '../types-BGoPzgcl.js';
|
|
3
3
|
export { S as SourceFile, b as buildIdOf, h as hashedProjection, i as irHash, s as sourceHash } from '../hash-CZkTXPCX.js';
|
|
4
|
-
import { N as NodeManifest } from '../manifest-
|
|
5
|
-
export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-
|
|
4
|
+
import { N as NodeManifest } from '../manifest-C8N6HDYl.js';
|
|
5
|
+
export { M as ManifestField, a as ManifestHandles, b as ManifestOperation, f as fieldSchema, c as fieldsSchema, d as findManifest, i as isTriggerOperation, o as operationsOf } from '../manifest-C8N6HDYl.js';
|
|
6
6
|
export { P as PathSegment, R as RefRoot, T as TemplatePart, V as ValueRefModel, f as formatRefExpression, a as formatRefTemplate, p as parseRefExpression, b as parseTemplate } from '../expressions-DhHaqyar.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -322,6 +322,13 @@ declare const IR_V2_SCHEMA: {
|
|
|
322
322
|
readonly type: "string";
|
|
323
323
|
readonly minLength: 1;
|
|
324
324
|
};
|
|
325
|
+
readonly consume: {
|
|
326
|
+
readonly enum: readonly ["first", "all"];
|
|
327
|
+
};
|
|
328
|
+
readonly limitWaitUntil: {
|
|
329
|
+
readonly type: "string";
|
|
330
|
+
readonly minLength: 1;
|
|
331
|
+
};
|
|
325
332
|
readonly limitWait: {
|
|
326
333
|
readonly type: "object";
|
|
327
334
|
readonly required: readonly ["amount", "unit"];
|
|
@@ -339,6 +346,9 @@ declare const IR_V2_SCHEMA: {
|
|
|
339
346
|
readonly type: "object";
|
|
340
347
|
};
|
|
341
348
|
};
|
|
349
|
+
readonly not: {
|
|
350
|
+
readonly required: readonly ["limitWait", "limitWaitUntil"];
|
|
351
|
+
};
|
|
342
352
|
};
|
|
343
353
|
};
|
|
344
354
|
};
|
|
@@ -610,6 +620,24 @@ interface ExecutorNodeView {
|
|
|
610
620
|
disabled: boolean;
|
|
611
621
|
nodeDataNodeType: unknown;
|
|
612
622
|
argsContextNodeType: unknown;
|
|
623
|
+
/**
|
|
624
|
+
* `data.operation_name` as the run-context node data carries it
|
|
625
|
+
* (`workflow-executor.service.ts:1823`).
|
|
626
|
+
*/
|
|
627
|
+
dataOperationName: unknown;
|
|
628
|
+
/** The node-state row version: `data.version || '1.0.0'` (`:3955`, `:4205`, `:4292`). */
|
|
629
|
+
nodeStateVersion: unknown;
|
|
630
|
+
/**
|
|
631
|
+
* The state an adapter or tool sub-node sees: `args.state || data.args.state || {}`
|
|
632
|
+
* (`:5539`, `:6486`). Sub-nodes resolve a registered store endpoint, so this is
|
|
633
|
+
* `undefined` for internal node types.
|
|
634
|
+
*/
|
|
635
|
+
subNodeState: unknown;
|
|
636
|
+
/**
|
|
637
|
+
* The operation a tool sub-node binds: `state.operation || data.operation_name`
|
|
638
|
+
* (`buildToolConfigLocally`, `:6491`). `undefined` for internal node types.
|
|
639
|
+
*/
|
|
640
|
+
toolOperation: unknown;
|
|
613
641
|
}
|
|
614
642
|
/** The executor-visible values of one node. */
|
|
615
643
|
declare function executorNodeView(node: unknown): ExecutorNodeView;
|
|
@@ -645,14 +673,6 @@ declare function isValidJsonSchema(schema: unknown): boolean;
|
|
|
645
673
|
/** Validate a workflow definition. */
|
|
646
674
|
declare function validate(definition: unknown, options?: ValidateOptions): ValidationResult;
|
|
647
675
|
|
|
648
|
-
/**
|
|
649
|
-
* Canonical JSON (RFC 8785, JSON Canonicalization Scheme).
|
|
650
|
-
*
|
|
651
|
-
* Object keys are sorted by UTF-16 code units, numbers use the ECMAScript
|
|
652
|
-
* shortest round-trip form, strings use the ECMAScript escaping, and there is
|
|
653
|
-
* no insignificant whitespace. The Python SDK implements the same scheme, so a
|
|
654
|
-
* graph lowered by either SDK hashes to the same `irHash`.
|
|
655
|
-
*/
|
|
656
676
|
declare class CanonicalJsonError extends Error {
|
|
657
677
|
constructor(message: string);
|
|
658
678
|
}
|
package/dist/ir/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
export { diffDefinitions } from '../chunk-
|
|
2
|
-
import { findManifest, operationsOf, fieldsSchema } from '../chunk-
|
|
3
|
-
export { fieldSchema, fieldsSchema, findManifest, isTriggerOperation, operationsOf } from '../chunk-
|
|
4
|
-
import { usesMergedParameters, CODE_WORKFLOW_NODE_TYPE, INTERNAL_TRIGGER_TYPES, V2_NODE_TYPES, normalizeDefinition } from '../chunk-
|
|
5
|
-
export { CODE_WORKFLOW_NODE_TYPE, INTERNAL_TRIGGER_TYPES, WAIT_FOR_SIGNAL_NODE_TYPE, buildIdOf, hashedProjection, irHash, normalizeDefinition, sourceHash, usesMergedParameters } from '../chunk-
|
|
1
|
+
export { diffDefinitions } from '../chunk-6FSHT5IL.js';
|
|
2
|
+
import { findManifest, operationsOf, fieldsSchema } from '../chunk-QAN5MZEM.js';
|
|
3
|
+
export { fieldSchema, fieldsSchema, findManifest, isTriggerOperation, operationsOf } from '../chunk-QAN5MZEM.js';
|
|
4
|
+
import { usesMergedParameters, CODE_WORKFLOW_NODE_TYPE, WAIT_FOR_SIGNAL_NODE_TYPE, INTERNAL_TRIGGER_TYPES, V2_NODE_TYPES, normalizeDefinition } from '../chunk-BD7ZPG53.js';
|
|
5
|
+
export { CODE_WORKFLOW_NODE_TYPE, INTERNAL_TRIGGER_TYPES, WAIT_FOR_SIGNAL_NODE_TYPE, buildIdOf, hashedProjection, irHash, normalizeDefinition, sourceHash, usesMergedParameters } from '../chunk-BD7ZPG53.js';
|
|
6
6
|
export { LAYOUT_COLUMN_WIDTH, LAYOUT_ROW_HEIGHT, autoLayout } from '../chunk-5LUIDMF4.js';
|
|
7
|
-
export { CanonicalJsonError, canonicalJson, sha256Hex, sha256Tagged, stableStringify } from '../chunk-
|
|
8
|
-
import {
|
|
9
|
-
export { formatRefExpression, formatRefTemplate, parseRefExpression, parseTemplate } from '../chunk-
|
|
7
|
+
export { CanonicalJsonError, canonicalJson, sha256Hex, sha256Tagged, stableStringify } from '../chunk-E2VK7J2C.js';
|
|
8
|
+
import { hasLegacyTemplate } from '../chunk-7AAZGVKD.js';
|
|
9
|
+
export { formatRefExpression, formatRefTemplate, parseRefExpression, parseTemplate } from '../chunk-7AAZGVKD.js';
|
|
10
|
+
import { isRecord, setOwn, deepEqual } from '../chunk-PMCM2OH4.js';
|
|
11
|
+
import { durationMs } from '../chunk-LNUQE6D6.js';
|
|
12
|
+
export { durationMs } from '../chunk-LNUQE6D6.js';
|
|
10
13
|
import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
11
14
|
import { CronExpressionParser } from 'cron-parser';
|
|
12
15
|
|
|
@@ -161,6 +164,8 @@ var IR_V2_SCHEMA = {
|
|
|
161
164
|
required: ["signalName"],
|
|
162
165
|
properties: {
|
|
163
166
|
signalName: { type: "string", minLength: 1 },
|
|
167
|
+
consume: { enum: ["first", "all"] },
|
|
168
|
+
limitWaitUntil: { type: "string", minLength: 1 },
|
|
164
169
|
limitWait: {
|
|
165
170
|
type: "object",
|
|
166
171
|
required: ["amount", "unit"],
|
|
@@ -170,7 +175,8 @@ var IR_V2_SCHEMA = {
|
|
|
170
175
|
}
|
|
171
176
|
},
|
|
172
177
|
payloadSchema: JSON_SCHEMA_OBJECT
|
|
173
|
-
}
|
|
178
|
+
},
|
|
179
|
+
not: { required: ["limitWait", "limitWaitUntil"] }
|
|
174
180
|
}
|
|
175
181
|
}
|
|
176
182
|
}
|
|
@@ -363,6 +369,8 @@ function executorNodeView(node) {
|
|
|
363
369
|
const nodeData = isRecord(data?.["nodeData"]) ? data["nodeData"] : void 0;
|
|
364
370
|
const argsContext = isRecord(args?.["context"]) ? args["context"] : void 0;
|
|
365
371
|
const contextNode = isRecord(argsContext?.["node"]) ? argsContext["node"] : void 0;
|
|
372
|
+
const subNodeState = merged ? void 0 : args?.["state"] || dataArgs?.["state"] || {};
|
|
373
|
+
const toolOperation = merged ? void 0 : (isRecord(subNodeState) ? subNodeState["operation"] : void 0) || data?.["operation_name"];
|
|
366
374
|
return {
|
|
367
375
|
id: record["id"],
|
|
368
376
|
type: record["type"],
|
|
@@ -377,7 +385,11 @@ function executorNodeView(node) {
|
|
|
377
385
|
runOn: dataSettings?.["runOn"],
|
|
378
386
|
disabled: record["disabled"] === true || data?.["disabled"] === true,
|
|
379
387
|
nodeDataNodeType: nodeData?.["nodeType"],
|
|
380
|
-
argsContextNodeType: contextNode?.["type"]
|
|
388
|
+
argsContextNodeType: contextNode?.["type"],
|
|
389
|
+
dataOperationName: data?.["operation_name"],
|
|
390
|
+
nodeStateVersion: data?.["version"] || "1.0.0",
|
|
391
|
+
subNodeState,
|
|
392
|
+
toolOperation
|
|
381
393
|
};
|
|
382
394
|
}
|
|
383
395
|
function executorView(definition) {
|
|
@@ -385,46 +397,6 @@ function executorView(definition) {
|
|
|
385
397
|
const nodes = definition["data"]["nodes"];
|
|
386
398
|
return Array.isArray(nodes) ? nodes.map(executorNodeView) : [];
|
|
387
399
|
}
|
|
388
|
-
|
|
389
|
-
// src/ir/duration.ts
|
|
390
|
-
var SHORT = /^(\d+(?:\.\d+)?)(ms|s|m|h|d|w)$/;
|
|
391
|
-
var ISO = /^P(?:(\d+(?:\.\d+)?)W)?(?:(\d+(?:\.\d+)?)D)?(?:T(?:(\d+(?:\.\d+)?)H)?(?:(\d+(?:\.\d+)?)M)?(?:(\d+(?:\.\d+)?)S)?)?$/;
|
|
392
|
-
var SECOND_MS = 1e3;
|
|
393
|
-
var MINUTE_MS = 60 * SECOND_MS;
|
|
394
|
-
var HOUR_MS = 60 * MINUTE_MS;
|
|
395
|
-
var DAY_MS = 24 * HOUR_MS;
|
|
396
|
-
var WEEK_MS = 7 * DAY_MS;
|
|
397
|
-
var UNIT_MS = {
|
|
398
|
-
ms: 1,
|
|
399
|
-
s: SECOND_MS,
|
|
400
|
-
m: MINUTE_MS,
|
|
401
|
-
h: HOUR_MS,
|
|
402
|
-
d: DAY_MS,
|
|
403
|
-
w: WEEK_MS
|
|
404
|
-
};
|
|
405
|
-
function durationMs(value, numberUnit) {
|
|
406
|
-
if (typeof value === "number") {
|
|
407
|
-
if (!Number.isFinite(value) || value < 0) return void 0;
|
|
408
|
-
return numberUnit === "s" ? value * 1e3 : value;
|
|
409
|
-
}
|
|
410
|
-
if (typeof value !== "string") return void 0;
|
|
411
|
-
const text = value.trim();
|
|
412
|
-
const short = SHORT.exec(text);
|
|
413
|
-
if (short?.[1] !== void 0 && short[2] !== void 0) {
|
|
414
|
-
const unit = UNIT_MS[short[2]];
|
|
415
|
-
return unit === void 0 ? void 0 : Number(short[1]) * unit;
|
|
416
|
-
}
|
|
417
|
-
const iso = ISO.exec(text);
|
|
418
|
-
if (iso && text !== "P" && text !== "PT") {
|
|
419
|
-
const [, weeks, days, hours, minutes, seconds] = iso;
|
|
420
|
-
const parts = [weeks, days, hours, minutes, seconds];
|
|
421
|
-
if (parts.every((part) => part === void 0)) return void 0;
|
|
422
|
-
return Number(weeks ?? 0) * WEEK_MS + Number(days ?? 0) * DAY_MS + Number(hours ?? 0) * HOUR_MS + Number(minutes ?? 0) * MINUTE_MS + Number(seconds ?? 0) * SECOND_MS;
|
|
423
|
-
}
|
|
424
|
-
return void 0;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
// src/ir/schedule.ts
|
|
428
400
|
var FIRE_TIMES = 10;
|
|
429
401
|
var MAX_ITERATIONS = 2e4;
|
|
430
402
|
var CALENDAR_FIELDS = [
|
|
@@ -638,17 +610,13 @@ function legacyMirrors(node) {
|
|
|
638
610
|
const data = isRecord(node["data"]) ? node["data"] : void 0;
|
|
639
611
|
const dataArgs = isRecord(data?.["args"]) ? data["args"] : void 0;
|
|
640
612
|
if (data) {
|
|
641
|
-
for (const key of [
|
|
642
|
-
"label",
|
|
643
|
-
"operation_name",
|
|
644
|
-
"errorConfig",
|
|
645
|
-
"disabled",
|
|
646
|
-
"state",
|
|
647
|
-
"nodeVersion"
|
|
648
|
-
]) {
|
|
613
|
+
for (const key of ["label", "errorConfig", "disabled", "state", "nodeVersion"]) {
|
|
649
614
|
if (data[key] !== void 0) found.push(`data.${key}`);
|
|
650
615
|
}
|
|
651
|
-
if (
|
|
616
|
+
if (data["operation_name"] !== void 0 && !deepEqual(data["operation_name"], node["operation_name"]))
|
|
617
|
+
found.push("data.operation_name");
|
|
618
|
+
if (!merged && data["version"] !== void 0 && !deepEqual(data["version"], node["version"]))
|
|
619
|
+
found.push("data.version");
|
|
652
620
|
for (const key of ["state", "connections", "credentials", "context"]) {
|
|
653
621
|
if (dataArgs?.[key] !== void 0) found.push(`data.args.${key}`);
|
|
654
622
|
}
|
|
@@ -819,6 +787,31 @@ function validate(definition, options = {}) {
|
|
|
819
787
|
});
|
|
820
788
|
}
|
|
821
789
|
if (typeof state?.["taskQueue"] === "string") taskQueues.add(state["taskQueue"]);
|
|
790
|
+
const policy = state?.["parentClosePolicy"];
|
|
791
|
+
if (state?.["waitForCompletion"] === false && (policy === "TERMINATE" || policy === "REQUEST_CANCEL"))
|
|
792
|
+
warnings.push({
|
|
793
|
+
code: "codeWorkflow.closePolicyEndsChild",
|
|
794
|
+
message: `waitForCompletion is false but parentClosePolicy is ${policy}: the child is stopped when the parent run ends; use ABANDON (the default) to let it outlive the parent`,
|
|
795
|
+
...at,
|
|
796
|
+
path: "args.state.parentClosePolicy"
|
|
797
|
+
});
|
|
798
|
+
if (state?.["waitForCompletion"] === false && typeof state["timeout"] === "number" && state["timeout"] > 0)
|
|
799
|
+
warnings.push({
|
|
800
|
+
code: "codeWorkflow.timeoutIgnored",
|
|
801
|
+
message: "timeout applies only while the node waits for the child; it has no effect when waitForCompletion is false",
|
|
802
|
+
...at,
|
|
803
|
+
path: "args.state.timeout"
|
|
804
|
+
});
|
|
805
|
+
}
|
|
806
|
+
if (type === WAIT_FOR_SIGNAL_NODE_TYPE) {
|
|
807
|
+
const until = state?.["limitWaitUntil"];
|
|
808
|
+
if (until !== void 0 && (typeof until !== "string" || Number.isNaN(Date.parse(until))))
|
|
809
|
+
fail({
|
|
810
|
+
code: "waitForSignal.invalidDeadline",
|
|
811
|
+
message: "limitWaitUntil must be an ISO 8601 date-time",
|
|
812
|
+
...at,
|
|
813
|
+
path: "args.state.limitWaitUntil"
|
|
814
|
+
});
|
|
822
815
|
}
|
|
823
816
|
const isTrigger = INTERNAL_TRIGGER_TYPES.has(type) || id !== void 0 && (incoming.get(id) ?? 0) === 0;
|
|
824
817
|
if (isTrigger && state?.["startDelay"] !== void 0) {
|
|
@@ -1076,7 +1069,7 @@ function workflowInputsSchema(workflowInputs) {
|
|
|
1076
1069
|
const name = (rawName ?? "").trim();
|
|
1077
1070
|
if (!name) continue;
|
|
1078
1071
|
const type = (rawType ?? "").trim().toLowerCase();
|
|
1079
|
-
properties
|
|
1072
|
+
setOwn(properties, name, FIELD_TYPES.has(type) ? { type } : {});
|
|
1080
1073
|
required.push(name);
|
|
1081
1074
|
}
|
|
1082
1075
|
return {
|
|
@@ -1117,4 +1110,4 @@ function deriveInterface(definition, options = {}) {
|
|
|
1117
1110
|
return derived;
|
|
1118
1111
|
}
|
|
1119
1112
|
|
|
1120
|
-
export { IR_V2_SCHEMA, IR_V2_SCHEMA_ID, WORKFLOW_DOCUMENT_FORMAT, buildExportDocument, checkScheduleSpec, deriveInterface,
|
|
1113
|
+
export { IR_V2_SCHEMA, IR_V2_SCHEMA_ID, WORKFLOW_DOCUMENT_FORMAT, buildExportDocument, checkScheduleSpec, deriveInterface, envelopeSchemaVersion, executorNodeView, executorView, exportDefinition, isV2Definition, isValidJsonSchema, parseWorkflowDocument, readWorkflowDocument, serializeWorkflowDocument, validate, workflowInputsSchema };
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { S as SourceFile } from './hash-CZkTXPCX.cjs';
|
|
2
|
+
import { b as WorkflowDefinition, W as WorkflowInterface } from './types-BGoPzgcl.cjs';
|
|
3
|
+
import { C as ConnectionResolver } from './assemble-BLqQ8lSu.cjs';
|
|
4
|
+
import { E as EsbuildApi, L as LowerError } from './lower-types-nofRXw9c.cjs';
|
|
5
|
+
|
|
6
|
+
/** One vendored package: its version and its files (paths relative to the package root). */
|
|
7
|
+
interface VendoredPackage {
|
|
8
|
+
version: string;
|
|
9
|
+
files: Readonly<Record<string, string>>;
|
|
10
|
+
}
|
|
11
|
+
/** Vendored packages by name (`zod`, `@scope/pkg`). */
|
|
12
|
+
type VendoredDeps = Readonly<Record<string, VendoredPackage>>;
|
|
13
|
+
interface BuildBundleOptions {
|
|
14
|
+
/** Entry modules. Default: every workflow source (see `defaultEntries`). */
|
|
15
|
+
entries?: readonly string[];
|
|
16
|
+
/** Vendored pure-ESM packages. */
|
|
17
|
+
deps?: VendoredDeps;
|
|
18
|
+
esbuild?: EsbuildApi;
|
|
19
|
+
/** Largest total size of the project sources, in UTF-8 bytes. Default 1 MiB. */
|
|
20
|
+
maxSourceBytes?: number;
|
|
21
|
+
/** Largest bundle, in UTF-8 bytes. Default 1.5 MiB (4 MiB with vendored deps). */
|
|
22
|
+
maxBundleBytes?: number;
|
|
23
|
+
}
|
|
24
|
+
interface BuiltBundle {
|
|
25
|
+
/** The ES module. */
|
|
26
|
+
bundle: string;
|
|
27
|
+
/** `sha256:<hex>` of the bundle. */
|
|
28
|
+
buildId: string;
|
|
29
|
+
/**
|
|
30
|
+
* `sha256:<hex>` of the project sources and, when there are any, the
|
|
31
|
+
* vendored packages (as `node_modules/<name>/<path>` files), so the source
|
|
32
|
+
* archive key changes whenever the inputs of the build do.
|
|
33
|
+
*/
|
|
34
|
+
sourceHash: string;
|
|
35
|
+
entries: string[];
|
|
36
|
+
}
|
|
37
|
+
/** Node built-in module names (without the `node:` prefix). */
|
|
38
|
+
declare const NODE_BUILTINS: ReadonlySet<string>;
|
|
39
|
+
/** The default entry modules: workflow sources, not generated clients, tests or declarations. */
|
|
40
|
+
declare function defaultEntries(paths: readonly string[]): string[];
|
|
41
|
+
/** Split a bare specifier into package name and subpath (`@a/b/c` -> `@a/b`, `./c`). */
|
|
42
|
+
declare function splitSpecifier(specifier: string): {
|
|
43
|
+
name: string;
|
|
44
|
+
subpath: string;
|
|
45
|
+
};
|
|
46
|
+
/** The file a vendored package exports at `subpath`, relative to the package root. */
|
|
47
|
+
declare function resolvePackageEntry(name: string, pkg: VendoredPackage, subpath: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* The `sourceHash` of a build: the project files plus the vendored packages
|
|
50
|
+
* as `node_modules/<name>/<path>`. With no vendored packages it is the plain
|
|
51
|
+
* `sourceHash` of the project files, as in Phase A.
|
|
52
|
+
*/
|
|
53
|
+
declare function bundleSourceHash(files: ReadonlyMap<string, string>, deps?: VendoredDeps): string;
|
|
54
|
+
/** Bundle a project into one ES module. */
|
|
55
|
+
declare function buildBundle(files: ReadonlyMap<string, string>, options?: BuildBundleOptions): Promise<BuiltBundle>;
|
|
56
|
+
|
|
57
|
+
/** Runs a bundle and returns the string value of its `__fluidgrids` export. */
|
|
58
|
+
interface Evaluator {
|
|
59
|
+
/** `esm`: the bundle as built; `iife`: a script assigning the exports to `__fluidgridsBundle`. */
|
|
60
|
+
readonly format: 'esm' | 'iife';
|
|
61
|
+
evaluate(code: string): Promise<string>;
|
|
62
|
+
}
|
|
63
|
+
declare const EVALUATION_GLOBAL = "__fluidgridsBundle";
|
|
64
|
+
declare const ESBUILD_VERSION = "0.28.2";
|
|
65
|
+
/**
|
|
66
|
+
* The workflow code read the clock or a random source while it was defined
|
|
67
|
+
* (`Date.now()`, `new Date()`, `Math.random()`, …), which would make two builds
|
|
68
|
+
* of the same source differ.
|
|
69
|
+
*/
|
|
70
|
+
declare class DeterminismViolationError extends LowerError {
|
|
71
|
+
constructor(message: string);
|
|
72
|
+
}
|
|
73
|
+
interface LowerOptions {
|
|
74
|
+
/** Modules to evaluate. Default: every `.ts` file outside `.fluidgrids/`, except tests and declarations. */
|
|
75
|
+
entries?: readonly string[];
|
|
76
|
+
esbuild?: EsbuildApi;
|
|
77
|
+
evaluator?: Evaluator;
|
|
78
|
+
connections?: ConnectionResolver;
|
|
79
|
+
/** Largest JSON the evaluation may return. Default 16 MiB. */
|
|
80
|
+
maxOutputBytes?: number;
|
|
81
|
+
/** Largest total size of the source files, in UTF-8 bytes, checked before esbuild. Default 1 MiB. */
|
|
82
|
+
maxSourceBytes?: number;
|
|
83
|
+
/** Largest bundle, in UTF-8 bytes, checked before evaluation. Default 1.5 MiB (4 MiB with deps). */
|
|
84
|
+
maxBundleBytes?: number;
|
|
85
|
+
/** Vendored pure-ESM packages the workflow code imports (see `buildBundle`). */
|
|
86
|
+
deps?: VendoredDeps;
|
|
87
|
+
}
|
|
88
|
+
/** A problem `lower()` found in tier-2 sources without running them. */
|
|
89
|
+
interface LowerIssue {
|
|
90
|
+
code: 'durable.phaseC' | 'durable.activityTypeNotAllowed';
|
|
91
|
+
message: string;
|
|
92
|
+
module: string;
|
|
93
|
+
}
|
|
94
|
+
interface LoweredWorkflow {
|
|
95
|
+
key: string;
|
|
96
|
+
module: string;
|
|
97
|
+
exportName: string;
|
|
98
|
+
definition: WorkflowDefinition;
|
|
99
|
+
}
|
|
100
|
+
interface LowerResult {
|
|
101
|
+
/** `sha256:<hex>` of the bundle. */
|
|
102
|
+
buildId: string;
|
|
103
|
+
bundle: string;
|
|
104
|
+
/** `sha256:<hex>` of the source files. */
|
|
105
|
+
sourceHash: string;
|
|
106
|
+
workflows: LoweredWorkflow[];
|
|
107
|
+
/** The bundle's tier-2 functions, by export name (`code.exports.workflows`). */
|
|
108
|
+
durableExports: Record<string, {
|
|
109
|
+
interface: WorkflowInterface;
|
|
110
|
+
taskQueue: string;
|
|
111
|
+
}>;
|
|
112
|
+
/** Findings in tier-2 sources (Phase C features, refused activity node types). */
|
|
113
|
+
issues: LowerIssue[];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Bundle a project. Exported so services can compute `buildId` without
|
|
117
|
+
* evaluating; `buildBundle()` is the full form (vendored packages, limits).
|
|
118
|
+
*/
|
|
119
|
+
declare function bundleProject(files: ReadonlyMap<string, string>, entries: readonly string[], esbuild: EsbuildApi): Promise<string>;
|
|
120
|
+
/**
|
|
121
|
+
* Find Phase C features and refused activity node types in the modules that
|
|
122
|
+
* declare tier-2 functions, without running them. The runtime and the service
|
|
123
|
+
* refuse both as well; this reports them before a push.
|
|
124
|
+
*/
|
|
125
|
+
declare function scanDurableSources(files: ReadonlyMap<string, string>, modules: Iterable<string>): LowerIssue[];
|
|
126
|
+
/** Lower TypeScript sources (tier 1 and tier 2) to IR v2. */
|
|
127
|
+
declare function lower(files: readonly SourceFile[] | Readonly<Record<string, string>>, options?: LowerOptions): Promise<LowerResult>;
|
|
128
|
+
|
|
129
|
+
export { type BuildBundleOptions as B, DeterminismViolationError as D, type Evaluator as E, type LowerIssue as L, NODE_BUILTINS as N, type VendoredDeps as V, type VendoredPackage as a, type BuiltBundle as b, ESBUILD_VERSION as c, EVALUATION_GLOBAL as d, type LowerOptions as e, type LowerResult as f, type LoweredWorkflow as g, buildBundle as h, bundleProject as i, bundleSourceHash as j, defaultEntries as k, lower as l, splitSpecifier as m, resolvePackageEntry as r, scanDurableSources as s };
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { S as SourceFile } from './hash-CZkTXPCX.js';
|
|
2
|
+
import { b as WorkflowDefinition, W as WorkflowInterface } from './types-BGoPzgcl.js';
|
|
3
|
+
import { C as ConnectionResolver } from './assemble-DWgaXHd-.js';
|
|
4
|
+
import { E as EsbuildApi, L as LowerError } from './lower-types-nofRXw9c.js';
|
|
5
|
+
|
|
6
|
+
/** One vendored package: its version and its files (paths relative to the package root). */
|
|
7
|
+
interface VendoredPackage {
|
|
8
|
+
version: string;
|
|
9
|
+
files: Readonly<Record<string, string>>;
|
|
10
|
+
}
|
|
11
|
+
/** Vendored packages by name (`zod`, `@scope/pkg`). */
|
|
12
|
+
type VendoredDeps = Readonly<Record<string, VendoredPackage>>;
|
|
13
|
+
interface BuildBundleOptions {
|
|
14
|
+
/** Entry modules. Default: every workflow source (see `defaultEntries`). */
|
|
15
|
+
entries?: readonly string[];
|
|
16
|
+
/** Vendored pure-ESM packages. */
|
|
17
|
+
deps?: VendoredDeps;
|
|
18
|
+
esbuild?: EsbuildApi;
|
|
19
|
+
/** Largest total size of the project sources, in UTF-8 bytes. Default 1 MiB. */
|
|
20
|
+
maxSourceBytes?: number;
|
|
21
|
+
/** Largest bundle, in UTF-8 bytes. Default 1.5 MiB (4 MiB with vendored deps). */
|
|
22
|
+
maxBundleBytes?: number;
|
|
23
|
+
}
|
|
24
|
+
interface BuiltBundle {
|
|
25
|
+
/** The ES module. */
|
|
26
|
+
bundle: string;
|
|
27
|
+
/** `sha256:<hex>` of the bundle. */
|
|
28
|
+
buildId: string;
|
|
29
|
+
/**
|
|
30
|
+
* `sha256:<hex>` of the project sources and, when there are any, the
|
|
31
|
+
* vendored packages (as `node_modules/<name>/<path>` files), so the source
|
|
32
|
+
* archive key changes whenever the inputs of the build do.
|
|
33
|
+
*/
|
|
34
|
+
sourceHash: string;
|
|
35
|
+
entries: string[];
|
|
36
|
+
}
|
|
37
|
+
/** Node built-in module names (without the `node:` prefix). */
|
|
38
|
+
declare const NODE_BUILTINS: ReadonlySet<string>;
|
|
39
|
+
/** The default entry modules: workflow sources, not generated clients, tests or declarations. */
|
|
40
|
+
declare function defaultEntries(paths: readonly string[]): string[];
|
|
41
|
+
/** Split a bare specifier into package name and subpath (`@a/b/c` -> `@a/b`, `./c`). */
|
|
42
|
+
declare function splitSpecifier(specifier: string): {
|
|
43
|
+
name: string;
|
|
44
|
+
subpath: string;
|
|
45
|
+
};
|
|
46
|
+
/** The file a vendored package exports at `subpath`, relative to the package root. */
|
|
47
|
+
declare function resolvePackageEntry(name: string, pkg: VendoredPackage, subpath: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* The `sourceHash` of a build: the project files plus the vendored packages
|
|
50
|
+
* as `node_modules/<name>/<path>`. With no vendored packages it is the plain
|
|
51
|
+
* `sourceHash` of the project files, as in Phase A.
|
|
52
|
+
*/
|
|
53
|
+
declare function bundleSourceHash(files: ReadonlyMap<string, string>, deps?: VendoredDeps): string;
|
|
54
|
+
/** Bundle a project into one ES module. */
|
|
55
|
+
declare function buildBundle(files: ReadonlyMap<string, string>, options?: BuildBundleOptions): Promise<BuiltBundle>;
|
|
56
|
+
|
|
57
|
+
/** Runs a bundle and returns the string value of its `__fluidgrids` export. */
|
|
58
|
+
interface Evaluator {
|
|
59
|
+
/** `esm`: the bundle as built; `iife`: a script assigning the exports to `__fluidgridsBundle`. */
|
|
60
|
+
readonly format: 'esm' | 'iife';
|
|
61
|
+
evaluate(code: string): Promise<string>;
|
|
62
|
+
}
|
|
63
|
+
declare const EVALUATION_GLOBAL = "__fluidgridsBundle";
|
|
64
|
+
declare const ESBUILD_VERSION = "0.28.2";
|
|
65
|
+
/**
|
|
66
|
+
* The workflow code read the clock or a random source while it was defined
|
|
67
|
+
* (`Date.now()`, `new Date()`, `Math.random()`, …), which would make two builds
|
|
68
|
+
* of the same source differ.
|
|
69
|
+
*/
|
|
70
|
+
declare class DeterminismViolationError extends LowerError {
|
|
71
|
+
constructor(message: string);
|
|
72
|
+
}
|
|
73
|
+
interface LowerOptions {
|
|
74
|
+
/** Modules to evaluate. Default: every `.ts` file outside `.fluidgrids/`, except tests and declarations. */
|
|
75
|
+
entries?: readonly string[];
|
|
76
|
+
esbuild?: EsbuildApi;
|
|
77
|
+
evaluator?: Evaluator;
|
|
78
|
+
connections?: ConnectionResolver;
|
|
79
|
+
/** Largest JSON the evaluation may return. Default 16 MiB. */
|
|
80
|
+
maxOutputBytes?: number;
|
|
81
|
+
/** Largest total size of the source files, in UTF-8 bytes, checked before esbuild. Default 1 MiB. */
|
|
82
|
+
maxSourceBytes?: number;
|
|
83
|
+
/** Largest bundle, in UTF-8 bytes, checked before evaluation. Default 1.5 MiB (4 MiB with deps). */
|
|
84
|
+
maxBundleBytes?: number;
|
|
85
|
+
/** Vendored pure-ESM packages the workflow code imports (see `buildBundle`). */
|
|
86
|
+
deps?: VendoredDeps;
|
|
87
|
+
}
|
|
88
|
+
/** A problem `lower()` found in tier-2 sources without running them. */
|
|
89
|
+
interface LowerIssue {
|
|
90
|
+
code: 'durable.phaseC' | 'durable.activityTypeNotAllowed';
|
|
91
|
+
message: string;
|
|
92
|
+
module: string;
|
|
93
|
+
}
|
|
94
|
+
interface LoweredWorkflow {
|
|
95
|
+
key: string;
|
|
96
|
+
module: string;
|
|
97
|
+
exportName: string;
|
|
98
|
+
definition: WorkflowDefinition;
|
|
99
|
+
}
|
|
100
|
+
interface LowerResult {
|
|
101
|
+
/** `sha256:<hex>` of the bundle. */
|
|
102
|
+
buildId: string;
|
|
103
|
+
bundle: string;
|
|
104
|
+
/** `sha256:<hex>` of the source files. */
|
|
105
|
+
sourceHash: string;
|
|
106
|
+
workflows: LoweredWorkflow[];
|
|
107
|
+
/** The bundle's tier-2 functions, by export name (`code.exports.workflows`). */
|
|
108
|
+
durableExports: Record<string, {
|
|
109
|
+
interface: WorkflowInterface;
|
|
110
|
+
taskQueue: string;
|
|
111
|
+
}>;
|
|
112
|
+
/** Findings in tier-2 sources (Phase C features, refused activity node types). */
|
|
113
|
+
issues: LowerIssue[];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Bundle a project. Exported so services can compute `buildId` without
|
|
117
|
+
* evaluating; `buildBundle()` is the full form (vendored packages, limits).
|
|
118
|
+
*/
|
|
119
|
+
declare function bundleProject(files: ReadonlyMap<string, string>, entries: readonly string[], esbuild: EsbuildApi): Promise<string>;
|
|
120
|
+
/**
|
|
121
|
+
* Find Phase C features and refused activity node types in the modules that
|
|
122
|
+
* declare tier-2 functions, without running them. The runtime and the service
|
|
123
|
+
* refuse both as well; this reports them before a push.
|
|
124
|
+
*/
|
|
125
|
+
declare function scanDurableSources(files: ReadonlyMap<string, string>, modules: Iterable<string>): LowerIssue[];
|
|
126
|
+
/** Lower TypeScript sources (tier 1 and tier 2) to IR v2. */
|
|
127
|
+
declare function lower(files: readonly SourceFile[] | Readonly<Record<string, string>>, options?: LowerOptions): Promise<LowerResult>;
|
|
128
|
+
|
|
129
|
+
export { type BuildBundleOptions as B, DeterminismViolationError as D, type Evaluator as E, type LowerIssue as L, NODE_BUILTINS as N, type VendoredDeps as V, type VendoredPackage as a, type BuiltBundle as b, ESBUILD_VERSION as c, EVALUATION_GLOBAL as d, type LowerOptions as e, type LowerResult as f, type LoweredWorkflow as g, buildBundle as h, bundleProject as i, bundleSourceHash as j, defaultEntries as k, lower as l, splitSpecifier as m, resolvePackageEntry as r, scanDurableSources as s };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as esbuild from 'esbuild';
|
|
2
|
+
|
|
3
|
+
/** Why an evaluation produced no collection. */
|
|
4
|
+
type IsolateFailure = 'error' | 'timeout' | 'determinism' | 'no-collection' | 'out-of-memory' | 'crashed';
|
|
5
|
+
|
|
6
|
+
/** The esbuild API surface lower() uses (`esbuild` or `esbuild-wasm`, version 0.28.2). */
|
|
7
|
+
type EsbuildApi = Pick<typeof esbuild, 'build' | 'transform'>;
|
|
8
|
+
/** Why lowering failed, when the cause is one a caller may want to tell apart. */
|
|
9
|
+
type LowerFailureReason = IsolateFailure | 'too-large';
|
|
10
|
+
declare class LowerError extends Error {
|
|
11
|
+
readonly reason?: LowerFailureReason | undefined;
|
|
12
|
+
constructor(message: string, reason?: LowerFailureReason | undefined);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { type EsbuildApi as E, LowerError as L, type LowerFailureReason as a };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as esbuild from 'esbuild';
|
|
2
|
+
|
|
3
|
+
/** Why an evaluation produced no collection. */
|
|
4
|
+
type IsolateFailure = 'error' | 'timeout' | 'determinism' | 'no-collection' | 'out-of-memory' | 'crashed';
|
|
5
|
+
|
|
6
|
+
/** The esbuild API surface lower() uses (`esbuild` or `esbuild-wasm`, version 0.28.2). */
|
|
7
|
+
type EsbuildApi = Pick<typeof esbuild, 'build' | 'transform'>;
|
|
8
|
+
/** Why lowering failed, when the cause is one a caller may want to tell apart. */
|
|
9
|
+
type LowerFailureReason = IsolateFailure | 'too-large';
|
|
10
|
+
declare class LowerError extends Error {
|
|
11
|
+
readonly reason?: LowerFailureReason | undefined;
|
|
12
|
+
constructor(message: string, reason?: LowerFailureReason | undefined);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { type EsbuildApi as E, LowerError as L, type LowerFailureReason as a };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { createNodeVmEvaluator } from './chunk-XB53G2DK.js';
|
|
2
|
+
import './chunk-H7KEVW2M.js';
|
|
3
|
+
import './chunk-PDHLTDZB.js';
|
|
4
|
+
import './chunk-5HDSBTBX.js';
|
|
5
|
+
import './chunk-BD7ZPG53.js';
|
|
6
|
+
import './chunk-5LUIDMF4.js';
|
|
7
|
+
import './chunk-JZ4TOOLN.js';
|
|
8
|
+
import './chunk-E2VK7J2C.js';
|
|
9
|
+
import './chunk-7AAZGVKD.js';
|
|
10
|
+
import './chunk-PMCM2OH4.js';
|
|
11
|
+
import './chunk-7NQ37GZU.js';
|
|
12
|
+
import './chunk-BO6OVILK.js';
|