@workglow/task-graph 0.2.35 → 0.2.37
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/dist/browser.js +189 -174
- package/dist/browser.js.map +30 -30
- package/dist/bun.js +189 -174
- package/dist/bun.js.map +30 -30
- package/dist/node.js +189 -174
- package/dist/node.js.map +30 -30
- package/dist/storage/PortCodecRegistry.d.ts +1 -1
- package/dist/storage/PortCodecRegistry.d.ts.map +1 -1
- package/dist/storage/TaskGraphTabularRepository.d.ts.map +1 -1
- package/dist/task/CacheCoordinator.d.ts +1 -1
- package/dist/task/CacheCoordinator.d.ts.map +1 -1
- package/dist/task/ConditionalTask.d.ts +14 -14
- package/dist/task/ConditionalTask.d.ts.map +1 -1
- package/dist/task/EntitlementProfile.d.ts.map +1 -1
- package/dist/task/EntitlementProfiles.d.ts +1 -1
- package/dist/task/EntitlementProfiles.d.ts.map +1 -1
- package/dist/task/FallbackTask.d.ts +8 -8
- package/dist/task/FallbackTask.d.ts.map +1 -1
- package/dist/task/FallbackTaskRunner.d.ts.map +1 -1
- package/dist/task/GraphAsTask.d.ts +4 -4
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/ITask.d.ts +7 -1
- package/dist/task/ITask.d.ts.map +1 -1
- package/dist/task/InputCompactor.d.ts +1 -1
- package/dist/task/InputCompactor.d.ts.map +1 -1
- package/dist/task/InputResolver.d.ts +1 -1
- package/dist/task/InputResolver.d.ts.map +1 -1
- package/dist/task/IteratorTask.d.ts +4 -4
- package/dist/task/JobQueueFactory.d.ts +1 -1
- package/dist/task/JobQueueFactory.d.ts.map +1 -1
- package/dist/task/MapTask.d.ts +4 -4
- package/dist/task/ReduceTask.d.ts +4 -4
- package/dist/task/StreamProcessor.d.ts +1 -1
- package/dist/task/StreamProcessor.d.ts.map +1 -1
- package/dist/task/TaskError.d.ts +2 -0
- package/dist/task/TaskError.d.ts.map +1 -1
- package/dist/task/TaskEvents.d.ts +2 -2
- package/dist/task/TaskEvents.d.ts.map +1 -1
- package/dist/task/TaskQueueRegistry.d.ts +1 -1
- package/dist/task/TaskQueueRegistry.d.ts.map +1 -1
- package/dist/task/TaskRunner.d.ts.map +1 -1
- package/dist/task/TaskTypes.d.ts +1 -1
- package/dist/task/TaskTypes.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +4 -4
- package/dist/task/iterationSchema.d.ts +1 -1
- package/dist/task/iterationSchema.d.ts.map +1 -1
- package/dist/task-graph/Dataflow.d.ts +1 -1
- package/dist/task-graph/Dataflow.d.ts.map +1 -1
- package/dist/task-graph/IWorkflow.d.ts +1 -1
- package/dist/task-graph/IWorkflow.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +3 -1
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/dist/task-graph/transforms/index.d.ts +6 -6
- package/dist/task-graph/transforms/index.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/bun.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// src/task-graph/Dataflow.ts
|
|
3
|
-
import { areSemanticallyCompatible } from "@workglow/util/schema";
|
|
4
3
|
import { EventEmitter } from "@workglow/util";
|
|
4
|
+
import { areSemanticallyCompatible } from "@workglow/util/schema";
|
|
5
5
|
|
|
6
6
|
// src/task/TaskError.ts
|
|
7
7
|
import { BaseError } from "@workglow/util";
|
|
@@ -61,9 +61,13 @@ class TaskFailedError extends TaskError {
|
|
|
61
61
|
class JobTaskFailedError extends TaskFailedError {
|
|
62
62
|
static type = "JobTaskFailedError";
|
|
63
63
|
jobError;
|
|
64
|
+
code;
|
|
64
65
|
constructor(err) {
|
|
65
66
|
super(String(err));
|
|
66
67
|
this.jobError = err;
|
|
68
|
+
if (err.code) {
|
|
69
|
+
this.code = err.code;
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
|
|
@@ -2091,7 +2095,7 @@ class TaskRunner {
|
|
|
2091
2095
|
throw new TaskConfigurationError(`Task "${this.task.type}" is already running. Concurrent run() calls on the same TaskRunner are not supported.`);
|
|
2092
2096
|
}
|
|
2093
2097
|
const ownsScope = config.resourceScope === undefined;
|
|
2094
|
-
const effectiveConfig = ownsScope ? { ...config, resourceScope: new ResourceScope } : config;
|
|
2098
|
+
const effectiveConfig = ownsScope ? { ...config, resourceScope: new ResourceScope({ strategy: config.disposeStrategy }) } : config;
|
|
2095
2099
|
this.ownsResourceScope = ownsScope;
|
|
2096
2100
|
try {
|
|
2097
2101
|
await this.handleStart(effectiveConfig);
|
|
@@ -2140,7 +2144,7 @@ class TaskRunner {
|
|
|
2140
2144
|
}
|
|
2141
2145
|
} finally {
|
|
2142
2146
|
if (ownsScope) {
|
|
2143
|
-
await effectiveConfig.resourceScope.
|
|
2147
|
+
await effectiveConfig.resourceScope.runComplete();
|
|
2144
2148
|
this.resourceScope = undefined;
|
|
2145
2149
|
}
|
|
2146
2150
|
this.ownsResourceScope = false;
|
|
@@ -2308,7 +2312,8 @@ class TaskRunner {
|
|
|
2308
2312
|
const resolved = await resolveSchemaInputs({ ...source }, configSchema, { registry: this.registry });
|
|
2309
2313
|
Object.assign(this.task.config, resolved);
|
|
2310
2314
|
}
|
|
2311
|
-
const
|
|
2315
|
+
const ctor = this.task.constructor;
|
|
2316
|
+
const schema = ctor.hasDynamicSchemas ? this.task.inputSchema() : ctor.inputSchema();
|
|
2312
2317
|
this.task.runInputData = await resolveSchemaInputs(this.task.runInputData, schema, { registry: this.registry });
|
|
2313
2318
|
}
|
|
2314
2319
|
async handleStart(config = {}) {
|
|
@@ -2340,6 +2345,9 @@ class TaskRunner {
|
|
|
2340
2345
|
if (config.resourceScope) {
|
|
2341
2346
|
this.resourceScope = config.resourceScope;
|
|
2342
2347
|
}
|
|
2348
|
+
if (this.resourceScope) {
|
|
2349
|
+
await this.resourceScope.runStart();
|
|
2350
|
+
}
|
|
2343
2351
|
if (ctx.abortController.signal.aborted)
|
|
2344
2352
|
return;
|
|
2345
2353
|
const timeout = this.task.config.timeout;
|
|
@@ -3728,7 +3736,10 @@ class TaskGraphRunner {
|
|
|
3728
3736
|
}
|
|
3729
3737
|
async runGraph(input = {}, config) {
|
|
3730
3738
|
const ownsScope = config?.resourceScope === undefined;
|
|
3731
|
-
const effectiveConfig = ownsScope ? {
|
|
3739
|
+
const effectiveConfig = ownsScope ? {
|
|
3740
|
+
...config,
|
|
3741
|
+
resourceScope: new ResourceScope2({ strategy: config?.disposeStrategy })
|
|
3742
|
+
} : config;
|
|
3732
3743
|
try {
|
|
3733
3744
|
await this.handleStart(effectiveConfig);
|
|
3734
3745
|
const ctx = this.currentCtx;
|
|
@@ -3751,7 +3762,7 @@ class TaskGraphRunner {
|
|
|
3751
3762
|
return this.filterLeafResults(results);
|
|
3752
3763
|
} finally {
|
|
3753
3764
|
if (ownsScope) {
|
|
3754
|
-
await effectiveConfig.resourceScope.
|
|
3765
|
+
await effectiveConfig.resourceScope.runComplete();
|
|
3755
3766
|
this.resourceScope = undefined;
|
|
3756
3767
|
}
|
|
3757
3768
|
}
|
|
@@ -3970,6 +3981,9 @@ class TaskGraphRunner {
|
|
|
3970
3981
|
if (config?.timeout !== undefined) {
|
|
3971
3982
|
this.runScheduler.armGraphTimeout(config.timeout, ctx);
|
|
3972
3983
|
}
|
|
3984
|
+
if (this.resourceScope) {
|
|
3985
|
+
await this.resourceScope.runStart();
|
|
3986
|
+
}
|
|
3973
3987
|
if (ctx.abortController.signal.aborted)
|
|
3974
3988
|
return;
|
|
3975
3989
|
this.resetGraph(this.graph, ctx.runId);
|
|
@@ -4575,7 +4589,8 @@ class TaskGraph {
|
|
|
4575
4589
|
registry: config?.registry,
|
|
4576
4590
|
timeout: config?.timeout,
|
|
4577
4591
|
maxTasks: config?.maxTasks,
|
|
4578
|
-
resourceScope: config?.resourceScope
|
|
4592
|
+
resourceScope: config?.resourceScope,
|
|
4593
|
+
disposeStrategy: config?.disposeStrategy
|
|
4579
4594
|
});
|
|
4580
4595
|
}
|
|
4581
4596
|
runPreview(input = {}, config = {}) {
|
|
@@ -5551,19 +5566,6 @@ class WorkflowEventBridge {
|
|
|
5551
5566
|
}
|
|
5552
5567
|
}
|
|
5553
5568
|
|
|
5554
|
-
// src/task-graph/WorkflowRunContext.ts
|
|
5555
|
-
class WorkflowRunContext {
|
|
5556
|
-
abortController;
|
|
5557
|
-
unsubStreaming;
|
|
5558
|
-
constructor() {
|
|
5559
|
-
this.abortController = new AbortController;
|
|
5560
|
-
}
|
|
5561
|
-
dispose() {
|
|
5562
|
-
this.unsubStreaming?.();
|
|
5563
|
-
this.unsubStreaming = undefined;
|
|
5564
|
-
}
|
|
5565
|
-
}
|
|
5566
|
-
|
|
5567
5569
|
// src/task-graph/WorkflowFactories.ts
|
|
5568
5570
|
function CreateWorkflow(taskClass) {
|
|
5569
5571
|
return Workflow.createWorkflow(taskClass);
|
|
@@ -5594,6 +5596,19 @@ function CreateAdaptiveWorkflow(scalarClass, vectorClass) {
|
|
|
5594
5596
|
};
|
|
5595
5597
|
}
|
|
5596
5598
|
|
|
5599
|
+
// src/task-graph/WorkflowRunContext.ts
|
|
5600
|
+
class WorkflowRunContext {
|
|
5601
|
+
abortController;
|
|
5602
|
+
unsubStreaming;
|
|
5603
|
+
constructor() {
|
|
5604
|
+
this.abortController = new AbortController;
|
|
5605
|
+
}
|
|
5606
|
+
dispose() {
|
|
5607
|
+
this.unsubStreaming?.();
|
|
5608
|
+
this.unsubStreaming = undefined;
|
|
5609
|
+
}
|
|
5610
|
+
}
|
|
5611
|
+
|
|
5597
5612
|
// src/task-graph/WorkflowTask.ts
|
|
5598
5613
|
class WorkflowTask extends GraphAsTask {
|
|
5599
5614
|
static type = "Workflow";
|
|
@@ -6146,107 +6161,6 @@ ${baseIndent}}`;
|
|
|
6146
6161
|
function resetMethodNameCache() {
|
|
6147
6162
|
methodNameCache = undefined;
|
|
6148
6163
|
}
|
|
6149
|
-
// src/task-graph/transforms/pick.ts
|
|
6150
|
-
import { areSemanticallyCompatible as areSemanticallyCompatible2 } from "@workglow/util/schema";
|
|
6151
|
-
function walk(value, path) {
|
|
6152
|
-
if (value == null)
|
|
6153
|
-
return;
|
|
6154
|
-
const parts = path.split(".");
|
|
6155
|
-
let cur = value;
|
|
6156
|
-
for (const p of parts) {
|
|
6157
|
-
if (cur == null)
|
|
6158
|
-
return;
|
|
6159
|
-
cur = cur[p];
|
|
6160
|
-
}
|
|
6161
|
-
return cur;
|
|
6162
|
-
}
|
|
6163
|
-
function walkSchema(schema, path) {
|
|
6164
|
-
const parts = path.split(".");
|
|
6165
|
-
let cur = schema;
|
|
6166
|
-
for (const p of parts) {
|
|
6167
|
-
if (!cur || typeof cur !== "object")
|
|
6168
|
-
return {};
|
|
6169
|
-
if (cur.type !== "object" || !cur.properties || !cur.properties[p]) {
|
|
6170
|
-
return {};
|
|
6171
|
-
}
|
|
6172
|
-
cur = cur.properties[p];
|
|
6173
|
-
}
|
|
6174
|
-
return cur;
|
|
6175
|
-
}
|
|
6176
|
-
var pickTransform = {
|
|
6177
|
-
id: "pick",
|
|
6178
|
-
title: "Pick field",
|
|
6179
|
-
category: "Structural",
|
|
6180
|
-
paramsSchema: {
|
|
6181
|
-
type: "object",
|
|
6182
|
-
properties: {
|
|
6183
|
-
path: { type: "string", description: "Dotted property path" }
|
|
6184
|
-
},
|
|
6185
|
-
required: ["path"]
|
|
6186
|
-
},
|
|
6187
|
-
inferOutputSchema(inputSchema, params) {
|
|
6188
|
-
return walkSchema(inputSchema, params.path);
|
|
6189
|
-
},
|
|
6190
|
-
apply(value, params) {
|
|
6191
|
-
return walk(value, params.path);
|
|
6192
|
-
},
|
|
6193
|
-
suggestFromSchemas(source, target) {
|
|
6194
|
-
if (source.type !== "object" || !source.properties) {
|
|
6195
|
-
return;
|
|
6196
|
-
}
|
|
6197
|
-
const props = source.properties;
|
|
6198
|
-
for (const [name, propSchema] of Object.entries(props)) {
|
|
6199
|
-
const compat = areSemanticallyCompatible2(propSchema, target);
|
|
6200
|
-
if (compat === "static")
|
|
6201
|
-
return { score: 1, params: { path: name } };
|
|
6202
|
-
if (compat === "runtime")
|
|
6203
|
-
return { score: 0.6, params: { path: name } };
|
|
6204
|
-
}
|
|
6205
|
-
return;
|
|
6206
|
-
}
|
|
6207
|
-
};
|
|
6208
|
-
|
|
6209
|
-
// src/task-graph/transforms/index-access.ts
|
|
6210
|
-
import { areSemanticallyCompatible as areSemanticallyCompatible3 } from "@workglow/util/schema";
|
|
6211
|
-
function doIndex(value, idx) {
|
|
6212
|
-
if (!Array.isArray(value))
|
|
6213
|
-
return;
|
|
6214
|
-
const i = idx < 0 ? value.length + idx : idx;
|
|
6215
|
-
return value[i];
|
|
6216
|
-
}
|
|
6217
|
-
var indexTransform = {
|
|
6218
|
-
id: "index",
|
|
6219
|
-
title: "Array index",
|
|
6220
|
-
category: "Structural",
|
|
6221
|
-
paramsSchema: {
|
|
6222
|
-
type: "object",
|
|
6223
|
-
properties: {
|
|
6224
|
-
index: { type: "integer", description: "Array index (negative counts from end)" }
|
|
6225
|
-
},
|
|
6226
|
-
required: ["index"]
|
|
6227
|
-
},
|
|
6228
|
-
inferOutputSchema(inputSchema) {
|
|
6229
|
-
const s = inputSchema;
|
|
6230
|
-
if (s?.type === "array" && s.items)
|
|
6231
|
-
return s.items;
|
|
6232
|
-
return {};
|
|
6233
|
-
},
|
|
6234
|
-
apply(value, params) {
|
|
6235
|
-
return doIndex(value, params.index);
|
|
6236
|
-
},
|
|
6237
|
-
suggestFromSchemas(source, target) {
|
|
6238
|
-
const s = source;
|
|
6239
|
-
if (s?.type !== "array" || !s.items)
|
|
6240
|
-
return;
|
|
6241
|
-
const compat = areSemanticallyCompatible3(s.items, target);
|
|
6242
|
-
if (compat === "static")
|
|
6243
|
-
return { score: 0.9, params: { index: 0 } };
|
|
6244
|
-
if (compat === "runtime")
|
|
6245
|
-
return { score: 0.5, params: { index: 0 } };
|
|
6246
|
-
return;
|
|
6247
|
-
}
|
|
6248
|
-
};
|
|
6249
|
-
|
|
6250
6164
|
// src/task-graph/transforms/coalesce.ts
|
|
6251
6165
|
function stripNullable(schema) {
|
|
6252
6166
|
const s = schema;
|
|
@@ -6273,52 +6187,6 @@ var coalesceTransform = {
|
|
|
6273
6187
|
apply: (v, { defaultValue }) => v == null ? defaultValue : v
|
|
6274
6188
|
};
|
|
6275
6189
|
|
|
6276
|
-
// src/task-graph/transforms/string-casts.ts
|
|
6277
|
-
var stringSchema = { type: "string" };
|
|
6278
|
-
var uppercaseTransform = {
|
|
6279
|
-
id: "uppercase",
|
|
6280
|
-
title: "Uppercase",
|
|
6281
|
-
category: "String",
|
|
6282
|
-
paramsSchema: undefined,
|
|
6283
|
-
inferOutputSchema: () => stringSchema,
|
|
6284
|
-
apply: (v) => String(v ?? "").toUpperCase()
|
|
6285
|
-
};
|
|
6286
|
-
var lowercaseTransform = {
|
|
6287
|
-
id: "lowercase",
|
|
6288
|
-
title: "Lowercase",
|
|
6289
|
-
category: "String",
|
|
6290
|
-
paramsSchema: undefined,
|
|
6291
|
-
inferOutputSchema: () => stringSchema,
|
|
6292
|
-
apply: (v) => String(v ?? "").toLowerCase()
|
|
6293
|
-
};
|
|
6294
|
-
var truncateTransform = {
|
|
6295
|
-
id: "truncate",
|
|
6296
|
-
title: "Truncate",
|
|
6297
|
-
category: "String",
|
|
6298
|
-
paramsSchema: {
|
|
6299
|
-
type: "object",
|
|
6300
|
-
properties: { max: { type: "integer", minimum: 0 } },
|
|
6301
|
-
required: ["max"]
|
|
6302
|
-
},
|
|
6303
|
-
inferOutputSchema: () => stringSchema,
|
|
6304
|
-
apply: (v, { max }) => String(v ?? "").slice(0, max)
|
|
6305
|
-
};
|
|
6306
|
-
var substringTransform = {
|
|
6307
|
-
id: "substring",
|
|
6308
|
-
title: "Substring",
|
|
6309
|
-
category: "String",
|
|
6310
|
-
paramsSchema: {
|
|
6311
|
-
type: "object",
|
|
6312
|
-
properties: {
|
|
6313
|
-
start: { type: "integer" },
|
|
6314
|
-
end: { type: "integer" }
|
|
6315
|
-
},
|
|
6316
|
-
required: ["start"]
|
|
6317
|
-
},
|
|
6318
|
-
inferOutputSchema: () => stringSchema,
|
|
6319
|
-
apply: (v, { start, end }) => String(v ?? "").slice(start, end)
|
|
6320
|
-
};
|
|
6321
|
-
|
|
6322
6190
|
// src/task-graph/transforms/date-conversions.ts
|
|
6323
6191
|
var isoSchema = { type: "string", format: "date-time" };
|
|
6324
6192
|
var numberSchema = { type: "number" };
|
|
@@ -6368,15 +6236,116 @@ var isoDateToUnixTransform = {
|
|
|
6368
6236
|
}
|
|
6369
6237
|
};
|
|
6370
6238
|
|
|
6239
|
+
// src/task-graph/transforms/index-access.ts
|
|
6240
|
+
import { areSemanticallyCompatible as areSemanticallyCompatible2 } from "@workglow/util/schema";
|
|
6241
|
+
function doIndex(value, idx) {
|
|
6242
|
+
if (!Array.isArray(value))
|
|
6243
|
+
return;
|
|
6244
|
+
const i = idx < 0 ? value.length + idx : idx;
|
|
6245
|
+
return value[i];
|
|
6246
|
+
}
|
|
6247
|
+
var indexTransform = {
|
|
6248
|
+
id: "index",
|
|
6249
|
+
title: "Array index",
|
|
6250
|
+
category: "Structural",
|
|
6251
|
+
paramsSchema: {
|
|
6252
|
+
type: "object",
|
|
6253
|
+
properties: {
|
|
6254
|
+
index: { type: "integer", description: "Array index (negative counts from end)" }
|
|
6255
|
+
},
|
|
6256
|
+
required: ["index"]
|
|
6257
|
+
},
|
|
6258
|
+
inferOutputSchema(inputSchema) {
|
|
6259
|
+
const s = inputSchema;
|
|
6260
|
+
if (s?.type === "array" && s.items)
|
|
6261
|
+
return s.items;
|
|
6262
|
+
return {};
|
|
6263
|
+
},
|
|
6264
|
+
apply(value, params) {
|
|
6265
|
+
return doIndex(value, params.index);
|
|
6266
|
+
},
|
|
6267
|
+
suggestFromSchemas(source, target) {
|
|
6268
|
+
const s = source;
|
|
6269
|
+
if (s?.type !== "array" || !s.items)
|
|
6270
|
+
return;
|
|
6271
|
+
const compat = areSemanticallyCompatible2(s.items, target);
|
|
6272
|
+
if (compat === "static")
|
|
6273
|
+
return { score: 0.9, params: { index: 0 } };
|
|
6274
|
+
if (compat === "runtime")
|
|
6275
|
+
return { score: 0.5, params: { index: 0 } };
|
|
6276
|
+
return;
|
|
6277
|
+
}
|
|
6278
|
+
};
|
|
6279
|
+
|
|
6280
|
+
// src/task-graph/transforms/pick.ts
|
|
6281
|
+
import { areSemanticallyCompatible as areSemanticallyCompatible3 } from "@workglow/util/schema";
|
|
6282
|
+
function walk(value, path) {
|
|
6283
|
+
if (value == null)
|
|
6284
|
+
return;
|
|
6285
|
+
const parts = path.split(".");
|
|
6286
|
+
let cur = value;
|
|
6287
|
+
for (const p of parts) {
|
|
6288
|
+
if (cur == null)
|
|
6289
|
+
return;
|
|
6290
|
+
cur = cur[p];
|
|
6291
|
+
}
|
|
6292
|
+
return cur;
|
|
6293
|
+
}
|
|
6294
|
+
function walkSchema(schema, path) {
|
|
6295
|
+
const parts = path.split(".");
|
|
6296
|
+
let cur = schema;
|
|
6297
|
+
for (const p of parts) {
|
|
6298
|
+
if (!cur || typeof cur !== "object")
|
|
6299
|
+
return {};
|
|
6300
|
+
if (cur.type !== "object" || !cur.properties || !cur.properties[p]) {
|
|
6301
|
+
return {};
|
|
6302
|
+
}
|
|
6303
|
+
cur = cur.properties[p];
|
|
6304
|
+
}
|
|
6305
|
+
return cur;
|
|
6306
|
+
}
|
|
6307
|
+
var pickTransform = {
|
|
6308
|
+
id: "pick",
|
|
6309
|
+
title: "Pick field",
|
|
6310
|
+
category: "Structural",
|
|
6311
|
+
paramsSchema: {
|
|
6312
|
+
type: "object",
|
|
6313
|
+
properties: {
|
|
6314
|
+
path: { type: "string", description: "Dotted property path" }
|
|
6315
|
+
},
|
|
6316
|
+
required: ["path"]
|
|
6317
|
+
},
|
|
6318
|
+
inferOutputSchema(inputSchema, params) {
|
|
6319
|
+
return walkSchema(inputSchema, params.path);
|
|
6320
|
+
},
|
|
6321
|
+
apply(value, params) {
|
|
6322
|
+
return walk(value, params.path);
|
|
6323
|
+
},
|
|
6324
|
+
suggestFromSchemas(source, target) {
|
|
6325
|
+
if (source.type !== "object" || !source.properties) {
|
|
6326
|
+
return;
|
|
6327
|
+
}
|
|
6328
|
+
const props = source.properties;
|
|
6329
|
+
for (const [name, propSchema] of Object.entries(props)) {
|
|
6330
|
+
const compat = areSemanticallyCompatible3(propSchema, target);
|
|
6331
|
+
if (compat === "static")
|
|
6332
|
+
return { score: 1, params: { path: name } };
|
|
6333
|
+
if (compat === "runtime")
|
|
6334
|
+
return { score: 0.6, params: { path: name } };
|
|
6335
|
+
}
|
|
6336
|
+
return;
|
|
6337
|
+
}
|
|
6338
|
+
};
|
|
6339
|
+
|
|
6371
6340
|
// src/task-graph/transforms/scalar-conversions.ts
|
|
6372
|
-
var
|
|
6341
|
+
var stringSchema = { type: "string" };
|
|
6373
6342
|
var booleanSchema = { type: "boolean" };
|
|
6374
6343
|
var numberToStringTransform = {
|
|
6375
6344
|
id: "numberToString",
|
|
6376
6345
|
title: "Number \u2192 String",
|
|
6377
6346
|
category: "Conversion",
|
|
6378
6347
|
paramsSchema: undefined,
|
|
6379
|
-
inferOutputSchema: () =>
|
|
6348
|
+
inferOutputSchema: () => stringSchema,
|
|
6380
6349
|
apply: (v) => String(v),
|
|
6381
6350
|
suggestFromSchemas(source, target) {
|
|
6382
6351
|
const s = source;
|
|
@@ -6408,7 +6377,7 @@ var stringifyTransform = {
|
|
|
6408
6377
|
title: "JSON.stringify",
|
|
6409
6378
|
category: "Conversion",
|
|
6410
6379
|
paramsSchema: undefined,
|
|
6411
|
-
inferOutputSchema: () =>
|
|
6380
|
+
inferOutputSchema: () => stringSchema,
|
|
6412
6381
|
apply: (v) => JSON.stringify(v),
|
|
6413
6382
|
suggestFromSchemas(source, target) {
|
|
6414
6383
|
const t = target;
|
|
@@ -6424,6 +6393,52 @@ var parseJsonTransform = {
|
|
|
6424
6393
|
apply: (v) => JSON.parse(String(v))
|
|
6425
6394
|
};
|
|
6426
6395
|
|
|
6396
|
+
// src/task-graph/transforms/string-casts.ts
|
|
6397
|
+
var stringSchema2 = { type: "string" };
|
|
6398
|
+
var uppercaseTransform = {
|
|
6399
|
+
id: "uppercase",
|
|
6400
|
+
title: "Uppercase",
|
|
6401
|
+
category: "String",
|
|
6402
|
+
paramsSchema: undefined,
|
|
6403
|
+
inferOutputSchema: () => stringSchema2,
|
|
6404
|
+
apply: (v) => String(v ?? "").toUpperCase()
|
|
6405
|
+
};
|
|
6406
|
+
var lowercaseTransform = {
|
|
6407
|
+
id: "lowercase",
|
|
6408
|
+
title: "Lowercase",
|
|
6409
|
+
category: "String",
|
|
6410
|
+
paramsSchema: undefined,
|
|
6411
|
+
inferOutputSchema: () => stringSchema2,
|
|
6412
|
+
apply: (v) => String(v ?? "").toLowerCase()
|
|
6413
|
+
};
|
|
6414
|
+
var truncateTransform = {
|
|
6415
|
+
id: "truncate",
|
|
6416
|
+
title: "Truncate",
|
|
6417
|
+
category: "String",
|
|
6418
|
+
paramsSchema: {
|
|
6419
|
+
type: "object",
|
|
6420
|
+
properties: { max: { type: "integer", minimum: 0 } },
|
|
6421
|
+
required: ["max"]
|
|
6422
|
+
},
|
|
6423
|
+
inferOutputSchema: () => stringSchema2,
|
|
6424
|
+
apply: (v, { max }) => String(v ?? "").slice(0, max)
|
|
6425
|
+
};
|
|
6426
|
+
var substringTransform = {
|
|
6427
|
+
id: "substring",
|
|
6428
|
+
title: "Substring",
|
|
6429
|
+
category: "String",
|
|
6430
|
+
paramsSchema: {
|
|
6431
|
+
type: "object",
|
|
6432
|
+
properties: {
|
|
6433
|
+
start: { type: "integer" },
|
|
6434
|
+
end: { type: "integer" }
|
|
6435
|
+
},
|
|
6436
|
+
required: ["start"]
|
|
6437
|
+
},
|
|
6438
|
+
inferOutputSchema: () => stringSchema2,
|
|
6439
|
+
apply: (v, { start, end }) => String(v ?? "").slice(start, end)
|
|
6440
|
+
};
|
|
6441
|
+
|
|
6427
6442
|
// src/task-graph/transforms/index.ts
|
|
6428
6443
|
function registerBuiltInTransforms() {
|
|
6429
6444
|
const all = [
|
|
@@ -8166,10 +8181,10 @@ function wrapSchemaInArray(schema) {
|
|
|
8166
8181
|
}
|
|
8167
8182
|
// src/task/JobQueueFactory.ts
|
|
8168
8183
|
import {
|
|
8184
|
+
InMemoryQueueStorage,
|
|
8169
8185
|
JobQueueClient,
|
|
8170
8186
|
JobQueueServer
|
|
8171
8187
|
} from "@workglow/job-queue";
|
|
8172
|
-
import { InMemoryQueueStorage } from "@workglow/job-queue";
|
|
8173
8188
|
import { createServiceToken as createServiceToken6, globalServiceRegistry as globalServiceRegistry4 } from "@workglow/util";
|
|
8174
8189
|
var JOB_QUEUE_FACTORY = createServiceToken6("taskgraph.jobQueueFactory");
|
|
8175
8190
|
var defaultJobQueueFactory = async ({
|
|
@@ -8721,8 +8736,8 @@ class TaskGraphTabularRepository extends TaskGraphRepository {
|
|
|
8721
8736
|
}
|
|
8722
8737
|
}
|
|
8723
8738
|
// src/storage/TaskOutputTabularRepository.ts
|
|
8724
|
-
import { compress, decompress } from "@workglow/util/compress";
|
|
8725
8739
|
import { makeFingerprint } from "@workglow/util";
|
|
8740
|
+
import { compress, decompress } from "@workglow/util/compress";
|
|
8726
8741
|
var TaskOutputSchema = {
|
|
8727
8742
|
type: "object",
|
|
8728
8743
|
properties: {
|
|
@@ -8804,7 +8819,7 @@ class TaskOutputTabularRepository extends TaskOutputRepository {
|
|
|
8804
8819
|
}
|
|
8805
8820
|
}
|
|
8806
8821
|
// src/storage/PortCodecRegistry.ts
|
|
8807
|
-
import {
|
|
8822
|
+
import { _resetPortCodecsForTests, getPortCodec as getPortCodec2, registerPortCodec } from "@workglow/util";
|
|
8808
8823
|
export {
|
|
8809
8824
|
wrapSchemaInArray,
|
|
8810
8825
|
whileTaskConfigSchema,
|
|
@@ -9006,4 +9021,4 @@ export {
|
|
|
9006
9021
|
BROWSER_GRANTS
|
|
9007
9022
|
};
|
|
9008
9023
|
|
|
9009
|
-
//# debugId=
|
|
9024
|
+
//# debugId=538855DC693E4A3D64756E2164756E21
|