@requence/task 1.0.0-alpha.5 → 1.0.0-alpha.7
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/CHANGELOG.md +12 -0
- package/build/chunk-r3hqv0x2.js +127 -0
- package/build/chunk-r3hqv0x2.js.map +13 -0
- package/build/cli.js +4 -6
- package/build/cli.js.map +3 -3
- package/build/index.js +163 -57
- package/build/index.js.map +7 -4
- package/build/types/helpers/src/utils.d.ts +14 -1
- package/build/types/helpers/src/utils.d.ts.map +1 -1
- package/build/types/task/src/createTask.d.ts +7 -7
- package/build/types/task/src/createTask.d.ts.map +1 -1
- package/build/types/task/src/index.d.ts +1 -0
- package/build/types/task/src/index.d.ts.map +1 -1
- package/build/types/task/src/types.d.ts +60 -60
- package/build/types/task/src/utils/mapOutput.d.ts +2 -0
- package/build/types/task/src/utils/mapOutput.d.ts.map +1 -0
- package/build/types/task/src/watchTasks.d.ts +7 -7
- package/package.json +1 -1
- package/build/chunk-6pjtq0hg.js +0 -66
- package/build/chunk-6pjtq0hg.js.map +0 -12
package/build/index.js
CHANGED
|
@@ -1,79 +1,158 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createRemotePromise,
|
|
3
|
-
deobfuscate
|
|
4
|
-
|
|
3
|
+
deobfuscate,
|
|
4
|
+
mapData
|
|
5
|
+
} from "./chunk-r3hqv0x2.js";
|
|
6
|
+
|
|
7
|
+
// ../helpers/src/files/index.ts
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
|
|
10
|
+
// ../helpers/src/files/RequenceFile.ts
|
|
11
|
+
import util from "node:util";
|
|
12
|
+
|
|
13
|
+
class RequenceFile {
|
|
14
|
+
#data;
|
|
15
|
+
#file = null;
|
|
16
|
+
constructor(blobParts, options) {
|
|
17
|
+
this.#data = new Blob(blobParts, options);
|
|
18
|
+
}
|
|
19
|
+
static formFileObject(file) {
|
|
20
|
+
const instance = new this([], { type: "x/x" });
|
|
21
|
+
instance.#file = file;
|
|
22
|
+
return instance;
|
|
23
|
+
}
|
|
24
|
+
get fileObject() {
|
|
25
|
+
return this.#file;
|
|
26
|
+
}
|
|
27
|
+
get size() {
|
|
28
|
+
return this.#file?.size ?? this.#data.size;
|
|
29
|
+
}
|
|
30
|
+
get mimeType() {
|
|
31
|
+
return this.#file?.mime ?? this.#data.type;
|
|
32
|
+
}
|
|
33
|
+
get mainMimeType() {
|
|
34
|
+
return this.mimeType.split("/")[0];
|
|
35
|
+
}
|
|
36
|
+
get subMimeType() {
|
|
37
|
+
return this.mimeType.split("/")[1];
|
|
38
|
+
}
|
|
39
|
+
async text() {
|
|
40
|
+
if (this.#file) {
|
|
41
|
+
return fetch(this.#file.url).then((response) => response.text());
|
|
42
|
+
}
|
|
43
|
+
return this.#data.text();
|
|
44
|
+
}
|
|
45
|
+
async json() {
|
|
46
|
+
if (this.#file) {
|
|
47
|
+
return fetch(this.#file.url).then((response) => response.json());
|
|
48
|
+
}
|
|
49
|
+
return JSON.parse(await this.text());
|
|
50
|
+
}
|
|
51
|
+
async blob() {
|
|
52
|
+
if (this.#file) {
|
|
53
|
+
return fetch(this.#file.url).then((response) => response.blob());
|
|
54
|
+
}
|
|
55
|
+
return this.#data;
|
|
56
|
+
}
|
|
57
|
+
async arrayBuffer() {
|
|
58
|
+
if (this.#file) {
|
|
59
|
+
return fetch(this.#file.url).then((response) => response.arrayBuffer());
|
|
60
|
+
}
|
|
61
|
+
return this.#data.arrayBuffer();
|
|
62
|
+
}
|
|
63
|
+
[util.inspect.custom]() {
|
|
64
|
+
return `RequenceFile<${this.mimeType}>`;
|
|
65
|
+
}
|
|
66
|
+
toString() {
|
|
67
|
+
return `RequenceFile<${this.mimeType}>`;
|
|
68
|
+
}
|
|
69
|
+
toJSON() {
|
|
70
|
+
return `RequenceFile<${this.mimeType}>`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// ../helpers/src/files/index.ts
|
|
75
|
+
var fileObjectSchema = z.object({
|
|
76
|
+
size: z.number().int().positive(),
|
|
77
|
+
mime: z.string(),
|
|
78
|
+
url: z.string().url(),
|
|
79
|
+
__REQUENCE_type: z.literal("RequenceFile")
|
|
80
|
+
});
|
|
81
|
+
function isFileObject(data) {
|
|
82
|
+
return fileObjectSchema.safeParse(data).success;
|
|
83
|
+
}
|
|
5
84
|
|
|
6
85
|
// src/createTask.ts
|
|
7
86
|
import { EventSource } from "eventsource";
|
|
8
87
|
|
|
9
88
|
// src/types.ts
|
|
10
|
-
import { z } from "zod";
|
|
11
|
-
var serviceNodeInfoSchema =
|
|
12
|
-
id:
|
|
13
|
-
type:
|
|
14
|
-
alias:
|
|
15
|
-
service:
|
|
16
|
-
id:
|
|
17
|
-
name:
|
|
18
|
-
version:
|
|
89
|
+
import { z as z2 } from "zod";
|
|
90
|
+
var serviceNodeInfoSchema = z2.object({
|
|
91
|
+
id: z2.string().uuid(),
|
|
92
|
+
type: z2.literal("service"),
|
|
93
|
+
alias: z2.string().optional(),
|
|
94
|
+
service: z2.object({
|
|
95
|
+
id: z2.string().uuid(),
|
|
96
|
+
name: z2.string(),
|
|
97
|
+
version: z2.string()
|
|
19
98
|
}).optional()
|
|
20
99
|
});
|
|
21
|
-
var logicNodeInfoSchema =
|
|
22
|
-
id:
|
|
23
|
-
type:
|
|
24
|
-
alias:
|
|
25
|
-
logic:
|
|
26
|
-
language:
|
|
100
|
+
var logicNodeInfoSchema = z2.object({
|
|
101
|
+
id: z2.string().uuid(),
|
|
102
|
+
type: z2.literal("logic"),
|
|
103
|
+
alias: z2.string().optional(),
|
|
104
|
+
logic: z2.object({
|
|
105
|
+
language: z2.enum(["typescript", "javascript", "python"])
|
|
27
106
|
}).optional()
|
|
28
107
|
});
|
|
29
|
-
var nodeInfoSchema =
|
|
108
|
+
var nodeInfoSchema = z2.discriminatedUnion("type", [
|
|
30
109
|
serviceNodeInfoSchema,
|
|
31
110
|
logicNodeInfoSchema
|
|
32
111
|
]);
|
|
33
|
-
var baseUpdate =
|
|
34
|
-
timestamp:
|
|
35
|
-
taskId:
|
|
112
|
+
var baseUpdate = z2.object({
|
|
113
|
+
timestamp: z2.coerce.date(),
|
|
114
|
+
taskId: z2.string().uuid()
|
|
36
115
|
});
|
|
37
116
|
var taskStartUpdateSchema = baseUpdate.extend({
|
|
38
|
-
type:
|
|
39
|
-
input:
|
|
40
|
-
meta:
|
|
117
|
+
type: z2.literal("taskStart"),
|
|
118
|
+
input: z2.unknown(),
|
|
119
|
+
meta: z2.unknown()
|
|
41
120
|
});
|
|
42
121
|
var taskErrorUpdateSchema = baseUpdate.extend({
|
|
43
|
-
type:
|
|
44
|
-
error:
|
|
122
|
+
type: z2.literal("taskError"),
|
|
123
|
+
error: z2.string()
|
|
45
124
|
});
|
|
46
125
|
var taskEndUpdateSchema = baseUpdate.extend({
|
|
47
|
-
type:
|
|
48
|
-
result:
|
|
49
|
-
partialResults:
|
|
126
|
+
type: z2.literal("taskEnd"),
|
|
127
|
+
result: z2.record(z2.string(), z2.unknown()),
|
|
128
|
+
partialResults: z2.array(z2.object({
|
|
50
129
|
node: nodeInfoSchema,
|
|
51
|
-
timestamp:
|
|
52
|
-
data:
|
|
53
|
-
error:
|
|
130
|
+
timestamp: z2.coerce.date().nullable(),
|
|
131
|
+
data: z2.unknown(),
|
|
132
|
+
error: z2.string().optional()
|
|
54
133
|
}))
|
|
55
134
|
});
|
|
56
135
|
var nodeStartUpdateSchema = baseUpdate.extend({
|
|
57
|
-
type:
|
|
136
|
+
type: z2.literal("nodeStart"),
|
|
58
137
|
node: nodeInfoSchema
|
|
59
138
|
});
|
|
60
139
|
var nodeUpdateUpdateSchema = baseUpdate.extend({
|
|
61
|
-
type:
|
|
62
|
-
data:
|
|
140
|
+
type: z2.literal("nodeUpdate"),
|
|
141
|
+
data: z2.unknown()
|
|
63
142
|
});
|
|
64
143
|
var nodeErrorUpdateSchema = baseUpdate.extend({
|
|
65
|
-
type:
|
|
66
|
-
error:
|
|
144
|
+
type: z2.literal("nodeError"),
|
|
145
|
+
error: z2.string()
|
|
67
146
|
});
|
|
68
147
|
var nodeDeferUpdateSchema = baseUpdate.extend({
|
|
69
|
-
type:
|
|
70
|
-
reason:
|
|
148
|
+
type: z2.literal("nodeDefer"),
|
|
149
|
+
reason: z2.string().optional()
|
|
71
150
|
});
|
|
72
151
|
var nodeEndUpdateSchema = baseUpdate.extend({
|
|
73
|
-
type:
|
|
152
|
+
type: z2.literal("nodeEnd"),
|
|
74
153
|
node: nodeInfoSchema
|
|
75
154
|
});
|
|
76
|
-
var updateSchema =
|
|
155
|
+
var updateSchema = z2.discriminatedUnion("type", [
|
|
77
156
|
taskStartUpdateSchema,
|
|
78
157
|
taskErrorUpdateSchema,
|
|
79
158
|
taskEndUpdateSchema,
|
|
@@ -83,7 +162,7 @@ var updateSchema = z.discriminatedUnion("type", [
|
|
|
83
162
|
nodeDeferUpdateSchema,
|
|
84
163
|
nodeEndUpdateSchema
|
|
85
164
|
]);
|
|
86
|
-
var eventSchema =
|
|
165
|
+
var eventSchema = z2.object({ type: z2.string(), data: z2.string() }).transform((event) => ({ type: event.type, ...JSON.parse(event.data) })).pipe(updateSchema);
|
|
87
166
|
|
|
88
167
|
// src/utils/callbackToAsyncIterator.ts
|
|
89
168
|
function callbackToAsyncIterator(options) {
|
|
@@ -148,6 +227,17 @@ in your package.json in requence.accessToken`);
|
|
|
148
227
|
};
|
|
149
228
|
}
|
|
150
229
|
|
|
230
|
+
// src/utils/mapOutput.ts
|
|
231
|
+
function mapOutput2(data) {
|
|
232
|
+
return mapData(data, {
|
|
233
|
+
Object(obj) {
|
|
234
|
+
if (isFileObject(obj)) {
|
|
235
|
+
return RequenceFile.formFileObject(obj);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
151
241
|
// src/createTask.ts
|
|
152
242
|
class TaskError extends Error {
|
|
153
243
|
taskTemplate;
|
|
@@ -225,19 +315,19 @@ function createTask(options, onUpdate) {
|
|
|
225
315
|
const getPartialResult = (alias) => update.partialResults.find((partialResult) => partialResult.node.alias === alias);
|
|
226
316
|
resultPromise.resolve({
|
|
227
317
|
getInput() {
|
|
228
|
-
return input;
|
|
318
|
+
return mapOutput2(input);
|
|
229
319
|
},
|
|
230
320
|
getMeta() {
|
|
231
|
-
return meta;
|
|
321
|
+
return mapOutput2(meta);
|
|
232
322
|
},
|
|
233
323
|
getError(alias) {
|
|
234
324
|
return getPartialResult(alias)?.error ?? null;
|
|
235
325
|
},
|
|
236
326
|
getData(alias) {
|
|
237
327
|
if (!alias) {
|
|
238
|
-
return update.result;
|
|
328
|
+
return mapOutput2(update.result);
|
|
239
329
|
}
|
|
240
|
-
return getPartialResult(alias)?.data ?? null;
|
|
330
|
+
return mapOutput2(getPartialResult(alias)?.data ?? null);
|
|
241
331
|
}
|
|
242
332
|
});
|
|
243
333
|
}
|
|
@@ -251,18 +341,33 @@ function createTask(options, onUpdate) {
|
|
|
251
341
|
const taskIdPromise = createRemotePromise();
|
|
252
342
|
const resultPromise = createRemotePromise(startMonitoring);
|
|
253
343
|
(async () => {
|
|
344
|
+
const formData = new FormData;
|
|
345
|
+
const walkData = async (data, path = []) => {
|
|
346
|
+
const name = path.map((segment, index) => index === 0 ? segment : typeof segment === "string" ? `.${segment}` : `[${segment}]`).join("");
|
|
347
|
+
if (data instanceof RequenceFile) {
|
|
348
|
+
formData.append(name, await data.blob(), name);
|
|
349
|
+
} else if (Array.isArray(data)) {
|
|
350
|
+
await Promise.all(data.map((item, index) => walkData(item, [...path, index])));
|
|
351
|
+
} else if (data && typeof data === "object") {
|
|
352
|
+
for (const [key, value] of Object.entries(data)) {
|
|
353
|
+
await walkData(value, [...path, key]);
|
|
354
|
+
}
|
|
355
|
+
} else if (typeof data !== "undefined") {
|
|
356
|
+
formData.append(name, `json://${JSON.stringify(data)}`);
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
await walkData({
|
|
360
|
+
input: options.input ?? null,
|
|
361
|
+
meta: options.meta ?? null,
|
|
362
|
+
name: options.name ?? null
|
|
363
|
+
});
|
|
364
|
+
console.log(formData);
|
|
254
365
|
const response = await fetch(startUrl, {
|
|
255
|
-
method: "
|
|
366
|
+
method: "POST",
|
|
367
|
+
body: formData,
|
|
256
368
|
headers: {
|
|
257
|
-
Accept: "application/json",
|
|
258
|
-
"Content-Type": "application/json",
|
|
259
369
|
Authorization: `Bearer ${token}`
|
|
260
|
-
}
|
|
261
|
-
body: JSON.stringify({
|
|
262
|
-
input: options.input,
|
|
263
|
-
meta: options.meta,
|
|
264
|
-
name: options.name
|
|
265
|
-
})
|
|
370
|
+
}
|
|
266
371
|
});
|
|
267
372
|
if (!response.ok) {
|
|
268
373
|
const error = new TaskError(await response.text(), options.taskTemplate);
|
|
@@ -347,8 +452,9 @@ function watchTasks(options) {
|
|
|
347
452
|
}
|
|
348
453
|
export {
|
|
349
454
|
watchTasks,
|
|
350
|
-
createTask
|
|
455
|
+
createTask,
|
|
456
|
+
RequenceFile
|
|
351
457
|
};
|
|
352
458
|
|
|
353
|
-
//# debugId=
|
|
459
|
+
//# debugId=4CF04B754B02239C64756E2164756E21
|
|
354
460
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/createTask.ts", "../src/types.ts", "../src/utils/callbackToAsyncIterator.ts", "../src/utils/getAccessToken.ts", "../src/watchTasks.ts"],
|
|
3
|
+
"sources": ["../../helpers/src/files/index.ts", "../../helpers/src/files/RequenceFile.ts", "../src/createTask.ts", "../src/types.ts", "../src/utils/callbackToAsyncIterator.ts", "../src/utils/getAccessToken.ts", "../src/utils/mapOutput.ts", "../src/watchTasks.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {
|
|
5
|
+
"import { z } from 'zod'\n\nexport * from './mapOutput.ts'\nexport * from './isValidMimeType.ts'\nexport * from './RequenceFile.ts'\n\nconst fileObjectSchema = z.object({\n size: z.number().int().positive(),\n mime: z.string(),\n url: z.string().url(),\n __REQUENCE_type: z.literal('RequenceFile'),\n})\n\nexport type FileObject = z.infer<typeof fileObjectSchema>\n\nexport function toFileObject(fileInfo: {\n size: number\n mime: string\n url: string\n}): FileObject {\n return {\n ...fileInfo,\n __REQUENCE_type: 'RequenceFile',\n }\n}\n\nexport function isFileObject(data: unknown): data is FileObject {\n return fileObjectSchema.safeParse(data).success\n}\n",
|
|
6
|
+
"import util from 'node:util'\n\nimport type { FileObject } from './index.ts'\n\ninterface RequenceFilePropertyBag<T> extends Omit<BlobPropertyBag, 'type'> {\n type: T\n}\n\ntype MainMimeType<T extends string> = T extends `${infer V}/${string}`\n ? V extends '*'\n ? any\n : V\n : any\n\ntype SubMimeType<T extends string> = T extends `${string}/${infer V}`\n ? V extends '*'\n ? any\n : V\n : any\n\ntype ValidMimeType<T extends `${string}/${string}`> =\n T extends `${infer A}/${infer B}`\n ? A extends '*' | '' | '/'\n ? never\n : B extends '*' | '' | '/'\n ? never\n : T\n : never\n\nexport interface RequenceFileType<A, B> {\n size: number\n mimeType: string\n mainMimeType: A\n subMimeType: B\n text(): Promise<string>\n json(): Promise<unknown>\n blob(): Promise<Blob>\n arrayBuffer(): Promise<ArrayBuffer>\n}\n\nexport class RequenceFile<\n T extends `${string}/${string}` = '*/*',\n A = MainMimeType<T>,\n B = SubMimeType<T>,\n> implements RequenceFileType<A, B>\n{\n #data: Blob\n #file: FileObject | null = null\n constructor(\n blobParts: BlobPart[],\n options?: RequenceFilePropertyBag<ValidMimeType<T>>,\n ) {\n this.#data = new Blob(blobParts, options)\n }\n\n /** @internal */\n static formFileObject<T extends `${string}/${string}`>(file: FileObject) {\n const instance = new this([], { type: 'x/x' })\n instance.#file = file\n return instance as RequenceFile<T>\n }\n\n /** @internal */\n get fileObject() {\n return this.#file\n }\n\n get size() {\n return this.#file?.size ?? this.#data.size\n }\n\n get mimeType() {\n return this.#file?.mime ?? this.#data.type\n }\n\n get mainMimeType() {\n return this.mimeType.split('/')[0] as A\n }\n\n get subMimeType() {\n return this.mimeType.split('/')[1] as B\n }\n\n async text() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.text())\n }\n return this.#data.text()\n }\n\n async json() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.json())\n }\n return JSON.parse(await this.text())\n }\n\n async blob() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.blob())\n }\n return this.#data\n }\n\n async arrayBuffer() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.arrayBuffer())\n }\n return this.#data.arrayBuffer()\n }\n\n [util.inspect.custom]() {\n return `RequenceFile<${this.mimeType}>`\n }\n\n toString() {\n return `RequenceFile<${this.mimeType}>`\n }\n\n toJSON() {\n return `RequenceFile<${this.mimeType}>`\n }\n}\n",
|
|
7
|
+
"import { createRemotePromise } from '@requence/helpers'\nimport { RequenceFile } from '@requence/helpers/files'\nimport { EventSource } from 'eventsource'\n\nimport {\n type CreateTaskOptions,\n type Result,\n type Update,\n eventSchema,\n} from './types.ts'\nimport callbackToAsyncIterator from './utils/callbackToAsyncIterator.ts'\nimport getAccessToken from './utils/getAccessToken.ts'\nimport mapOutput from './utils/mapOutput.ts'\n\nexport class TaskError extends Error {\n constructor(\n message: string,\n public readonly taskTemplate: string,\n ) {\n super(message)\n }\n}\n\ntype TaskUpdateHandler = (update: Update) => void\n\nexport function createTask<\n T extends keyof Requence.TaskTemplate | (string & {}),\n>(options: CreateTaskOptions<T>, onUpdate?: TaskUpdateHandler) {\n const taskUpdateHandlers = new Set<TaskUpdateHandler>()\n\n const { apiBaseUrl, token } = getAccessToken(options.accessToken)\n\n const startUrl = `${apiBaseUrl}/task/start/${options.taskTemplate}`\n\n const payloadPromise = createRemotePromise<{\n id: string\n urls?: { watch: string }\n }>()\n\n let isMonitoring = false\n const startMonitoring = async () => {\n if (isMonitoring) {\n return\n }\n\n isMonitoring = true\n const payload = await payloadPromise\n\n if (!payload.urls) {\n resultPromise.resolve({\n getInput() {\n return input\n },\n getMeta() {\n return meta\n },\n getError(_alias) {\n return null\n },\n getData(_alias) {\n return null\n },\n } as Result<T>)\n return\n }\n\n const eventSource = new EventSource(payload.urls.watch, {\n fetch: (input, init) =>\n fetch(input, {\n ...init,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n }),\n })\n\n const taskEvents: Array<Update['type']> = [\n 'taskStart',\n 'taskError',\n 'taskEnd',\n 'nodeStart',\n 'nodeUpdate',\n 'nodeDefer',\n 'nodeError',\n 'nodeEnd',\n ]\n\n let input: unknown = null\n let meta: unknown = null\n taskEvents.forEach((taskEvent) => {\n eventSource.addEventListener(taskEvent, (event) => {\n const updateResult = eventSchema.safeParse(event)\n\n if (!updateResult.success) {\n eventSource.close()\n resultPromise.reject(\n new TaskError(\n `Invalid ${taskEvent} update received`,\n options.taskTemplate,\n ),\n )\n return\n }\n\n const update = updateResult.data\n\n if (update.type === 'taskEnd' || update.type === 'taskError') {\n eventSource.close()\n }\n\n if (update.type === 'taskStart') {\n input = update.input\n meta = update.meta\n }\n\n if (update.type === 'taskEnd') {\n const getPartialResult = (alias: string) =>\n update.partialResults.find(\n (partialResult) => partialResult.node.alias === alias,\n )\n\n resultPromise.resolve({\n getInput() {\n return mapOutput(input)\n },\n getMeta() {\n return mapOutput(meta)\n },\n getError(alias) {\n return getPartialResult(alias)?.error ?? null\n },\n getData(alias) {\n if (!alias) {\n return mapOutput(update.result)\n }\n\n return mapOutput(getPartialResult(alias)?.data ?? null)\n },\n } as Result<T>)\n }\n\n if (update.type === 'taskError') {\n resultPromise.reject(\n new TaskError(update.error, options.taskTemplate),\n )\n }\n\n taskUpdateHandlers.forEach((handler) => handler(update))\n })\n })\n }\n\n const taskIdPromise = createRemotePromise<string>()\n const resultPromise = createRemotePromise<Result<T>>(startMonitoring)\n\n ;(async () => {\n const formData = new FormData()\n\n const walkData = async (\n data: unknown,\n path: Array<string | number> = [],\n ) => {\n const name = path\n .map((segment, index) =>\n index === 0\n ? segment\n : typeof segment === 'string'\n ? `.${segment}`\n : `[${segment}]`,\n )\n .join('')\n\n if (data instanceof RequenceFile) {\n formData.append(name, await data.blob(), name)\n } else if (Array.isArray(data)) {\n await Promise.all(\n data.map((item, index) => walkData(item, [...path, index])),\n )\n } else if (data && typeof data === 'object') {\n for (const [key, value] of Object.entries(data)) {\n await walkData(value, [...path, key])\n }\n } else if (typeof data !== 'undefined') {\n formData.append(name, `json://${JSON.stringify(data)}`)\n }\n }\n\n await walkData({\n input: options.input ?? null,\n meta: options.meta ?? null,\n name: options.name ?? null,\n })\n\n console.log(formData)\n\n const response = await fetch(startUrl, {\n method: 'POST',\n body: formData,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n\n if (!response.ok) {\n const error = new TaskError(await response.text(), options.taskTemplate)\n taskIdPromise.reject(error)\n resultPromise.reject(error)\n return\n }\n\n const payload = await response.json()\n taskIdPromise.resolve(payload.id)\n payloadPromise.resolve(payload)\n if (onUpdate) {\n taskUpdateHandlers.add(onUpdate)\n startMonitoring()\n }\n })()\n\n const asyncIterable = callbackToAsyncIterator<Update>({\n subscribe: (push) => {\n taskUpdateHandlers.add(push)\n startMonitoring()\n\n return () => {\n taskUpdateHandlers.delete(push)\n }\n },\n done: (value) => value.type === 'taskError' || value.type === 'taskEnd',\n })\n\n return Object.assign(resultPromise.promise, asyncIterable, {\n getTaskId() {\n return taskIdPromise\n },\n })\n}\n",
|
|
6
8
|
"import { z } from 'zod'\n\ntype Prettify<T> = {\n [K in keyof T]: T[K]\n} & {}\n\ntype IfUnknown<T, Then, Else> = unknown extends T\n ? T extends unknown\n ? Then\n : Else\n : Else\n\ntype IfNull<T, Then, Else> = T extends null\n ? null extends T\n ? Then\n : Else\n : Else\n\nexport type CreateTaskOptions<T> = {\n taskTemplate: T\n name?: string | null\n accessToken?: string\n} & IfNull<\n Input<T>,\n { input?: null },\n IfUnknown<Input<T>, { input?: any }, { input: Input<T> }>\n> &\n IfNull<\n Meta<T>,\n { meta?: null },\n IfUnknown<Meta<T>, { meta?: any }, { meta: Meta<T> }>\n >\n\ntype Input<T> = T extends keyof Requence.TaskTemplate\n ? Requence.TaskTemplate[T]['input']\n : unknown\ntype Meta<T> = T extends keyof Requence.TaskTemplate\n ? Requence.TaskTemplate[T]['meta']\n : unknown\ntype Data<T> = T extends keyof Requence.TaskTemplate\n ? Prettify<Requence.TaskTemplate[T]['results']>\n : unknown\ntype NamedData<T, A> = T extends keyof Requence.TaskTemplate\n ? A extends keyof Requence.TaskTemplate[T]['namedResults']\n ? Prettify<Requence.TaskTemplate[T]['namedResults'][A]>\n : unknown\n : unknown\ntype Alias<T> = T extends keyof Requence.TaskTemplate\n ? keyof Requence.TaskTemplate[T]['namedResults']\n : string\n\nexport interface Result<T> {\n getInput(): Input<T>\n getMeta(): Meta<T>\n getData: {\n (): Data<T>\n <A extends Alias<T>>(alias: A): NamedData<T, A>\n }\n getError(alias: Alias<T>): string | null\n}\n\nconst serviceNodeInfoSchema = z.object({\n id: z.string().uuid(),\n type: z.literal('service'),\n alias: z.string().optional(),\n service: z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n version: z.string(),\n })\n .optional(),\n})\n\nconst logicNodeInfoSchema = z.object({\n id: z.string().uuid(),\n type: z.literal('logic'),\n alias: z.string().optional(),\n logic: z\n .object({\n language: z.enum(['typescript', 'javascript', 'python']),\n })\n .optional(),\n})\n\nconst nodeInfoSchema = z.discriminatedUnion('type', [\n serviceNodeInfoSchema,\n logicNodeInfoSchema,\n])\n\nconst baseUpdate = z.object({\n timestamp: z.coerce.date(),\n taskId: z.string().uuid(),\n})\n\nconst taskStartUpdateSchema = baseUpdate.extend({\n type: z.literal('taskStart'),\n input: z.unknown(),\n meta: z.unknown(),\n})\n\nconst taskErrorUpdateSchema = baseUpdate.extend({\n type: z.literal('taskError'),\n error: z.string(),\n})\n\nconst taskEndUpdateSchema = baseUpdate.extend({\n type: z.literal('taskEnd'),\n result: z.record(z.string(), z.unknown()),\n partialResults: z.array(\n z.object({\n node: nodeInfoSchema,\n timestamp: z.coerce.date().nullable(),\n data: z.unknown(),\n error: z.string().optional(),\n }),\n ),\n})\n\nconst nodeStartUpdateSchema = baseUpdate.extend({\n type: z.literal('nodeStart'),\n node: nodeInfoSchema,\n})\n\nconst nodeUpdateUpdateSchema = baseUpdate.extend({\n type: z.literal('nodeUpdate'),\n data: z.unknown(),\n})\n\nconst nodeErrorUpdateSchema = baseUpdate.extend({\n type: z.literal('nodeError'),\n error: z.string(),\n})\n\nconst nodeDeferUpdateSchema = baseUpdate.extend({\n type: z.literal('nodeDefer'),\n reason: z.string().optional(),\n})\n\nconst nodeEndUpdateSchema = baseUpdate.extend({\n type: z.literal('nodeEnd'),\n node: nodeInfoSchema,\n})\n\nexport const updateSchema = z.discriminatedUnion('type', [\n taskStartUpdateSchema,\n taskErrorUpdateSchema,\n taskEndUpdateSchema,\n nodeStartUpdateSchema,\n nodeUpdateUpdateSchema,\n nodeErrorUpdateSchema,\n nodeDeferUpdateSchema,\n nodeEndUpdateSchema,\n])\n\nexport type Update = z.infer<typeof updateSchema>\n\nexport const eventSchema = z\n .object({ type: z.string(), data: z.string() })\n .transform((event) => ({ type: event.type, ...JSON.parse(event.data) }))\n .pipe(updateSchema)\n",
|
|
7
9
|
"export default function callbackToAsyncIterator<T>(options: {\n subscribe: (push: (value: T) => void) => void | (() => void)\n done?: (value: T) => boolean\n}): AsyncIterable<T> {\n const pullQueue: Array<(value: T) => void> = []\n const pushQueue: Array<T> = []\n\n const pushValue = (value: T) => {\n if (pullQueue.length !== 0) {\n const resolver = pullQueue.shift()\n resolver!(value)\n } else {\n pushQueue.push(value)\n }\n }\n\n const pullValue = () =>\n new Promise<T>((resolve) => {\n if (pushQueue.length !== 0) {\n resolve(pushQueue.shift()!)\n } else {\n pullQueue.push(resolve)\n }\n })\n\n return {\n [Symbol.asyncIterator]() {\n let done = false\n const unsubscribe = options.subscribe(pushValue)\n return {\n async next() {\n if (done) {\n return { value: undefined, done: true }\n }\n\n const value = await pullValue()\n if (options.done) {\n done = options.done(value)\n }\n return { value, done: false }\n },\n async return() {\n unsubscribe?.()\n return { value: undefined, done: true }\n },\n }\n },\n }\n}\n",
|
|
8
10
|
"import { readFileSync } from 'node:fs'\n\nimport { deobfuscate } from '@requence/helpers'\n\nexport default function getAccessToken(accessToken?: string) {\n const token =\n accessToken ??\n process.env.REQUENCE_ACCESS_TOKEN ??\n (JSON.parse(readFileSync('package.json', 'utf-8')) as any).requence\n ?.accessToken\n\n if (!token) {\n throw new Error(\n 'No access token found\\nYou can provide the access token as argument to createTask,\\nas environment variable REQUENCE_ACCESS_TOKEN or\\nin your package.json in requence.accessToken',\n )\n }\n\n const parts = deobfuscate(token)\n if (parts.length < 2 || parts[0] !== 'api') {\n throw new Error('Invalid api key')\n }\n\n return {\n token: parts[1],\n apiBaseUrl: parts[2],\n }\n}\n",
|
|
11
|
+
"import { mapData } from '@requence/helpers'\nimport { RequenceFile, isFileObject } from '@requence/helpers/files'\n\nexport default function mapOutput(data: unknown): unknown {\n return mapData(data, {\n Object(obj) {\n if (isFileObject(obj)) {\n return RequenceFile.formFileObject(obj)\n }\n },\n })\n}\n",
|
|
9
12
|
"import { EventSource } from 'eventsource'\n\nimport { type Update, eventSchema } from './types.ts'\nimport callbackToAsyncIterator from './utils/callbackToAsyncIterator.ts'\nimport getAccessToken from './utils/getAccessToken.ts'\n\ntype TaskUpdateHandler = (update: Update) => void\n\ninterface WatchTasksOptions {\n accessToken?: string\n since: Date\n onUpdate?: TaskUpdateHandler\n}\nexport function watchTasks(options: WatchTasksOptions) {\n const { apiBaseUrl, token } = getAccessToken(options.accessToken)\n const taskUpdateHandlers = new Set<TaskUpdateHandler>()\n\n if (options.onUpdate) {\n taskUpdateHandlers.add(options.onUpdate)\n }\n\n const watchUrl = new URL(`${apiBaseUrl}/task/watch-all`)\n watchUrl.searchParams.set('since', options.since.toISOString())\n\n const eventSource = new EventSource(watchUrl, {\n fetch: (input, init) =>\n fetch(input, {\n ...init,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n }),\n })\n\n const asyncIterable = callbackToAsyncIterator<Update>({\n subscribe: (push) => {\n taskUpdateHandlers.add(push)\n return () => {\n taskUpdateHandlers.delete(push)\n }\n },\n })\n\n const taskEvents: Array<Update['type']> = [\n 'taskStart',\n 'taskError',\n 'taskEnd',\n 'nodeStart',\n 'nodeUpdate',\n 'nodeDefer',\n 'nodeError',\n 'nodeEnd',\n ]\n\n taskEvents.forEach((taskEvent) => {\n eventSource.addEventListener(taskEvent, (event) => {\n const updateResult = eventSchema.safeParse(event)\n\n if (!updateResult.success) {\n eventSource.close()\n throw new Error('invalid update')\n }\n\n taskUpdateHandlers.forEach((handler) => handler(updateResult.data))\n })\n })\n\n const stopWatching = () => {\n eventSource.close()\n }\n\n return Object.assign(stopWatching, asyncIterable)\n}\n"
|
|
10
13
|
],
|
|
11
|
-
"mappings": "
|
|
12
|
-
"debugId": "
|
|
14
|
+
"mappings": "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",
|
|
15
|
+
"debugId": "4CF04B754B02239C64756E2164756E21",
|
|
13
16
|
"names": []
|
|
14
17
|
}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
export declare function matchSchema<Schema extends z.ZodSchema>(schema: Schema, input: unknown): input is z.infer<Schema>;
|
|
3
3
|
export declare function matchSchema<Schema extends z.ZodSchema>(schema: Schema): (input: unknown) => input is z.infer<Schema>;
|
|
4
|
+
export declare function isRecord(data: unknown): data is Record<string, unknown>;
|
|
5
|
+
type DataVistor<T> = (data: T, path: Array<string | number>) => Promise<any> | any;
|
|
6
|
+
interface DataVistors {
|
|
7
|
+
Null?: DataVistor<null>;
|
|
8
|
+
String?: DataVistor<string>;
|
|
9
|
+
Number?: DataVistor<number>;
|
|
10
|
+
Object?: DataVistor<object>;
|
|
11
|
+
Array?: DataVistor<Array<any>>;
|
|
12
|
+
Buffer?: DataVistor<Buffer>;
|
|
13
|
+
}
|
|
14
|
+
type HasPromiseVistor<T extends DataVistors, Then, Else> = T[keyof T] extends (...args: any[]) => any ? Promise<any> extends ReturnType<T[keyof T]> ? Then : Else : Else;
|
|
15
|
+
export declare function mapData<Output, Input = unknown, V extends DataVistors = DataVistors>(data: Input, visitors: V): HasPromiseVistor<V, Promise<unknown extends Output ? Input : Output>, unknown extends Output ? Input : Output>;
|
|
16
|
+
export {};
|
|
4
17
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../helpers/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../helpers/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wBAAgB,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,EACpD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAC3B,wBAAgB,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,EACpD,MAAM,EAAE,MAAM,GACb,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAc/C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvE;AAED,KAAK,UAAU,CAAC,CAAC,IAAI,CACnB,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KACzB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;AAEvB,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,KAAK,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAC5E,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,GAAG,GACJ,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GACzC,IAAI,GACJ,IAAI,GACN,IAAI,CAAA;AAiBR,wBAAgB,OAAO,CACrB,MAAM,EACN,KAAK,GAAG,OAAO,EACf,CAAC,SAAS,WAAW,GAAG,WAAW,EAEnC,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,CAAC,GACV,gBAAgB,CACjB,CAAC,EACD,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,EAChD,OAAO,SAAS,MAAM,GAAG,KAAK,GAAG,MAAM,CACxC,CAyDA"}
|
|
@@ -8,13 +8,13 @@ export declare function createTask<T extends keyof Requence.TaskTemplate | (stri
|
|
|
8
8
|
type: "taskStart";
|
|
9
9
|
timestamp: Date;
|
|
10
10
|
taskId: string;
|
|
11
|
-
input?: unknown;
|
|
12
11
|
meta?: unknown;
|
|
12
|
+
input?: unknown;
|
|
13
13
|
} | {
|
|
14
14
|
type: "taskError";
|
|
15
15
|
timestamp: Date;
|
|
16
|
-
taskId: string;
|
|
17
16
|
error: string;
|
|
17
|
+
taskId: string;
|
|
18
18
|
} | {
|
|
19
19
|
type: "taskEnd";
|
|
20
20
|
timestamp: Date;
|
|
@@ -36,11 +36,11 @@ export declare function createTask<T extends keyof Requence.TaskTemplate | (stri
|
|
|
36
36
|
id: string;
|
|
37
37
|
alias?: string | undefined;
|
|
38
38
|
logic?: {
|
|
39
|
-
language: "
|
|
39
|
+
language: "javascript" | "python" | "typescript";
|
|
40
40
|
} | undefined;
|
|
41
41
|
};
|
|
42
|
-
error?: string | undefined;
|
|
43
42
|
data?: unknown;
|
|
43
|
+
error?: string | undefined;
|
|
44
44
|
}[];
|
|
45
45
|
} | {
|
|
46
46
|
type: "nodeStart";
|
|
@@ -60,7 +60,7 @@ export declare function createTask<T extends keyof Requence.TaskTemplate | (stri
|
|
|
60
60
|
id: string;
|
|
61
61
|
alias?: string | undefined;
|
|
62
62
|
logic?: {
|
|
63
|
-
language: "
|
|
63
|
+
language: "javascript" | "python" | "typescript";
|
|
64
64
|
} | undefined;
|
|
65
65
|
};
|
|
66
66
|
} | {
|
|
@@ -71,8 +71,8 @@ export declare function createTask<T extends keyof Requence.TaskTemplate | (stri
|
|
|
71
71
|
} | {
|
|
72
72
|
type: "nodeError";
|
|
73
73
|
timestamp: Date;
|
|
74
|
-
taskId: string;
|
|
75
74
|
error: string;
|
|
75
|
+
taskId: string;
|
|
76
76
|
} | {
|
|
77
77
|
type: "nodeDefer";
|
|
78
78
|
timestamp: Date;
|
|
@@ -96,7 +96,7 @@ export declare function createTask<T extends keyof Requence.TaskTemplate | (stri
|
|
|
96
96
|
id: string;
|
|
97
97
|
alias?: string | undefined;
|
|
98
98
|
logic?: {
|
|
99
|
-
language: "
|
|
99
|
+
language: "javascript" | "python" | "typescript";
|
|
100
100
|
} | undefined;
|
|
101
101
|
};
|
|
102
102
|
}> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTask.d.ts","sourceRoot":"","sources":["../../../../src/createTask.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createTask.d.ts","sourceRoot":"","sources":["../../../../src/createTask.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,KAAK,MAAM,EAEZ,MAAM,YAAY,CAAA;AAKnB,qBAAa,SAAU,SAAQ,KAAK;aAGhB,YAAY,EAAE,MAAM;gBADpC,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,MAAM;CAIvC;AAED,KAAK,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;AAEjD,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,QAAQ,CAAC,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACrD,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiN5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA"}
|