@bian-womp/spark-graph 0.3.46 → 0.3.47
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/lib/cjs/index.cjs +11 -12
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/core/types.d.ts +2 -1
- package/lib/cjs/src/core/types.d.ts.map +1 -1
- package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/NodeExecutor.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/RunContextManager.d.ts +2 -1
- package/lib/cjs/src/runtime/components/RunContextManager.d.ts.map +1 -1
- package/lib/esm/index.js +11 -12
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/core/types.d.ts +2 -1
- package/lib/esm/src/core/types.d.ts.map +1 -1
- package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/NodeExecutor.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/RunContextManager.d.ts +2 -1
- package/lib/esm/src/runtime/components/RunContextManager.d.ts.map +1 -1
- package/lib/src/builder/GraphBuilder.d.ts +43 -0
- package/lib/src/builder/GraphBuilder.d.ts.map +1 -0
- package/lib/src/builder/GraphBuilder.js +284 -0
- package/lib/src/builder/GraphBuilder.js.map +1 -0
- package/lib/src/builder/Registry.d.ts +93 -0
- package/lib/src/builder/Registry.d.ts.map +1 -0
- package/lib/src/builder/Registry.js +393 -0
- package/lib/src/builder/Registry.js.map +1 -0
- package/lib/src/core/categories.d.ts +22 -0
- package/lib/src/core/categories.d.ts.map +1 -0
- package/lib/src/core/categories.js +2 -0
- package/lib/src/core/categories.js.map +1 -0
- package/lib/src/core/order.d.ts +7 -0
- package/lib/src/core/order.d.ts.map +1 -0
- package/lib/src/core/order.js +66 -0
- package/lib/src/core/order.js.map +1 -0
- package/lib/src/core/type-utils.d.ts +29 -0
- package/lib/src/core/type-utils.d.ts.map +1 -0
- package/lib/src/core/type-utils.js +97 -0
- package/lib/src/core/type-utils.js.map +1 -0
- package/lib/src/core/types.d.ts +92 -0
- package/lib/src/core/types.d.ts.map +1 -0
- package/lib/src/core/types.js +2 -0
- package/lib/src/core/types.js.map +1 -0
- package/lib/src/examples/arrays.d.ts +5 -0
- package/lib/src/examples/arrays.d.ts.map +1 -0
- package/lib/src/examples/arrays.js +49 -0
- package/lib/src/examples/arrays.js.map +1 -0
- package/lib/src/examples/async.d.ts +5 -0
- package/lib/src/examples/async.d.ts.map +1 -0
- package/lib/src/examples/async.js +91 -0
- package/lib/src/examples/async.js.map +1 -0
- package/lib/src/examples/progress.d.ts +5 -0
- package/lib/src/examples/progress.d.ts.map +1 -0
- package/lib/src/examples/progress.js +51 -0
- package/lib/src/examples/progress.js.map +1 -0
- package/lib/src/examples/run.d.ts +2 -0
- package/lib/src/examples/run.d.ts.map +1 -0
- package/lib/src/examples/run.js +32 -0
- package/lib/src/examples/run.js.map +1 -0
- package/lib/src/examples/runMode.d.ts +2 -0
- package/lib/src/examples/runMode.d.ts.map +1 -0
- package/lib/src/examples/runMode.js +223 -0
- package/lib/src/examples/runMode.js.map +1 -0
- package/lib/src/examples/shared.d.ts +5 -0
- package/lib/src/examples/shared.d.ts.map +1 -0
- package/lib/src/examples/shared.js +49 -0
- package/lib/src/examples/shared.js.map +1 -0
- package/lib/src/examples/simple.d.ts +5 -0
- package/lib/src/examples/simple.d.ts.map +1 -0
- package/lib/src/examples/simple.js +79 -0
- package/lib/src/examples/simple.js.map +1 -0
- package/lib/src/examples/snapshot.d.ts +4 -0
- package/lib/src/examples/snapshot.d.ts.map +1 -0
- package/lib/src/examples/snapshot.js +58 -0
- package/lib/src/examples/snapshot.js.map +1 -0
- package/lib/src/examples/validation.d.ts +5 -0
- package/lib/src/examples/validation.d.ts.map +1 -0
- package/lib/src/examples/validation.js +105 -0
- package/lib/src/examples/validation.js.map +1 -0
- package/lib/src/index.d.ts +27 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/src/index.js +19 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/misc/base.d.ts +51 -0
- package/lib/src/misc/base.d.ts.map +1 -0
- package/lib/src/misc/base.js +1122 -0
- package/lib/src/misc/base.js.map +1 -0
- package/lib/src/misc/utils/json.d.ts +22 -0
- package/lib/src/misc/utils/json.d.ts.map +1 -0
- package/lib/src/misc/utils/json.js +239 -0
- package/lib/src/misc/utils/json.js.map +1 -0
- package/lib/src/misc/utils/merge.d.ts +51 -0
- package/lib/src/misc/utils/merge.d.ts.map +1 -0
- package/lib/src/misc/utils/merge.js +600 -0
- package/lib/src/misc/utils/merge.js.map +1 -0
- package/lib/src/plugins/composite.d.ts +22 -0
- package/lib/src/plugins/composite.d.ts.map +1 -0
- package/lib/src/plugins/composite.js +59 -0
- package/lib/src/plugins/composite.js.map +1 -0
- package/lib/src/plugins/compute.d.ts +5 -0
- package/lib/src/plugins/compute.d.ts.map +1 -0
- package/lib/src/plugins/compute.js +39 -0
- package/lib/src/plugins/compute.js.map +1 -0
- package/lib/src/runtime/Engine.d.ts +28 -0
- package/lib/src/runtime/Engine.d.ts.map +1 -0
- package/lib/src/runtime/Engine.js +2 -0
- package/lib/src/runtime/Engine.js.map +1 -0
- package/lib/src/runtime/GraphLifecycleApi.d.ts +46 -0
- package/lib/src/runtime/GraphLifecycleApi.d.ts.map +1 -0
- package/lib/src/runtime/GraphLifecycleApi.js +2 -0
- package/lib/src/runtime/GraphLifecycleApi.js.map +1 -0
- package/lib/src/runtime/GraphRuntime.d.ts +94 -0
- package/lib/src/runtime/GraphRuntime.d.ts.map +1 -0
- package/lib/src/runtime/GraphRuntime.js +729 -0
- package/lib/src/runtime/GraphRuntime.js.map +1 -0
- package/lib/src/runtime/LocalEngine.d.ts +45 -0
- package/lib/src/runtime/LocalEngine.d.ts.map +1 -0
- package/lib/src/runtime/LocalEngine.js +89 -0
- package/lib/src/runtime/LocalEngine.js.map +1 -0
- package/lib/src/runtime/components/EdgePropagator.d.ts +101 -0
- package/lib/src/runtime/components/EdgePropagator.d.ts.map +1 -0
- package/lib/src/runtime/components/EdgePropagator.js +372 -0
- package/lib/src/runtime/components/EdgePropagator.js.map +1 -0
- package/lib/src/runtime/components/EventEmitter.d.ts +12 -0
- package/lib/src/runtime/components/EventEmitter.d.ts.map +1 -0
- package/lib/src/runtime/components/EventEmitter.js +33 -0
- package/lib/src/runtime/components/EventEmitter.js.map +1 -0
- package/lib/src/runtime/components/Graph.d.ts +211 -0
- package/lib/src/runtime/components/Graph.d.ts.map +1 -0
- package/lib/src/runtime/components/Graph.js +468 -0
- package/lib/src/runtime/components/Graph.js.map +1 -0
- package/lib/src/runtime/components/HandleResolver.d.ts +36 -0
- package/lib/src/runtime/components/HandleResolver.d.ts.map +1 -0
- package/lib/src/runtime/components/HandleResolver.js +231 -0
- package/lib/src/runtime/components/HandleResolver.js.map +1 -0
- package/lib/src/runtime/components/NodeExecutor.d.ts +110 -0
- package/lib/src/runtime/components/NodeExecutor.d.ts.map +1 -0
- package/lib/src/runtime/components/NodeExecutor.js +659 -0
- package/lib/src/runtime/components/NodeExecutor.js.map +1 -0
- package/lib/src/runtime/components/RunContextManager.d.ts +86 -0
- package/lib/src/runtime/components/RunContextManager.d.ts.map +1 -0
- package/lib/src/runtime/components/RunContextManager.js +302 -0
- package/lib/src/runtime/components/RunContextManager.js.map +1 -0
- package/lib/src/runtime/components/RuntimeValidatorManager.d.ts +31 -0
- package/lib/src/runtime/components/RuntimeValidatorManager.d.ts.map +1 -0
- package/lib/src/runtime/components/RuntimeValidatorManager.js +55 -0
- package/lib/src/runtime/components/RuntimeValidatorManager.js.map +1 -0
- package/lib/src/runtime/components/graph-utils.d.ts +33 -0
- package/lib/src/runtime/components/graph-utils.d.ts.map +1 -0
- package/lib/src/runtime/components/graph-utils.js +292 -0
- package/lib/src/runtime/components/graph-utils.js.map +1 -0
- package/lib/src/runtime/components/interfaces.d.ts +54 -0
- package/lib/src/runtime/components/interfaces.d.ts.map +1 -0
- package/lib/src/runtime/components/interfaces.js +2 -0
- package/lib/src/runtime/components/interfaces.js.map +1 -0
- package/lib/src/runtime/components/types.d.ts +55 -0
- package/lib/src/runtime/components/types.d.ts.map +1 -0
- package/lib/src/runtime/components/types.js +2 -0
- package/lib/src/runtime/components/types.js.map +1 -0
- package/lib/src/runtime/utils.d.ts +67 -0
- package/lib/src/runtime/utils.d.ts.map +1 -0
- package/lib/src/runtime/utils.js +137 -0
- package/lib/src/runtime/utils.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export function typed(typeId, value) {
|
|
2
|
+
return { __spark_type: typeId, __spark_value: value };
|
|
3
|
+
}
|
|
4
|
+
export function isTyped(v) {
|
|
5
|
+
return (!!v &&
|
|
6
|
+
typeof v === "object" &&
|
|
7
|
+
Object.prototype.hasOwnProperty.call(v, "__spark_type"));
|
|
8
|
+
}
|
|
9
|
+
export function unwrapTypeId(v) {
|
|
10
|
+
if (isTyped(v))
|
|
11
|
+
return String(v.__spark_type);
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
export function unwrapValue(v) {
|
|
15
|
+
if (isTyped(v))
|
|
16
|
+
return v.__spark_value;
|
|
17
|
+
return v;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the full declared type(s) for an input handle (supports union types)
|
|
21
|
+
* Returns the typeId as-is: string for single type, string[] for union types
|
|
22
|
+
*/
|
|
23
|
+
export function getInputDeclaredTypes(inputs, handle) {
|
|
24
|
+
const v = inputs ? inputs[handle] : undefined;
|
|
25
|
+
if (!v)
|
|
26
|
+
return undefined;
|
|
27
|
+
if (typeof v === "string")
|
|
28
|
+
return v;
|
|
29
|
+
if (Array.isArray(v))
|
|
30
|
+
return v;
|
|
31
|
+
return v.typeId;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the primary (first) type ID for an input handle.
|
|
35
|
+
* For union types, returns the first type in the array.
|
|
36
|
+
* This maintains backward compatibility for code that expects a single type.
|
|
37
|
+
*/
|
|
38
|
+
export function getInputTypeId(inputs, handle) {
|
|
39
|
+
const decl = getInputDeclaredTypes(inputs, handle);
|
|
40
|
+
if (!decl)
|
|
41
|
+
return undefined;
|
|
42
|
+
return Array.isArray(decl) ? decl[0] : decl;
|
|
43
|
+
}
|
|
44
|
+
export function isInputPrivate(inputs, handle) {
|
|
45
|
+
const v = inputs ? inputs[handle] : undefined;
|
|
46
|
+
if (!v || typeof v === "string" || Array.isArray(v))
|
|
47
|
+
return false;
|
|
48
|
+
// At this point, v must be an object with optional private/metadata fields
|
|
49
|
+
return !!(typeof v === "object" && v !== null && "private" in v && v.private);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Merge two InputHandleDescriptor values, with dynamic taking precedence.
|
|
53
|
+
* If both have metadata, merge the metadata objects (dynamic overrides static).
|
|
54
|
+
* Supports union types (arrays) in both static and dynamic descriptors.
|
|
55
|
+
*/
|
|
56
|
+
export function mergeInputHandleDescriptors(staticDesc, dynamicDesc) {
|
|
57
|
+
// If only one exists, return it
|
|
58
|
+
if (!staticDesc)
|
|
59
|
+
return dynamicDesc;
|
|
60
|
+
if (!dynamicDesc)
|
|
61
|
+
return staticDesc;
|
|
62
|
+
// If both are primitive (string or array), dynamic wins
|
|
63
|
+
if ((typeof staticDesc === "string" || Array.isArray(staticDesc)) &&
|
|
64
|
+
(typeof dynamicDesc === "string" || Array.isArray(dynamicDesc))) {
|
|
65
|
+
return dynamicDesc;
|
|
66
|
+
}
|
|
67
|
+
const staticObj = typeof staticDesc === "string" || Array.isArray(staticDesc)
|
|
68
|
+
? { typeId: staticDesc }
|
|
69
|
+
: staticDesc;
|
|
70
|
+
const dynamicObj = typeof dynamicDesc === "string" || Array.isArray(dynamicDesc)
|
|
71
|
+
? { typeId: dynamicDesc }
|
|
72
|
+
: dynamicDesc;
|
|
73
|
+
// Merge: dynamic takes precedence, but merge metadata objects
|
|
74
|
+
const merged = {
|
|
75
|
+
typeId: dynamicObj.typeId ?? staticObj.typeId,
|
|
76
|
+
private: dynamicObj.private ?? staticObj.private,
|
|
77
|
+
};
|
|
78
|
+
// Merge metadata if either has it
|
|
79
|
+
if (staticObj.metadata || dynamicObj.metadata) {
|
|
80
|
+
merged.metadata = {
|
|
81
|
+
...staticObj.metadata,
|
|
82
|
+
...dynamicObj.metadata, // Dynamic metadata overrides static
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// Return as InputHandleDescriptor (which accepts object form)
|
|
86
|
+
return merged;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Extract metadata from an InputHandleDescriptor
|
|
90
|
+
*/
|
|
91
|
+
export function getInputHandleMetadata(inputs, handle) {
|
|
92
|
+
const v = inputs ? inputs[handle] : undefined;
|
|
93
|
+
if (!v || typeof v === "string" || Array.isArray(v))
|
|
94
|
+
return undefined;
|
|
95
|
+
return v.metadata;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=type-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../src/core/type-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { DataTypeId, NodeTypeId, HandleId, InputHandleDescriptor, NodeCategoryId, ResolvedHandles, ExecutionPolicy, LogLevel } from "@bian-womp/spark-protocol";
|
|
2
|
+
export interface DataTypeDescriptor<T = unknown> {
|
|
3
|
+
id: DataTypeId;
|
|
4
|
+
displayName?: string;
|
|
5
|
+
validate(value: T): boolean;
|
|
6
|
+
helpers?: Record<string, unknown>;
|
|
7
|
+
bakeTarget?: {
|
|
8
|
+
nodeTypeId: NodeTypeId;
|
|
9
|
+
inputHandle: HandleId;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export type InvalidateReason = "input-changed" | "dependency-changed" | "manual" | "disposed";
|
|
13
|
+
export interface NodeContext<State> {
|
|
14
|
+
state: State;
|
|
15
|
+
setState(next: Partial<State>): void;
|
|
16
|
+
}
|
|
17
|
+
export interface ExecutionContext<State> extends NodeContext<State> {
|
|
18
|
+
nodeId: string;
|
|
19
|
+
environment: Record<string, unknown>;
|
|
20
|
+
runId: string;
|
|
21
|
+
abortSignal: AbortSignal;
|
|
22
|
+
emit: (handle: HandleId, value: unknown) => void;
|
|
23
|
+
invalidateDownstream: () => void;
|
|
24
|
+
execute: (opts?: {
|
|
25
|
+
skipPropagateValues?: boolean;
|
|
26
|
+
propagate?: boolean;
|
|
27
|
+
resolve?: () => void;
|
|
28
|
+
}) => void;
|
|
29
|
+
getInput: (handle: HandleId) => unknown;
|
|
30
|
+
reportProgress?: (value: number) => void;
|
|
31
|
+
setCustomData?: (data: Record<string, unknown>) => void;
|
|
32
|
+
log: (level: LogLevel, message: string, context?: Record<string, unknown>) => void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract State type from ExecutionContext<State>
|
|
36
|
+
*/
|
|
37
|
+
export type ExtractStateFromContext<T> = T extends ExecutionContext<infer S> ? S : never;
|
|
38
|
+
/**
|
|
39
|
+
* Extract State type from impl function signature
|
|
40
|
+
*/
|
|
41
|
+
export type ExtractStateFromImpl<Impl> = Impl extends (inputs: any, ctx: ExecutionContext<infer State>) => any ? State : never;
|
|
42
|
+
/**
|
|
43
|
+
* Extract Inputs type from impl function signature
|
|
44
|
+
*/
|
|
45
|
+
export type ExtractInputsFromImpl<Impl> = Impl extends (inputs: infer I, ctx: any) => any ? I : never;
|
|
46
|
+
export interface RuntimeNodeStats {
|
|
47
|
+
runs: number;
|
|
48
|
+
active: number;
|
|
49
|
+
queued: number;
|
|
50
|
+
lastStartAt?: number;
|
|
51
|
+
lastEndAt?: number;
|
|
52
|
+
lastDurationMs?: number;
|
|
53
|
+
progress: number;
|
|
54
|
+
lastError?: unknown;
|
|
55
|
+
}
|
|
56
|
+
export interface RuntimeEdgeStats {
|
|
57
|
+
runs: number;
|
|
58
|
+
inFlight: boolean;
|
|
59
|
+
lastStartAt?: number;
|
|
60
|
+
lastEndAt?: number;
|
|
61
|
+
lastDurationMs?: number;
|
|
62
|
+
progress: number;
|
|
63
|
+
lastError?: unknown;
|
|
64
|
+
}
|
|
65
|
+
export type TypedValue<T = unknown> = {
|
|
66
|
+
__spark_type: DataTypeId;
|
|
67
|
+
__spark_value: T;
|
|
68
|
+
};
|
|
69
|
+
type InferState<Impl, State> = ExtractStateFromImpl<Impl> extends never ? State : ExtractStateFromImpl<Impl>;
|
|
70
|
+
export interface NodeTypeDescriptor<I extends Record<string, InputHandleDescriptor> = Record<string, InputHandleDescriptor>, O extends Record<string, DataTypeId | DataTypeId[]> = Record<string, DataTypeId | DataTypeId[]>, State = unknown, Impl extends (inputs: any, ctx: ExecutionContext<any>) => any = (inputs: Record<string, unknown>, ctx: ExecutionContext<State>) => void | Record<string, unknown> | Promise<void | Record<string, unknown>>> {
|
|
71
|
+
id: NodeTypeId;
|
|
72
|
+
categoryId: NodeCategoryId;
|
|
73
|
+
displayName?: string;
|
|
74
|
+
inputs: I;
|
|
75
|
+
outputs: O;
|
|
76
|
+
impl: Impl;
|
|
77
|
+
policy?: Partial<ExecutionPolicy>;
|
|
78
|
+
logLevel?: LogLevel;
|
|
79
|
+
resolveHandles?: (ctx: {
|
|
80
|
+
nodeId: string;
|
|
81
|
+
environment: Record<string, unknown>;
|
|
82
|
+
params?: Record<string, unknown>;
|
|
83
|
+
inputs?: Record<string, unknown>;
|
|
84
|
+
}) => Partial<ResolvedHandles> | Promise<Partial<ResolvedHandles>>;
|
|
85
|
+
inputDefaults?: Record<string, unknown>;
|
|
86
|
+
lifecycle?: {
|
|
87
|
+
prepare?: (params: Record<string, unknown>, ctx: ExecutionContext<InferState<Impl, State>>) => void | Promise<void>;
|
|
88
|
+
dispose?: (ctx: NodeContext<InferState<Impl, State>>) => void;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GraphDefinition } from "@bian-womp/spark-protocol";
|
|
2
|
+
export declare function createArrayComposeDecomposeDef(): GraphDefinition;
|
|
3
|
+
export declare function createArrayComposeDecomposeRegistry(): import("..").Registry;
|
|
4
|
+
export declare function main(): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=arrays.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../src/examples/arrays.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKjE,wBAAgB,8BAA8B,IAAI,eAAe,CAchE;AAED,wBAAgB,mCAAmC,0BAElD;AAED,wBAAsB,IAAI,kBAsDzB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { setupBasicGraphRegistry, createRuntime } from "../misc/base";
|
|
2
|
+
import { LocalEngine } from "../runtime/LocalEngine";
|
|
3
|
+
import { installLogging } from "./shared";
|
|
4
|
+
export function createArrayComposeDecomposeDef() {
|
|
5
|
+
return {
|
|
6
|
+
nodes: [
|
|
7
|
+
{ nodeId: "compose", typeId: "base.array.compose" },
|
|
8
|
+
{ nodeId: "decompose", typeId: "base.array.decompose" },
|
|
9
|
+
],
|
|
10
|
+
edges: [
|
|
11
|
+
{
|
|
12
|
+
id: "e_compose_items_to_decompose_items",
|
|
13
|
+
source: { nodeId: "compose", handle: "Items" },
|
|
14
|
+
target: { nodeId: "decompose", handle: "Items" },
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function createArrayComposeDecomposeRegistry() {
|
|
20
|
+
return setupBasicGraphRegistry();
|
|
21
|
+
}
|
|
22
|
+
export async function main() {
|
|
23
|
+
console.log("Array compose/decompose example: dynamic handle resolution");
|
|
24
|
+
console.log("- compose(base.array.compose) -> decompose(base.array.decompose)");
|
|
25
|
+
console.log("- Setting compose.Length will dynamically add inputs compose.Item0..ItemN and drive decompose.Item0..ItemN outputs via Items array");
|
|
26
|
+
const runtime = createRuntime(createArrayComposeDecomposeRegistry(), createArrayComposeDecomposeDef());
|
|
27
|
+
const engine = new LocalEngine(runtime, "auto");
|
|
28
|
+
installLogging(engine);
|
|
29
|
+
engine.launch();
|
|
30
|
+
// Compose 3 items and observe decompose dynamic outputs
|
|
31
|
+
engine.setInputs("compose", {
|
|
32
|
+
Length: 3,
|
|
33
|
+
Item0: "alpha",
|
|
34
|
+
Item1: "beta",
|
|
35
|
+
Item2: "gamma",
|
|
36
|
+
});
|
|
37
|
+
await engine.whenIdle();
|
|
38
|
+
console.log("d.Item0..2 =>", engine.getOutput("decompose", "Item0"), engine.getOutput("decompose", "Item1"), engine.getOutput("decompose", "Item2"));
|
|
39
|
+
// Grow to 5 items; dynamic inputs/outputs should expand automatically
|
|
40
|
+
engine.setInputs("compose", { Length: 5, Item3: "delta", Item4: "epsilon" });
|
|
41
|
+
await engine.whenIdle();
|
|
42
|
+
console.log("d.Item0..4 =>", engine.getOutput("decompose", "Item0"), engine.getOutput("decompose", "Item1"), engine.getOutput("decompose", "Item2"), engine.getOutput("decompose", "Item3"), engine.getOutput("decompose", "Item4"));
|
|
43
|
+
// Shrink to 2 items; dynamic outputs should shrink
|
|
44
|
+
engine.setInputs("compose", { Length: 2 });
|
|
45
|
+
await engine.whenIdle();
|
|
46
|
+
console.log("d.Item0..1 =>", engine.getOutput("decompose", "Item0"), engine.getOutput("decompose", "Item1"));
|
|
47
|
+
engine.dispose();
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=arrays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../src/examples/arrays.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,KAAK,EAAE;YACL,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE;YACnD,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,sBAAsB,EAAE;SACxD;QACD,KAAK,EAAE;YACL;gBACE,EAAE,EAAE,oCAAoC;gBACxC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;gBAC9C,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;aACjD;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO,uBAAuB,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CACT,kEAAkE,CACnE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,oIAAoI,CACrI,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAC3B,mCAAmC,EAAE,EACrC,8BAA8B,EAAE,CACjC,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,wDAAwD;IACxD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE;QAC1B,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,CACT,eAAe,EACf,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CACvC,CAAC;IAEF,sEAAsE;IACtE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,CACT,eAAe,EACf,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CACvC,CAAC;IAEF,mDAAmD;IACnD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,CACT,eAAe,EACf,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CACvC,CAAC;IAEF,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GraphDefinition } from "@bian-womp/spark-protocol";
|
|
2
|
+
export declare function createAsyncGraphDef(): GraphDefinition;
|
|
3
|
+
export declare function createAsyncGraphRegistry(id?: string): import("..").Registry;
|
|
4
|
+
export declare function main(): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=async.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/examples/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAUjE,wBAAgB,mBAAmB,oBAoDlC;AAED,wBAAgB,wBAAwB,CAAC,EAAE,CAAC,EAAE,MAAM,yBAInD;AAED,wBAAsB,IAAI,kBAmCzB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { setupBasicGraphRegistry, registerDelayNode, createRuntime, BaseMathOperation, } from "../misc/base";
|
|
2
|
+
import { LocalEngine } from "../runtime/LocalEngine";
|
|
3
|
+
import { installLogging } from "./shared";
|
|
4
|
+
export function createAsyncGraphDef() {
|
|
5
|
+
const def = {
|
|
6
|
+
nodes: [
|
|
7
|
+
{
|
|
8
|
+
nodeId: "n1",
|
|
9
|
+
typeId: "base.math",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
nodeId: "n2",
|
|
13
|
+
typeId: "async.delay",
|
|
14
|
+
params: { policy: { asyncConcurrency: "queue", maxQueue: 4 } },
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
nodeId: "n3",
|
|
18
|
+
typeId: "base.separateXYZ",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
nodeId: "n4",
|
|
22
|
+
typeId: "base.compareXYZ",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
edges: [
|
|
26
|
+
{
|
|
27
|
+
id: "e1",
|
|
28
|
+
source: { nodeId: "n1", handle: "Result" },
|
|
29
|
+
target: { nodeId: "n2", handle: "Value" },
|
|
30
|
+
},
|
|
31
|
+
// Demonstrate async edge conversion: vec3[] -> float[] using coercion
|
|
32
|
+
{
|
|
33
|
+
id: "e2",
|
|
34
|
+
source: { nodeId: "n4", handle: "XYZ" },
|
|
35
|
+
target: { nodeId: "n1", handle: "A" },
|
|
36
|
+
typeId: "base.vec3[]",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "e3",
|
|
40
|
+
source: { nodeId: "n3", handle: "X" },
|
|
41
|
+
target: { nodeId: "n4", handle: "X" },
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "e4",
|
|
45
|
+
source: { nodeId: "n3", handle: "Y" },
|
|
46
|
+
target: { nodeId: "n4", handle: "Y" },
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "e5",
|
|
50
|
+
source: { nodeId: "n3", handle: "Z" },
|
|
51
|
+
target: { nodeId: "n4", handle: "Z" },
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
return def;
|
|
56
|
+
}
|
|
57
|
+
export function createAsyncGraphRegistry(id) {
|
|
58
|
+
const registry = setupBasicGraphRegistry(id);
|
|
59
|
+
registerDelayNode(registry);
|
|
60
|
+
return registry;
|
|
61
|
+
}
|
|
62
|
+
export async function main() {
|
|
63
|
+
const runtime = createRuntime(createAsyncGraphRegistry(), createAsyncGraphDef());
|
|
64
|
+
const engine = new LocalEngine(runtime, "auto");
|
|
65
|
+
installLogging(engine);
|
|
66
|
+
engine.launch();
|
|
67
|
+
// Set base ms
|
|
68
|
+
engine.setInputs("n1", { Operation: BaseMathOperation.Add, A: [1], B: [2] });
|
|
69
|
+
engine.setInputs("n2", { DelayMs: 250 });
|
|
70
|
+
// Provide XYZ and route through async conversion edge
|
|
71
|
+
engine.setInputs("n3", {
|
|
72
|
+
XYZ: [
|
|
73
|
+
[1, 2, 3],
|
|
74
|
+
[4, 5, 6],
|
|
75
|
+
[7, 8, 9],
|
|
76
|
+
],
|
|
77
|
+
});
|
|
78
|
+
// Rapid inputs to n1.B should cancel prior runs (switch)
|
|
79
|
+
// Note: n1.A is edge-driven from n4.XYZ, so we change n1.B instead
|
|
80
|
+
engine.setInputs("n1", { B: [3] });
|
|
81
|
+
engine.setInputs("n1", { B: [4] });
|
|
82
|
+
engine.setInputs("n1", { B: [5] });
|
|
83
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
84
|
+
engine.setInputs("n1", { B: [10] });
|
|
85
|
+
engine.setInputs("n1", { B: [11] });
|
|
86
|
+
engine.setInputs("n1", { B: [12] });
|
|
87
|
+
await new Promise((r) => setTimeout(r, 1500));
|
|
88
|
+
await engine.whenIdle();
|
|
89
|
+
engine.dispose();
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/examples/async.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GraphDefinition } from "@bian-womp/spark-protocol";
|
|
2
|
+
export declare function createProgressGraphDef(): GraphDefinition;
|
|
3
|
+
export declare function createProgressGraphRegistry(id?: string): import("..").Registry;
|
|
4
|
+
export declare function main(): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/examples/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AASjE,wBAAgB,sBAAsB,oBAsBrC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,CAAC,EAAE,MAAM,yBAItD;AAED,wBAAsB,IAAI,kBAyBzB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { registerProgressNodes, setupBasicGraphRegistry, createRuntime, } from "../misc/base";
|
|
2
|
+
import { LocalEngine } from "../runtime/LocalEngine";
|
|
3
|
+
import { installLogging } from "./shared";
|
|
4
|
+
export function createProgressGraphDef() {
|
|
5
|
+
const def = {
|
|
6
|
+
nodes: [
|
|
7
|
+
{ nodeId: "steps", typeId: "base.input.number" },
|
|
8
|
+
{ nodeId: "delay", typeId: "base.input.number" },
|
|
9
|
+
{ nodeId: "work", typeId: "async.progress" },
|
|
10
|
+
],
|
|
11
|
+
edges: [
|
|
12
|
+
{
|
|
13
|
+
id: "e1",
|
|
14
|
+
source: { nodeId: "steps", handle: "Result" },
|
|
15
|
+
target: { nodeId: "work", handle: "Steps" },
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "e2",
|
|
19
|
+
source: { nodeId: "delay", handle: "Result" },
|
|
20
|
+
target: { nodeId: "work", handle: "DelayMs" },
|
|
21
|
+
},
|
|
22
|
+
// not wiring ShouldError to show manual input driven error later
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
return def;
|
|
26
|
+
}
|
|
27
|
+
export function createProgressGraphRegistry(id) {
|
|
28
|
+
const registry = setupBasicGraphRegistry(id);
|
|
29
|
+
registerProgressNodes(registry);
|
|
30
|
+
return registry;
|
|
31
|
+
}
|
|
32
|
+
export async function main() {
|
|
33
|
+
const runtime = createRuntime(createProgressGraphRegistry(), createProgressGraphDef());
|
|
34
|
+
const engine = new LocalEngine(runtime, "auto");
|
|
35
|
+
installLogging(engine);
|
|
36
|
+
engine.launch();
|
|
37
|
+
// Seed initial values
|
|
38
|
+
engine.setInputs("steps", { Value: 12 });
|
|
39
|
+
engine.setInputs("delay", { Value: 80 });
|
|
40
|
+
// Manually set ShouldError on the worker (unwired input)
|
|
41
|
+
engine.setInputs("work", { ShouldError: false });
|
|
42
|
+
// After 2s, trigger an error run
|
|
43
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
44
|
+
console.log("-- triggering error run --");
|
|
45
|
+
engine.setInputs("work", { ShouldError: true });
|
|
46
|
+
// After 5s, stop and exit
|
|
47
|
+
await new Promise((r) => setTimeout(r, 5000));
|
|
48
|
+
await engine.whenIdle();
|
|
49
|
+
engine.dispose();
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/examples/progress.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAoB;QAC3B,KAAK,EAAE;YACL,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAChD,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAChD,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE;SAC7C;QACD,KAAK,EAAE;YACL;gBACE,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;aAC5C;YACD;gBACE,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;aAC9C;YACD,iEAAiE;SAClE;KACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAAW;IACrD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC7C,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,OAAO,GAAG,aAAa,CAC3B,2BAA2B,EAAE,EAC7B,sBAAsB,EAAE,CACzB,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,sBAAsB;IACtB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,yDAAyD;IACzD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAEjD,iCAAiC;IACjC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,0BAA0B;IAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxB,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/examples/run.ts"],"names":[],"mappings":"AAAA,wBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,iBA0BxC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export async function run(example) {
|
|
2
|
+
switch (example) {
|
|
3
|
+
case "simple":
|
|
4
|
+
await import("./simple").then((m) => m.main());
|
|
5
|
+
break;
|
|
6
|
+
case "runMode":
|
|
7
|
+
await import("./runMode").then((m) => m.main());
|
|
8
|
+
break;
|
|
9
|
+
case "async":
|
|
10
|
+
await import("./async").then((m) => m.main());
|
|
11
|
+
break;
|
|
12
|
+
case "progress":
|
|
13
|
+
await import("./progress").then((m) => m.main());
|
|
14
|
+
break;
|
|
15
|
+
case "validation":
|
|
16
|
+
await import("./validation").then((m) => m.main());
|
|
17
|
+
break;
|
|
18
|
+
case "snapshot":
|
|
19
|
+
await import("./snapshot").then((m) => m.main());
|
|
20
|
+
break;
|
|
21
|
+
case "arrays":
|
|
22
|
+
await import("./arrays").then((m) => m.main());
|
|
23
|
+
break;
|
|
24
|
+
default:
|
|
25
|
+
throw new Error(`Unknown example: ${example}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const exampleArg = (process.argv && process.argv[2]) || "simple";
|
|
29
|
+
console.log(`Running example: ${exampleArg}`);
|
|
30
|
+
// top-level await is supported by tsx
|
|
31
|
+
run(exampleArg);
|
|
32
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/examples/run.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAe;IACvC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,OAAO;YACV,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,UAAU;YACb,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,YAAY;YACf,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,UAAU;YACb,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AACjE,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;AAE9C,sCAAsC;AACtC,GAAG,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runMode.d.ts","sourceRoot":"","sources":["../../../src/examples/runMode.ts"],"names":[],"mappings":"AA4QA,wBAAsB,IAAI,kBAuBzB"}
|