@requence/service 1.0.0-alpha.4 → 1.0.0-alpha.5

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @requence/service
2
2
 
3
+ ## 1.0.0-alpha.5
4
+
5
+ ### Patch Changes
6
+
7
+ - add98b7: remove getData(alias) signature, add getNodes()
8
+
3
9
  ## 1.0.0-alpha.4
4
10
 
5
11
  ### Patch Changes
package/build/cli.js CHANGED
@@ -38,7 +38,7 @@ in your ${chalk.bold("package.json")} in ${chalk.bold("requence.accessToken")}`)
38
38
  errorExit("Invalid service key");
39
39
  }
40
40
  const [, connectionString, serverUrl] = parts;
41
- const response = await fetch(serverUrl + "/service/typescript", {
41
+ const response = await fetch(serverUrl + "/service/types/typescript", {
42
42
  method: "GET",
43
43
  headers: {
44
44
  Authorization: `Bearer ${connectionString}`
@@ -58,5 +58,5 @@ ${text}`;
58
58
  console.info(chalk.green("types saved to", chalk.bold(path.relative(process.cwd(), file))));
59
59
  }).scriptName("requence-service").help("h").demandCommand(1, 1).strict().parse();
60
60
 
61
- //# debugId=E1A7B7E377FE0D8E64756E2164756E21
61
+ //# debugId=46FA48218F6D1DD064756E2164756E21
62
62
  //# sourceMappingURL=cli.js.map
package/build/cli.js.map CHANGED
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/cli.ts"],
4
4
  "sourcesContent": [
5
- "#!/usr/bin/env node\n\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { deobfuscate } from '@requence/helpers'\nimport chalk from 'chalk'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\n\nconst y = yargs(hideBin(process.argv))\n\nfunction errorExit(title: string, text?: string): never {\n console.error(chalk.red.bold(title + '\\n'))\n if (text) {\n console.error(chalk.red(text) + '\\n')\n }\n process.exit(1)\n}\n\ny.command(\n 'generate-types',\n 'generates typescript types',\n (yargs) =>\n yargs\n .option('access-token', {\n describe: 'service key',\n })\n .option('outfile', {\n default: 'requence-env.d.ts',\n })\n .option('outdir', {\n default: '',\n }),\n async (argv) => {\n const token =\n argv.accessToken ??\n process.env.REQUENCE_ACCESS_TOKEN ??\n JSON.parse(fs.readFileSync('package.json', 'utf-8')).requence?.accessToken\n\n console.info() // newline\n if (!token) {\n errorExit(\n 'No access token found',\n `You can provide the access token as argument to ${chalk.bold('createTask')},\\nas environment variable ${chalk.bold('REQUENCE_ACCESS_TOKEN')} or\\nin your ${chalk.bold('package.json')} in ${chalk.bold('requence.accessToken')}`,\n )\n }\n\n const parts = deobfuscate(token)\n if (parts.length !== 3 || parts[0] !== 'service') {\n errorExit('Invalid service key')\n }\n\n const [, connectionString, serverUrl] = parts\n\n const response = await fetch(serverUrl + '/service/typescript', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${connectionString}`,\n },\n })\n\n if (!response.ok) {\n const error = await response.text()\n errorExit(error)\n }\n\n const text = await response.text()\n const data = `/* eslint-disable */\\n/* prettier-ignore */\\n\\n${text}`\n\n const file = path.join(argv.outdir || process.cwd(), argv.outfile)\n fs.writeFileSync(file, data)\n\n console.info(\n chalk.green(\n 'types saved to',\n chalk.bold(path.relative(process.cwd(), file)),\n ),\n )\n },\n)\n .scriptName('requence-service')\n .help('h')\n .demandCommand(1, 1)\n .strict()\n .parse()\n"
5
+ "#!/usr/bin/env node\n\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nimport { deobfuscate } from '@requence/helpers'\nimport chalk from 'chalk'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\n\nconst y = yargs(hideBin(process.argv))\n\nfunction errorExit(title: string, text?: string): never {\n console.error(chalk.red.bold(title + '\\n'))\n if (text) {\n console.error(chalk.red(text) + '\\n')\n }\n process.exit(1)\n}\n\ny.command(\n 'generate-types',\n 'generates typescript types',\n (yargs) =>\n yargs\n .option('access-token', {\n describe: 'service key',\n })\n .option('outfile', {\n default: 'requence-env.d.ts',\n })\n .option('outdir', {\n default: '',\n }),\n async (argv) => {\n const token =\n argv.accessToken ??\n process.env.REQUENCE_ACCESS_TOKEN ??\n JSON.parse(fs.readFileSync('package.json', 'utf-8')).requence?.accessToken\n\n console.info() // newline\n if (!token) {\n errorExit(\n 'No access token found',\n `You can provide the access token as argument to ${chalk.bold('createTask')},\\nas environment variable ${chalk.bold('REQUENCE_ACCESS_TOKEN')} or\\nin your ${chalk.bold('package.json')} in ${chalk.bold('requence.accessToken')}`,\n )\n }\n\n const parts = deobfuscate(token)\n if (parts.length !== 3 || parts[0] !== 'service') {\n errorExit('Invalid service key')\n }\n\n const [, connectionString, serverUrl] = parts\n\n const response = await fetch(serverUrl + '/service/types/typescript', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${connectionString}`,\n },\n })\n\n if (!response.ok) {\n const error = await response.text()\n errorExit(error)\n }\n\n const text = await response.text()\n const data = `/* eslint-disable */\\n/* prettier-ignore */\\n\\n${text}`\n\n const file = path.join(argv.outdir || process.cwd(), argv.outfile)\n fs.writeFileSync(file, data)\n\n console.info(\n chalk.green(\n 'types saved to',\n chalk.bold(path.relative(process.cwd(), file)),\n ),\n )\n },\n)\n .scriptName('requence-service')\n .help('h')\n .demandCommand(1, 1)\n .strict()\n .parse()\n"
6
6
  ],
7
- "mappings": ";;;;;;AAEA;AACA;AAGA;AACA;AACA;AAEA,IAAM,IAAI,MAAM,QAAQ,QAAQ,IAAI,CAAC;AAErC,SAAS,SAAS,CAAC,OAAe,MAAsB;AACtD,UAAQ,MAAM,MAAM,IAAI,KAAK,QAAQ;AAAA,CAAI,CAAC;AAC1C,MAAI,MAAM;AACR,YAAQ,MAAM,MAAM,IAAI,IAAI,IAAI;AAAA,CAAI;AAAA,EACtC;AACA,UAAQ,KAAK,CAAC;AAAA;AAGhB,EAAE,QACA,kBACA,8BACA,CAAC,WACC,OACG,OAAO,gBAAgB;AAAA,EACtB,UAAU;AACZ,CAAC,EACA,OAAO,WAAW;AAAA,EACjB,SAAS;AACX,CAAC,EACA,OAAO,UAAU;AAAA,EAChB,SAAS;AACX,CAAC,GACL,OAAO,SAAS;AACd,QAAM,QACJ,KAAK,eACL,QAAQ,IAAI,yBACZ,KAAK,MAAM,GAAG,aAAa,gBAAgB,OAAO,CAAC,EAAE,UAAU;AAEjE,UAAQ,KAAK;AACb,OAAK,OAAO;AACV,cACE,yBACA,mDAAmD,MAAM,KAAK,YAAY;AAAA,0BAA+B,MAAM,KAAK,uBAAuB;AAAA,UAAiB,MAAM,KAAK,cAAc,QAAQ,MAAM,KAAK,sBAAsB,GAChO;AAAA,EACF;AAEA,QAAM,QAAQ,YAAY,KAAK;AAC/B,MAAI,MAAM,WAAW,KAAK,MAAM,OAAO,WAAW;AAChD,cAAU,qBAAqB;AAAA,EACjC;AAEA,WAAS,kBAAkB,aAAa;AAExC,QAAM,WAAW,MAAM,MAAM,YAAY,uBAAuB;AAAA,IAC9D,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,eAAe,UAAU;AAAA,IAC3B;AAAA,EACF,CAAC;AAED,OAAK,SAAS,IAAI;AAChB,UAAM,QAAQ,MAAM,SAAS,KAAK;AAClC,cAAU,KAAK;AAAA,EACjB;AAEA,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,QAAM,OAAO;AAAA;AAAA;AAAA,EAAkD;AAE/D,QAAM,OAAO,KAAK,KAAK,KAAK,UAAU,QAAQ,IAAI,GAAG,KAAK,OAAO;AACjE,KAAG,cAAc,MAAM,IAAI;AAE3B,UAAQ,KACN,MAAM,MACJ,kBACA,MAAM,KAAK,KAAK,SAAS,QAAQ,IAAI,GAAG,IAAI,CAAC,CAC/C,CACF;AAAA,CAEJ,EACG,WAAW,kBAAkB,EAC7B,KAAK,GAAG,EACR,cAAc,GAAG,CAAC,EAClB,OAAO,EACP,MAAM;",
8
- "debugId": "E1A7B7E377FE0D8E64756E2164756E21",
7
+ "mappings": ";;;;;;AAEA;AACA;AAGA;AACA;AACA;AAEA,IAAM,IAAI,MAAM,QAAQ,QAAQ,IAAI,CAAC;AAErC,SAAS,SAAS,CAAC,OAAe,MAAsB;AACtD,UAAQ,MAAM,MAAM,IAAI,KAAK,QAAQ;AAAA,CAAI,CAAC;AAC1C,MAAI,MAAM;AACR,YAAQ,MAAM,MAAM,IAAI,IAAI,IAAI;AAAA,CAAI;AAAA,EACtC;AACA,UAAQ,KAAK,CAAC;AAAA;AAGhB,EAAE,QACA,kBACA,8BACA,CAAC,WACC,OACG,OAAO,gBAAgB;AAAA,EACtB,UAAU;AACZ,CAAC,EACA,OAAO,WAAW;AAAA,EACjB,SAAS;AACX,CAAC,EACA,OAAO,UAAU;AAAA,EAChB,SAAS;AACX,CAAC,GACL,OAAO,SAAS;AACd,QAAM,QACJ,KAAK,eACL,QAAQ,IAAI,yBACZ,KAAK,MAAM,GAAG,aAAa,gBAAgB,OAAO,CAAC,EAAE,UAAU;AAEjE,UAAQ,KAAK;AACb,OAAK,OAAO;AACV,cACE,yBACA,mDAAmD,MAAM,KAAK,YAAY;AAAA,0BAA+B,MAAM,KAAK,uBAAuB;AAAA,UAAiB,MAAM,KAAK,cAAc,QAAQ,MAAM,KAAK,sBAAsB,GAChO;AAAA,EACF;AAEA,QAAM,QAAQ,YAAY,KAAK;AAC/B,MAAI,MAAM,WAAW,KAAK,MAAM,OAAO,WAAW;AAChD,cAAU,qBAAqB;AAAA,EACjC;AAEA,WAAS,kBAAkB,aAAa;AAExC,QAAM,WAAW,MAAM,MAAM,YAAY,6BAA6B;AAAA,IACpE,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,eAAe,UAAU;AAAA,IAC3B;AAAA,EACF,CAAC;AAED,OAAK,SAAS,IAAI;AAChB,UAAM,QAAQ,MAAM,SAAS,KAAK;AAClC,cAAU,KAAK;AAAA,EACjB;AAEA,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,QAAM,OAAO;AAAA;AAAA;AAAA,EAAkD;AAE/D,QAAM,OAAO,KAAK,KAAK,KAAK,UAAU,QAAQ,IAAI,GAAG,KAAK,OAAO;AACjE,KAAG,cAAc,MAAM,IAAI;AAE3B,UAAQ,KACN,MAAM,MACJ,kBACA,MAAM,KAAK,KAAK,SAAS,QAAQ,IAAI,GAAG,IAAI,CAAC,CAC/C,CACF;AAAA,CAEJ,EACG,WAAW,kBAAkB,EAC7B,KAAK,GAAG,EACR,cAAc,GAAG,CAAC,EAClB,OAAO,EACP,MAAM;",
8
+ "debugId": "46FA48218F6D1DD064756E2164756E21",
9
9
  "names": []
10
10
  }
package/build/index.js CHANGED
@@ -19,85 +19,7 @@ var contextSchema = z.object({
19
19
  errors: z.record(z.string(), z.string()),
20
20
  dates: z.record(z.string(), z.string().datetime())
21
21
  });
22
- function isRecord(data) {
23
- return typeof data === "object" && data !== null && !Array.isArray(data);
24
- }
25
22
  var internalKey = Symbol.for("internal");
26
- function getInternalContext(contextHelper) {
27
- return contextHelper[internalKey];
28
- }
29
- function createContextHelper(context, nodes) {
30
- const results = new Map(nodes.map((node) => [
31
- node.id,
32
- {
33
- node,
34
- executionDate: node.id in context.dates ? new Date(context.dates[node.id]) : null,
35
- data: context.data[node.id] ?? null,
36
- error: context.errors[node.id] ?? null
37
- }
38
- ]));
39
- const lookUpMap = new Map;
40
- for (const node of nodes) {
41
- const alias = typeof node.meta?.mapAlias === "string" ? node.meta.mapAlias : ("alias" in node) && node.alias;
42
- if (alias) {
43
- if (lookUpMap.has(alias)) {
44
- lookUpMap.get(alias).push(node.id);
45
- } else {
46
- lookUpMap.set(alias, [node.id]);
47
- }
48
- }
49
- const name = typeof node.meta?.mapName === "string" ? node.meta.mapName : node.type === "service" && node.name;
50
- if (name) {
51
- if (lookUpMap.has(name)) {
52
- lookUpMap.get(name).push(node.id);
53
- } else {
54
- lookUpMap.set(name, [node.id]);
55
- }
56
- }
57
- }
58
- return {
59
- [internalKey]: {
60
- results
61
- },
62
- getInput() {
63
- return context.input;
64
- },
65
- getMeta() {
66
- return context.meta;
67
- },
68
- getData(alias) {
69
- if (alias) {
70
- const nodeIds = lookUpMap.get(alias);
71
- if (!nodeIds) {
72
- return null;
73
- }
74
- const combinedData = nodeIds.map((nodeId) => results.get(nodeId)?.data).filter(Boolean);
75
- if (combinedData.length === 0) {
76
- return null;
77
- }
78
- if (combinedData.length === 1) {
79
- return combinedData[0];
80
- }
81
- if (combinedData.every(isRecord)) {
82
- return combinedData.reduce((acc, data) => ({ ...acc, ...data }), {});
83
- }
84
- return combinedData;
85
- }
86
- return Array.from(results.values()).filter((result) => result.executionDate && isRecord(result.data)).toSorted((a, b) => a.executionDate.getTime() - b.executionDate.getTime()).reduce((acc, result) => ({
87
- ...acc,
88
- ...result.data
89
- }), isRecord(context.input) ? { ...context.input } : {});
90
- },
91
- getError(alias) {
92
- const nodeIds = lookUpMap.get(alias);
93
- if (!nodeIds) {
94
- return null;
95
- }
96
- return nodeIds.map((nodeId) => results.get(nodeId)?.error).filter((str) => typeof str === "string").join(`
97
- `);
98
- }
99
- };
100
- }
101
23
  // ../helpers/src/protocol/command.ts
102
24
  import { z as z5 } from "zod";
103
25
 
@@ -292,6 +214,14 @@ var jsonSchema7Schema = z2.lazy(() => z2.object({
292
214
  format: z2.string().optional(),
293
215
  contentMediaType: z2.string().optional(),
294
216
  contentEncoding: z2.string().optional()
217
+ }).transform((obj) => {
218
+ if (obj.type === "object" && typeof obj.additionalProperties === "undefined") {
219
+ return {
220
+ ...obj,
221
+ additionalProperties: false
222
+ };
223
+ }
224
+ return obj;
295
225
  }));
296
226
  var jsonSchema7ObjectSchema = z2.object({
297
227
  type: z2.literal("object"),
@@ -300,7 +230,10 @@ var jsonSchema7ObjectSchema = z2.object({
300
230
  description: z2.string().optional(),
301
231
  maxProperties: z2.number().int().nonnegative().optional(),
302
232
  minProperties: z2.number().int().nonnegative().optional(),
303
- additionalProperties: z2.boolean().optional()
233
+ additionalProperties: z2.boolean().default(false)
234
+ });
235
+ var jsonSchema7NullSchema = z2.object({
236
+ type: z2.literal("null")
304
237
  });
305
238
 
306
239
  // ../helpers/src/protocol/node.ts
@@ -388,19 +321,19 @@ var entryNodeSchema = z3.object({
388
321
  type: z3.literal("entry"),
389
322
  id: z3.literal("__entry__").default("__entry__"),
390
323
  output: defaultOutputsSchema,
391
- inputSchema: jsonSchema7Schema.nullable().optional(),
392
- metaSchema: jsonSchema7Schema.nullable().optional(),
324
+ inputSchema: jsonSchema7Schema.default({ type: "null" }),
325
+ metaSchema: jsonSchema7Schema.default({ type: "null" }),
393
326
  meta: metaSchema
394
327
  });
395
328
  var serviceNodeSchema = z3.object({
396
329
  type: z3.literal("service"),
397
330
  output: outputsSchema,
398
- inputSchema: jsonSchema7ObjectSchema.nullable().optional(),
331
+ inputSchema: z3.union([jsonSchema7ObjectSchema, jsonSchema7NullSchema]).default({ type: "null" }),
399
332
  id: idSchema,
400
333
  name: z3.string(),
401
334
  version: z3.string(),
402
335
  configuration: z3.any().optional(),
403
- configurationSchema: jsonSchema7Schema.nullable().optional(),
336
+ configurationSchema: jsonSchema7Schema.default({ type: "null" }),
404
337
  alias: z3.string().optional(),
405
338
  ttl: z3.number().int().min(1).optional(),
406
339
  retry: z3.number().int().min(1).optional(),
@@ -417,7 +350,6 @@ var catchNodeSchema = z3.object({
417
350
  var logicNodeSchema = z3.object({
418
351
  type: z3.literal("logic"),
419
352
  alias: z3.string().optional(),
420
- inputSchema: jsonSchema7ObjectSchema.nullable().optional(),
421
353
  output: outputsSchema,
422
354
  id: idSchema,
423
355
  script: z3.string(),
@@ -483,6 +415,8 @@ var nodesSchema = z4.array(nodeSchema).transform((nodes) => {
483
415
  nodes.unshift({
484
416
  type: "entry",
485
417
  id: "__entry__",
418
+ inputSchema: { type: "null" },
419
+ metaSchema: { type: "null" },
486
420
  output: [{ default: true, exit: false, target: firstNodeId }]
487
421
  });
488
422
  }
@@ -686,17 +620,38 @@ var OUTPUT_VALUE = Symbol("output_value");
686
620
  function isOutputValue(value) {
687
621
  return value !== null && typeof value === "object" && OUTPUT_VALUE in value;
688
622
  }
623
+ function isRecord(data) {
624
+ return typeof data === "object" && data !== null && !Array.isArray(data);
625
+ }
689
626
  function unwrapResult(result) {
690
627
  if (isOutputValue(result)) {
691
628
  return { value: result.value, outputName: result[OUTPUT_VALUE] };
692
629
  }
693
630
  return { value: result, outputName: null };
694
631
  }
695
- function createExtendedContextHelper(options) {
696
- const contextHelper = createContextHelper(options.context, options.nodes);
697
- const internalContext = getInternalContext(contextHelper);
698
- return Object.assign(contextHelper, {
632
+ function createContextHelper(options) {
633
+ const nodes2 = new Map(options.nodes.map((node2) => [
634
+ node2.id,
635
+ Object.assign(node2, {
636
+ executionDate: node2.id in options.context.dates ? new Date(options.context.dates[node2.id]) : null,
637
+ data: options.context.data[node2.id] ?? null,
638
+ error: options.context.errors[node2.id] ?? null
639
+ })
640
+ ]));
641
+ return {
699
642
  taskId: options.taskId,
643
+ getInput() {
644
+ return options.context.input;
645
+ },
646
+ getMeta() {
647
+ return options.context.meta;
648
+ },
649
+ getData() {
650
+ return Array.from(nodes2.values()).filter((result) => result.executionDate && isRecord(result.data)).toSorted((a, b) => a.executionDate.getTime() - b.executionDate.getTime()).reduce((acc, result) => ({
651
+ ...acc,
652
+ ...result.data
653
+ }), isRecord(options.context.input) ? { ...options.context.input } : {});
654
+ },
700
655
  toOutput(name, value) {
701
656
  return {
702
657
  [OUTPUT_VALUE]: name,
@@ -705,14 +660,17 @@ function createExtendedContextHelper(options) {
705
660
  },
706
661
  defer: options.onDefer,
707
662
  getConfiguration() {
708
- const result = internalContext.results.get(options.serviceId);
709
- if (result?.node.type === "service") {
710
- return result.node.configuration ?? null;
663
+ const result = nodes2.get(options.serviceId);
664
+ if (result?.type === "service") {
665
+ return result.configuration ?? null;
711
666
  }
712
667
  return null;
713
668
  },
714
669
  getNode() {
715
- return internalContext.results.get(options.serviceId).node;
670
+ return nodes2.get(options.serviceId);
671
+ },
672
+ getNodes() {
673
+ return Array.from(nodes2.values());
716
674
  },
717
675
  state: createObjectProxy(options.state, options.onStateChange),
718
676
  debug: {
@@ -735,7 +693,7 @@ function createExtendedContextHelper(options) {
735
693
  abort(reason) {
736
694
  throw new AbortError(reason);
737
695
  }
738
- });
696
+ };
739
697
  }
740
698
 
741
699
  // src/createAmqpConnection.ts
@@ -845,7 +803,7 @@ function createConnection({
845
803
  }
846
804
  };
847
805
  let immediateUpdateState;
848
- const extendedContext = createExtendedContextHelper({
806
+ const extendedContext = createContextHelper({
849
807
  serviceId,
850
808
  context: payload.context,
851
809
  nodes: payload.meta.nodes,
@@ -1080,5 +1038,5 @@ export {
1080
1038
  createService
1081
1039
  };
1082
1040
 
1083
- //# debugId=1AE0F5F375D764C164756E2164756E21
1041
+ //# debugId=41D15659E9341B8064756E2164756E21
1084
1042
  //# sourceMappingURL=index.js.map
@@ -5,18 +5,18 @@
5
5
  "import { readFileSync } from 'node:fs'\n\nimport { deobfuscate } from '@requence/helpers'\nimport { z } from 'zod'\n\nimport createAmqpConnection, {\n type ConnectionApi,\n type MessageHandler,\n} from './createAmqpConnection.ts'\n\nexport type ServiceApi<V extends keyof Requence.Version | (string & {})> =\n ConnectionApi<V>\n\ninterface ServiceOptions<V extends string> {\n accessToken?: string\n version: V\n prefetch?: number\n connectionTimeout?: number\n silent?: boolean\n}\n\nconst connectionOptionsSchema = z.object({\n url: z.union([\n z\n .string()\n .regex(/^amqps?:\\/\\/(.+):(.+)@(.+)$/)\n .transform((str) => new URL(str)),\n z\n .instanceof(URL)\n .refine((url) => url.protocol.match(/^amqps?:/), 'Wrong protocol'),\n ]),\n version: z.string(),\n silent: z.boolean().optional(),\n prefetch: z.number().int().optional(),\n connectionTimeout: z.number().positive().default(3_000),\n})\n\nexport function createService<V extends keyof Requence.Version | (string & {})>(\n version: V,\n messageHandler: MessageHandler<V>,\n): ServiceApi<V>\nexport function createService<V extends keyof Requence.Version | (string & {})>(\n options: ServiceOptions<V>,\n messageHandler: MessageHandler<V>,\n): ServiceApi<V>\nexport function createService<V extends keyof Requence.Version | (string & {})>(\n optionsOrVersion: ServiceOptions<V> | string,\n optionalMessageHandler?: MessageHandler<V>,\n) {\n let options: ServiceOptions<V>\n let messageHandler: MessageHandler<V>\n if (typeof optionsOrVersion === 'string') {\n options = {\n version: optionsOrVersion as V,\n }\n messageHandler = optionalMessageHandler as MessageHandler<V>\n } else {\n options = optionsOrVersion\n messageHandler = optionalMessageHandler as MessageHandler<V>\n }\n\n const token =\n options.accessToken ??\n process.env.REQUENCE_ACCESS_TOKEN ??\n JSON.parse(readFileSync('package.json', 'utf-8')).requence?.accessToken\n\n if (!token) {\n throw new Error('No service key found')\n }\n\n const parts = deobfuscate(token)\n if (parts.length < 2 || parts[0] !== 'service') {\n throw new Error('Invalid service key')\n }\n\n const connectionOptions = {\n ...options,\n url: parts[1],\n }\n\n return createAmqpConnection<V>(\n connectionOptionsSchema.parse(connectionOptions),\n messageHandler,\n )\n}\n",
6
6
  "import { z } from 'zod'\n\nimport type { Nodes } from '../protocol/nodes.ts'\n\nexport const contextSchema = z.object({\n input: z.any(),\n meta: z.any(),\n tenant: z.object({ name: z.string() }),\n data: z.record(z.string(), z.any()),\n errors: z.record(z.string(), z.string()),\n dates: z.record(z.string(), z.string().datetime()),\n})\n\nexport type Context = z.infer<typeof contextSchema>\n\nfunction isRecord(data: unknown): data is Record<string, any> {\n return typeof data === 'object' && data !== null && !Array.isArray(data)\n}\n\nconst internalKey = Symbol.for('internal') as unknown as 'internal'\n\nexport function getInternalContext(contextHelper: ContextHelper) {\n return (contextHelper as InternalContextHelper)[internalKey]\n}\n\nexport function createContextHelper(context: Context, nodes: Nodes) {\n const results = new Map(\n nodes.map((node) => [\n node.id,\n {\n node,\n executionDate:\n node.id in context.dates ? new Date(context.dates[node.id]) : null,\n data: context.data[node.id] ?? null,\n error: context.errors[node.id] ?? null,\n },\n ]),\n )\n\n const lookUpMap = new Map<string, Array<string>>()\n\n for (const node of nodes) {\n const alias =\n typeof node.meta?.mapAlias === 'string'\n ? node.meta.mapAlias\n : 'alias' in node && node.alias\n if (alias) {\n if (lookUpMap.has(alias)) {\n lookUpMap.get(alias)!.push(node.id)\n } else {\n lookUpMap.set(alias, [node.id])\n }\n }\n\n const name =\n typeof node.meta?.mapName === 'string'\n ? node.meta.mapName\n : node.type === 'service' && node.name\n if (name) {\n if (lookUpMap.has(name)) {\n lookUpMap.get(name)!.push(node.id)\n } else {\n lookUpMap.set(name, [node.id])\n }\n }\n }\n\n return {\n [internalKey]: {\n results,\n },\n getInput(): unknown {\n return context.input\n },\n getMeta(): unknown {\n return context.meta\n },\n getData(alias?: string) {\n if (alias) {\n const nodeIds = lookUpMap.get(alias)\n if (!nodeIds) {\n return null\n }\n\n const combinedData = nodeIds\n .map((nodeId) => results.get(nodeId)?.data)\n .filter(Boolean)\n\n if (combinedData.length === 0) {\n return null\n }\n\n if (combinedData.length === 1) {\n return combinedData[0]\n }\n\n if (combinedData.every(isRecord)) {\n return combinedData.reduce((acc, data) => ({ ...acc, ...data }), {})\n }\n return combinedData\n }\n\n return Array.from(results.values())\n .filter((result) => result.executionDate && isRecord(result.data))\n .toSorted(\n (a, b) => a.executionDate!.getTime() - b.executionDate!.getTime(),\n )\n .reduce(\n (acc, result) => ({\n ...acc,\n ...result.data,\n }),\n isRecord(context.input) ? { ...context.input } : {},\n )\n },\n getError(alias: string) {\n const nodeIds = lookUpMap.get(alias)\n if (!nodeIds) {\n return null\n }\n return nodeIds\n .map((nodeId) => results.get(nodeId)?.error)\n .filter((str) => typeof str === 'string')\n .join('\\n')\n },\n }\n}\n\ntype InternalContextHelper = ReturnType<typeof createContextHelper>\nexport type ContextHelper = Omit<InternalContextHelper, typeof internalKey>\n",
7
7
  "import { z } from 'zod'\n\nimport { nodesSchema } from './nodes.ts'\n\nexport const abortSchema = z.object({\n type: z.literal('ABORT'),\n reason: z.string().optional(),\n})\n\nexport type Abort = z.infer<typeof abortSchema>\n\nexport const nodeOptionsSchema = z.object({\n maxExecutions: z.number().int().min(0).optional().default(10),\n})\n\nexport type NodeOptions = z.infer<typeof nodeOptionsSchema>\nexport type NodeOptionsInput = z.input<typeof nodeOptionsSchema>\n\nexport const createNodesSchema = z.object({\n type: z.literal('CREATE_NODES'),\n nodes: nodesSchema,\n input: z.any(),\n meta: z.any(),\n options: nodeOptionsSchema,\n})\n\nexport const commandSchema = z.union([abortSchema, createNodesSchema])\n\nexport type Command = z.infer<typeof commandSchema>\nexport type CommandInput = z.input<typeof commandSchema>\n",
8
- "import { ZodError, z } from 'zod'\n\nimport createNodeMaps from './createNodeMaps.ts'\nimport getNodeOutputs from './getNodeOutputs.ts'\nimport getPossiblePaths from './getPossiblePaths.ts'\nimport identifyNode from './identifyNode.ts'\nimport { nodeSchema } from './node.ts'\n\nclass NodesError extends ZodError {\n constructor(\n message: string,\n params?: Record<string, any>,\n path: Array<string | number> = [],\n ) {\n super([\n {\n code: z.ZodIssueCode.custom,\n message,\n path,\n params,\n },\n ])\n }\n}\n\nexport const nodesSchema = z\n .array(nodeSchema)\n // resolve all aliases / names\n .transform((nodes) => {\n const aliases = new Map<string, string[]>()\n const names = new Map<string, string[]>()\n let entryNode: EntryNode | null = null\n\n let firstNodeId: string | null = null\n\n for (const node of nodes) {\n if (node.type === 'entry') {\n entryNode = node\n }\n\n if ((node.type === 'service' || node.type === 'logic') && !firstNodeId) {\n firstNodeId = node.id\n }\n\n if ('alias' in node && node.alias) {\n if (!aliases.has(node.alias)) {\n aliases.set(node.alias, [])\n }\n aliases.get(node.alias)!.push(node.id)\n }\n\n if ('name' in node && node.name) {\n if (!names.has(node.name)) {\n names.set(node.name, [])\n }\n names.get(node.name)!.push(node.id)\n }\n }\n\n // assume entry with first service id\n if (!entryNode && firstNodeId) {\n nodes.unshift({\n type: 'entry',\n id: '__entry__',\n output: [{ default: true, exit: false, target: firstNodeId }],\n })\n }\n\n const resolveOutput = (identifier: string) => {\n if (aliases.get(identifier)?.length === 1) {\n return aliases.get(identifier)![0]\n }\n\n if (names.get(identifier)?.length === 1) {\n return names.get(identifier)![0]\n }\n\n return identifier\n }\n\n return nodes.map((node) => {\n node.output = node.output.map((output) =>\n 'target' in output\n ? {\n ...output,\n target: resolveOutput(output.target),\n }\n : output,\n )\n\n if ('subject' in node) {\n node.subject = resolveOutput(node.subject)\n }\n\n return node\n })\n })\n .transform((nodes) => {\n const { getInputs, getNode } = createNodeMaps(nodes)\n const nodeAliases = new Set<string>()\n const nodeIds = new Set<string>()\n const catchSubjects = new Map<string, CatchNode>()\n\n const identify = (nodeId: string) => identifyNode(nodeId, getNode)\n\n for (const node of nodes) {\n // aggregate ids aliases\n\n if (nodeIds.has(node.id)) {\n throw new NodesError('id is not unique', {\n id: node.id,\n })\n }\n nodeIds.add(node.id)\n\n // aggregate aliases\n if ('alias' in node && node.alias) {\n if (nodeAliases.has(node.alias)) {\n throw new NodesError('alias is not unique', {\n alias: node.alias,\n })\n }\n nodeAliases.add(node.alias)\n }\n\n // aggregate cache subjects\n if (node.type === 'catch') {\n if (catchSubjects.has(node.subject)) {\n throw new NodesError('only one catch node per service allowed', {\n id: node.subject,\n })\n }\n catchSubjects.set(node.subject, node)\n }\n }\n\n if (!getNode('__entry__')) {\n throw new NodesError('missing entry node')\n }\n\n if (getInputs('__exit__').length === 0) {\n throw new NodesError('no path leads to exit')\n }\n\n for (const catchNode of nodes.filter((node) => node.type === 'catch')) {\n if (!getNode(catchNode.subject)) {\n throw new NodesError('catch node has invalid subject', {\n id: catchNode.subject,\n })\n }\n }\n for (const node of nodes) {\n if (node.type === 'or') {\n const inputs = getInputs(node)\n\n if (!inputs || inputs.length < 2) {\n throw new NodesError('or nodes need at least 2 inputs')\n }\n }\n\n for (const targetNodeId of getNodeOutputs(node)) {\n if (targetNodeId !== '__exit__' && !getNode(targetNodeId)) {\n throw new NodesError('missing node', {\n id: targetNodeId,\n })\n }\n }\n }\n\n const possiblePaths = getPossiblePaths({\n getInputs,\n getNode,\n onMissingInputs: (_node, path) => {\n throw new NodesError('no path from entry to node', {\n path: path.map(identify),\n })\n },\n })\n\n // none of the possible paths includes ENTRY\n if (\n possiblePaths.every((possiblePath) => !possiblePath.includes('__entry__'))\n ) {\n throw new NodesError('no path from entry to exit')\n }\n\n for (const possiblePath of possiblePaths) {\n for (const pathSegment of possiblePath) {\n const node = pathSegment === '__exit__' ? null : getNode(pathSegment)\n if (node?.type === 'catch' && possiblePath.includes(node.subject)) {\n throw new NodesError(\n 'Unresolvable, inputs needs both catch and subject',\n {\n path: possiblePath.map(identify),\n },\n )\n }\n }\n }\n\n return nodes\n })\n\nexport type InputNodes = z.input<typeof nodesSchema>\nexport type Nodes = z.infer<typeof nodesSchema>\nexport type Node = Nodes[number]\nexport type EntryNode<N = Node> = N extends { type: 'entry' } ? N : never\nexport type ServiceNode<N = Node> = N extends { type: 'service' } ? N : never\nexport type CatchNode<N = Node> = N extends { type: 'catch' } ? N : never\nexport type OrNode<N = Node> = N extends { type: 'or' } ? N : never\nexport type LogicNode<N = Node> = N extends { type: 'logic' } ? N : never\nexport type OutputNode<N = Node> = N extends { output: any } ? N : never\n",
8
+ "import { ZodError, z } from 'zod'\n\nimport createNodeMaps from './createNodeMaps.ts'\nimport getNodeOutputs from './getNodeOutputs.ts'\nimport getPossiblePaths from './getPossiblePaths.ts'\nimport identifyNode from './identifyNode.ts'\nimport { nodeSchema } from './node.ts'\n\nclass NodesError extends ZodError {\n constructor(\n message: string,\n params?: Record<string, any>,\n path: Array<string | number> = [],\n ) {\n super([\n {\n code: z.ZodIssueCode.custom,\n message,\n path,\n params,\n },\n ])\n }\n}\n\nexport const nodesSchema = z\n .array(nodeSchema)\n // resolve all aliases / names\n .transform((nodes) => {\n const aliases = new Map<string, string[]>()\n const names = new Map<string, string[]>()\n let entryNode: EntryNode | null = null\n\n let firstNodeId: string | null = null\n\n for (const node of nodes) {\n if (node.type === 'entry') {\n entryNode = node\n }\n\n if ((node.type === 'service' || node.type === 'logic') && !firstNodeId) {\n firstNodeId = node.id\n }\n\n if ('alias' in node && node.alias) {\n if (!aliases.has(node.alias)) {\n aliases.set(node.alias, [])\n }\n aliases.get(node.alias)!.push(node.id)\n }\n\n if ('name' in node && node.name) {\n if (!names.has(node.name)) {\n names.set(node.name, [])\n }\n names.get(node.name)!.push(node.id)\n }\n }\n\n // assume entry with first service id\n if (!entryNode && firstNodeId) {\n nodes.unshift({\n type: 'entry',\n id: '__entry__',\n inputSchema: { type: 'null' },\n metaSchema: { type: 'null' },\n output: [{ default: true, exit: false, target: firstNodeId }],\n })\n }\n\n const resolveOutput = (identifier: string) => {\n if (aliases.get(identifier)?.length === 1) {\n return aliases.get(identifier)![0]\n }\n\n if (names.get(identifier)?.length === 1) {\n return names.get(identifier)![0]\n }\n\n return identifier\n }\n\n return nodes.map((node) => {\n node.output = node.output.map((output) =>\n 'target' in output\n ? {\n ...output,\n target: resolveOutput(output.target),\n }\n : output,\n )\n\n if ('subject' in node) {\n node.subject = resolveOutput(node.subject)\n }\n\n return node\n })\n })\n .transform((nodes) => {\n const { getInputs, getNode } = createNodeMaps(nodes)\n const nodeAliases = new Set<string>()\n const nodeIds = new Set<string>()\n const catchSubjects = new Map<string, CatchNode>()\n\n const identify = (nodeId: string) => identifyNode(nodeId, getNode)\n\n for (const node of nodes) {\n // aggregate ids aliases\n\n if (nodeIds.has(node.id)) {\n throw new NodesError('id is not unique', {\n id: node.id,\n })\n }\n nodeIds.add(node.id)\n\n // aggregate aliases\n if ('alias' in node && node.alias) {\n if (nodeAliases.has(node.alias)) {\n throw new NodesError('alias is not unique', {\n alias: node.alias,\n })\n }\n nodeAliases.add(node.alias)\n }\n\n // aggregate cache subjects\n if (node.type === 'catch') {\n if (catchSubjects.has(node.subject)) {\n throw new NodesError('only one catch node per service allowed', {\n id: node.subject,\n })\n }\n catchSubjects.set(node.subject, node)\n }\n }\n\n if (!getNode('__entry__')) {\n throw new NodesError('missing entry node')\n }\n\n if (getInputs('__exit__').length === 0) {\n throw new NodesError('no path leads to exit')\n }\n\n for (const catchNode of nodes.filter((node) => node.type === 'catch')) {\n if (!getNode(catchNode.subject)) {\n throw new NodesError('catch node has invalid subject', {\n id: catchNode.subject,\n })\n }\n }\n for (const node of nodes) {\n if (node.type === 'or') {\n const inputs = getInputs(node)\n\n if (!inputs || inputs.length < 2) {\n throw new NodesError('or nodes need at least 2 inputs')\n }\n }\n\n for (const targetNodeId of getNodeOutputs(node)) {\n if (targetNodeId !== '__exit__' && !getNode(targetNodeId)) {\n throw new NodesError('missing node', {\n id: targetNodeId,\n })\n }\n }\n }\n\n const possiblePaths = getPossiblePaths({\n getInputs,\n getNode,\n onMissingInputs: (_node, path) => {\n throw new NodesError('no path from entry to node', {\n path: path.map(identify),\n })\n },\n })\n\n // none of the possible paths includes ENTRY\n if (\n possiblePaths.every((possiblePath) => !possiblePath.includes('__entry__'))\n ) {\n throw new NodesError('no path from entry to exit')\n }\n\n for (const possiblePath of possiblePaths) {\n for (const pathSegment of possiblePath) {\n const node = pathSegment === '__exit__' ? null : getNode(pathSegment)\n if (node?.type === 'catch' && possiblePath.includes(node.subject)) {\n throw new NodesError(\n 'Unresolvable, inputs needs both catch and subject',\n {\n path: possiblePath.map(identify),\n },\n )\n }\n }\n }\n\n return nodes\n })\n\nexport type InputNodes = z.input<typeof nodesSchema>\nexport type Nodes = z.infer<typeof nodesSchema>\nexport type Node = Nodes[number]\nexport type EntryNode<N = Node> = N extends { type: 'entry' } ? N : never\nexport type ServiceNode<N = Node> = N extends { type: 'service' } ? N : never\nexport type CatchNode<N = Node> = N extends { type: 'catch' } ? N : never\nexport type OrNode<N = Node> = N extends { type: 'or' } ? N : never\nexport type LogicNode<N = Node> = N extends { type: 'logic' } ? N : never\nexport type OutputNode<N = Node> = N extends { output: any } ? N : never\n",
9
9
  "import type { Node } from './nodes.ts'\nimport type { NamedString } from './types.d.ts'\n\nexport default function getNodeOutputs(\n node: Node,\n outputName?: NamedString<'default'>,\n): Array<NamedString<'exit'>> {\n const outputs = !outputName\n ? node.output\n : outputName === '__default__'\n ? node.output.filter((o) => o.default)\n : node.output.filter((o) => 'name' in o && o.name === outputName)\n\n const outputTargets = new Set<NamedString<'exit'>>()\n for (const output of outputs) {\n if (output.exit) {\n outputTargets.add('__exit__')\n } else {\n outputTargets.add(output.target)\n }\n }\n\n return Array.from(outputTargets)\n}\n",
10
10
  "import getNodeOutputs from './getNodeOutputs.ts'\nimport type { EntryNode, Node, Nodes } from './nodes.ts'\nimport type { NamedString } from './types.d.ts'\n\nexport interface NodeMaps {\n getNode(node: '__entry__'): EntryNode\n getNode(nodeId: string): Node | undefined\n getInputs(node: NamedString<'exit'> | Node): Array<Node>\n lookupNode(nameOrAlias: string): Node | undefined\n}\n\nexport default function createNodeMaps(nodes: Nodes): NodeMaps {\n const nodesByIdMap = new Map<NamedString<'__entry__'>, Node>()\n const nodesByNameOrAlias = new Map<string, Node>()\n const inputsNodeMap = new Map<NamedString<'__exit__'>, Array<Node>>([\n ['__exit__', []],\n ])\n\n for (const node of nodes) {\n nodesByIdMap.set(node.id, node)\n if ('alias' in node && node.alias) {\n nodesByNameOrAlias.set(node.alias, node)\n }\n if ('name' in node && node.name) {\n nodesByNameOrAlias.set(node.name, node)\n }\n }\n\n for (const node of nodes) {\n for (const outputNodeId of getNodeOutputs(node)) {\n if (!inputsNodeMap.has(outputNodeId)) {\n inputsNodeMap.set(outputNodeId, [])\n }\n inputsNodeMap.get(outputNodeId)!.push(node)\n }\n }\n\n return {\n getInputs(node) {\n if (typeof node === 'string') {\n return inputsNodeMap.get(node) ?? []\n }\n if (node.type === 'catch' || node.type === 'entry') {\n return []\n }\n\n return inputsNodeMap.get(node.id) ?? []\n },\n getNode(nodeId) {\n return nodesByIdMap.get(nodeId) as any\n },\n lookupNode(nameOrAlias) {\n return nodesByNameOrAlias.get(nameOrAlias)\n },\n }\n}\n",
11
11
  "import type { NodeMaps } from './createNodeMaps.ts'\nimport type { Node } from './nodes.ts'\n\ntype PathSegment = '__entry__' | '__exit__' | (string & {})\n\ninterface GetPossiblePathsOptions\n extends Pick<NodeMaps, 'getInputs' | 'getNode'> {\n onMissingInputs?: (node: Node, path: Array<PathSegment>) => void\n}\n\nexport default function getPossiblePaths({\n getInputs,\n getNode,\n onMissingInputs,\n}: GetPossiblePathsOptions) {\n const sets = new Set<Set<PathSegment>>()\n const followPath = (nodeId: PathSegment, set: Set<PathSegment>) => {\n if (nodeId === '__entry__') {\n return\n }\n\n const node = nodeId !== '__exit__' ? getNode(nodeId) : null\n\n const isOrNode = node?.type === 'or'\n\n const inputNodes = getInputs(nodeId)\n if (node && node.type !== 'catch' && inputNodes.length === 0) {\n onMissingInputs?.(node, Array.from(set).toReversed())\n }\n for (const inputNode of inputNodes) {\n let usedSet = set\n if (isOrNode) {\n usedSet = new Set(set)\n sets.add(usedSet)\n }\n const inputNodeId = inputNode.id\n if (inputNode.type !== 'or') {\n // cycle detected\n if (usedSet.has(inputNodeId)) {\n return\n }\n usedSet.add(inputNodeId)\n }\n followPath(inputNodeId, usedSet)\n }\n if (isOrNode) {\n sets.delete(set)\n }\n }\n const set = new Set<PathSegment>(['__exit__'])\n sets.add(set)\n followPath('__exit__', set)\n\n return Array.from(sets, (set) => Array.from(set).toReversed())\n}\n",
12
12
  "import type { NodeMaps } from './createNodeMaps.ts'\nimport type { NamedString } from './types.d.ts'\n\nexport default function identifyNode(\n nodeId: NamedString<'__entry__' | '__exit__'>,\n getNode: NodeMaps['getNode'],\n): string {\n if (nodeId === '__entry__') {\n return 'ENTRY'\n }\n\n if (nodeId === '__exit__') {\n return 'EXIT'\n }\n\n if (typeof nodeId === 'symbol') {\n return String(nodeId)\n }\n\n const node = getNode(nodeId)\n\n if (!node) {\n return `Unknown[${nodeId}]`\n }\n\n switch (node.type) {\n case 'service': {\n return `Service[${node.alias || node.name}]`\n }\n case 'catch': {\n return `Catch[${identifyNode(node.subject, getNode)}]`\n }\n case 'logic': {\n return `Logic[${node.alias || node.id}]`\n }\n case 'entry': {\n return 'ENTRY'\n }\n case 'or': {\n return `OR[${node.alias || node.id}]`\n }\n }\n}\n",
13
- "import { z } from 'zod'\n\nimport { jsonSchema7ObjectSchema, jsonSchema7Schema } from './jsonSchema.ts'\n\ntype Prettify<T> = {\n [K in keyof T]: T[K]\n} & {}\n\nconst outputDefinitionSchema = z\n .object({\n schema: jsonSchema7Schema.nullable().optional(),\n })\n\n .and(\n z.union([\n z.object({\n default: z.literal(false).default(false),\n name: z.string().min(1),\n }),\n z.object({\n default: z.literal(true).default(true),\n }),\n ]),\n )\n .and(\n z.union([\n z.object({\n exit: z.literal(false).default(false),\n target: z.string().min(1),\n }),\n z.object({ exit: z.literal(true) }),\n ]),\n )\n\nexport type Output = Prettify<z.infer<typeof outputDefinitionSchema>>\n\nconst defaultOutputSchema = z\n .union([\n z.string().min(1),\n z.object({ default: z.literal(true).default(true), exit: z.literal(true) }),\n z.object({\n default: z.literal(true).default(true),\n exit: z.literal(false).default(false),\n target: z.string().min(1),\n }),\n ])\n .transform<Output>((output) => {\n if (typeof output === 'string') {\n return {\n default: true,\n exit: false,\n target: output,\n }\n }\n\n return output\n })\n\nconst outputSchema = z\n .union([z.string().min(1), outputDefinitionSchema])\n .transform<Output>((output) => {\n if (typeof output === 'string') {\n return {\n default: true,\n exit: false,\n target: output,\n }\n }\n\n return output\n })\n\nfunction validateOutputs(outputs: Array<Output>, ctx: z.RefinementCtx) {\n const exitOutputs = new Set(\n outputs\n .filter((output) => output.exit)\n .map((output) => (output.default ? '__default__' : output.name)),\n )\n\n outputs\n .filter((output) => !output.exit)\n .forEach((output) => {\n const name = output.default ? '__default__' : output.name\n if (exitOutputs.has(name)) {\n ctx.addIssue({\n code: 'custom',\n message: output.default\n ? `default exit output cannot be mixed with target output \"${output.target}\"`\n : `named exit output \"${name}\" cannot be mixed with target output \"${output.target}\"`,\n })\n }\n })\n\n const targets = new Map<string, Set<string>>()\n\n outputs.forEach((output) => {\n const name = output.default ? '__default__' : output.name\n const target = output.exit ? '__exit__' : output.target\n if (!targets.has(name)) {\n targets.set(name, new Set())\n }\n\n const knownTargets = targets.get(name)!\n if (knownTargets.has(target)) {\n ctx.addIssue({\n code: 'custom',\n message: [\n output.default\n ? 'duplicate default output'\n : `duplicate named output \"${name}\"`,\n output.exit ? 'for exit' : `for target \"${target}\"`,\n ].join(' '),\n })\n }\n knownTargets.add(target)\n })\n}\n\nconst defaultOutputsSchema = z\n .array(defaultOutputSchema)\n .default([])\n .superRefine(validateOutputs)\n\nconst outputsSchema = z\n .array(outputSchema)\n .default([])\n .superRefine(validateOutputs)\n\nconst idSchema = z\n .string()\n .uuid()\n .default(() => crypto.randomUUID())\n\nconst metaSchema = z.record(z.any()).optional()\n\nexport const entryNodeSchema = z.object({\n type: z.literal('entry'),\n id: z.literal('__entry__').default('__entry__'),\n output: defaultOutputsSchema,\n inputSchema: jsonSchema7Schema.nullable().optional(),\n metaSchema: jsonSchema7Schema.nullable().optional(),\n meta: metaSchema,\n})\n\nexport type InputEntryNode = z.input<typeof entryNodeSchema>\n\nexport const serviceNodeSchema = z.object({\n type: z.literal('service'),\n output: outputsSchema,\n inputSchema: jsonSchema7ObjectSchema.nullable().optional(),\n id: idSchema,\n name: z.string(),\n version: z.string(),\n configuration: z.any().optional(),\n configurationSchema: jsonSchema7Schema.nullable().optional(),\n alias: z.string().optional(),\n ttl: z.number().int().min(1).optional(),\n retry: z.number().int().min(1).optional(),\n retryDelay: z.number().int().min(100).optional(),\n meta: metaSchema,\n})\nexport type InputServiceNode = z.input<typeof serviceNodeSchema>\n\nexport const catchNodeSchema = z.object({\n type: z.literal('catch'),\n output: outputsSchema,\n id: idSchema,\n subject: z.string(),\n meta: metaSchema,\n})\nexport type InputCacheNode = z.input<typeof catchNodeSchema>\n\nexport const logicNodeSchema = z.object({\n type: z.literal('logic'),\n alias: z.string().optional(),\n inputSchema: jsonSchema7ObjectSchema.nullable().optional(),\n output: outputsSchema,\n id: idSchema,\n script: z.string(),\n concurrency: z.boolean().default(true),\n language: z\n .enum(['javascript', 'python', 'typescript'])\n .default('javascript'),\n\n maxExecutionTime: z.number().int().min(0).default(200),\n meta: metaSchema,\n})\nexport type InputLogicNode = z.input<typeof logicNodeSchema>\n\nexport const orNodeSchema = z.object({\n id: idSchema,\n type: z.literal('or'),\n alias: z.string().optional(),\n output: outputsSchema,\n meta: metaSchema,\n})\nexport type InputOrNode = z.input<typeof orNodeSchema>\n\nexport const nodeSchema = z.discriminatedUnion('type', [\n entryNodeSchema,\n serviceNodeSchema,\n catchNodeSchema,\n logicNodeSchema,\n orNodeSchema,\n])\nexport type InputNode = z.input<typeof nodeSchema>\n",
14
- "import type { JSONSchema7 as JsonSchema7 } from 'json-schema'\nimport { z } from 'zod'\n\nexport type { JsonSchema7 }\nexport const jsonSchema7Schema: z.ZodType<JsonSchema7> = z.lazy(() =>\n z.object({\n $id: z.string().optional(),\n $schema: z.string().optional(),\n $ref: z.string().optional(),\n title: z.string().optional(),\n description: z.string().optional(),\n type: z\n .union([\n z.literal('string'),\n z.literal('number'),\n z.literal('integer'),\n z.literal('boolean'),\n z.literal('object'),\n z.literal('array'),\n z.literal('null'),\n ])\n .optional(),\n enum: z\n .array(z.union([z.string(), z.number(), z.boolean(), z.null()]))\n .optional(),\n const: z.union([z.string(), z.number(), z.boolean(), z.null()]).optional(),\n multipleOf: z.number().positive().optional(),\n maximum: z.number().optional(),\n exclusiveMaximum: z.number().optional(),\n minimum: z.number().optional(),\n exclusiveMinimum: z.number().optional(),\n maxLength: z.number().int().nonnegative().optional(),\n minLength: z.number().int().nonnegative().optional(),\n pattern: z.string().optional(),\n additionalItems: z.boolean().optional(),\n items: z\n .union([z.lazy(() => jsonSchema7Schema), z.array(jsonSchema7Schema)])\n .optional(),\n maxItems: z.number().int().nonnegative().optional(),\n minItems: z.number().int().nonnegative().optional(),\n uniqueItems: z.boolean().optional(),\n contains: z.lazy(() => jsonSchema7Schema).optional(),\n maxProperties: z.number().int().nonnegative().optional(),\n minProperties: z.number().int().nonnegative().optional(),\n required: z.array(z.string()).optional(),\n properties: z.record(jsonSchema7Schema).optional(),\n patternProperties: z.record(jsonSchema7Schema).optional(),\n additionalProperties: z\n .union([z.boolean(), z.lazy(() => jsonSchema7Schema)])\n .optional(),\n dependencies: z\n .record(z.union([z.array(z.string()), jsonSchema7Schema]))\n .optional(),\n propertyNames: z.lazy(() => jsonSchema7Schema).optional(),\n if: z.lazy(() => jsonSchema7Schema).optional(),\n then: z.lazy(() => jsonSchema7Schema).optional(),\n else: z.lazy(() => jsonSchema7Schema).optional(),\n allOf: z.array(jsonSchema7Schema).optional(),\n anyOf: z.array(jsonSchema7Schema).optional(),\n oneOf: z.array(jsonSchema7Schema).optional(),\n not: z.lazy(() => jsonSchema7Schema).optional(),\n definitions: z.record(jsonSchema7Schema).optional(),\n format: z.string().optional(),\n contentMediaType: z.string().optional(),\n contentEncoding: z.string().optional(),\n }),\n)\n\nexport const jsonSchema7ObjectSchema = z.object({\n type: z.literal('object'),\n properties: z.record(jsonSchema7Schema),\n required: z.array(z.string()).optional(),\n description: z.string().optional(),\n maxProperties: z.number().int().nonnegative().optional(),\n minProperties: z.number().int().nonnegative().optional(),\n additionalProperties: z.boolean().optional(),\n})\n\nexport type JsonSchema7Object = z.infer<typeof jsonSchema7ObjectSchema>\n",
13
+ "import { z } from 'zod'\n\nimport {\n jsonSchema7NullSchema,\n jsonSchema7ObjectSchema,\n jsonSchema7Schema,\n} from './jsonSchema.ts'\n\ntype Prettify<T> = {\n [K in keyof T]: T[K]\n} & {}\n\nconst outputDefinitionSchema = z\n .object({\n schema: jsonSchema7Schema.nullable().optional(),\n })\n\n .and(\n z.union([\n z.object({\n default: z.literal(false).default(false),\n name: z.string().min(1),\n }),\n z.object({\n default: z.literal(true).default(true),\n }),\n ]),\n )\n .and(\n z.union([\n z.object({\n exit: z.literal(false).default(false),\n target: z.string().min(1),\n }),\n z.object({ exit: z.literal(true) }),\n ]),\n )\n\nexport type Output = Prettify<z.infer<typeof outputDefinitionSchema>>\n\nconst defaultOutputSchema = z\n .union([\n z.string().min(1),\n z.object({ default: z.literal(true).default(true), exit: z.literal(true) }),\n z.object({\n default: z.literal(true).default(true),\n exit: z.literal(false).default(false),\n target: z.string().min(1),\n }),\n ])\n .transform<Output>((output) => {\n if (typeof output === 'string') {\n return {\n default: true,\n exit: false,\n target: output,\n }\n }\n\n return output\n })\n\nconst outputSchema = z\n .union([z.string().min(1), outputDefinitionSchema])\n .transform<Output>((output) => {\n if (typeof output === 'string') {\n return {\n default: true,\n exit: false,\n target: output,\n }\n }\n\n return output\n })\n\nfunction validateOutputs(outputs: Array<Output>, ctx: z.RefinementCtx) {\n const exitOutputs = new Set(\n outputs\n .filter((output) => output.exit)\n .map((output) => (output.default ? '__default__' : output.name)),\n )\n\n outputs\n .filter((output) => !output.exit)\n .forEach((output) => {\n const name = output.default ? '__default__' : output.name\n if (exitOutputs.has(name)) {\n ctx.addIssue({\n code: 'custom',\n message: output.default\n ? `default exit output cannot be mixed with target output \"${output.target}\"`\n : `named exit output \"${name}\" cannot be mixed with target output \"${output.target}\"`,\n })\n }\n })\n\n const targets = new Map<string, Set<string>>()\n\n outputs.forEach((output) => {\n const name = output.default ? '__default__' : output.name\n const target = output.exit ? '__exit__' : output.target\n if (!targets.has(name)) {\n targets.set(name, new Set())\n }\n\n const knownTargets = targets.get(name)!\n if (knownTargets.has(target)) {\n ctx.addIssue({\n code: 'custom',\n message: [\n output.default\n ? 'duplicate default output'\n : `duplicate named output \"${name}\"`,\n output.exit ? 'for exit' : `for target \"${target}\"`,\n ].join(' '),\n })\n }\n knownTargets.add(target)\n })\n}\n\nconst defaultOutputsSchema = z\n .array(defaultOutputSchema)\n .default([])\n .superRefine(validateOutputs)\n\nconst outputsSchema = z\n .array(outputSchema)\n .default([])\n .superRefine(validateOutputs)\n\nconst idSchema = z\n .string()\n .uuid()\n .default(() => crypto.randomUUID())\n\nconst metaSchema = z.record(z.any()).optional()\n\nexport const entryNodeSchema = z.object({\n type: z.literal('entry'),\n id: z.literal('__entry__').default('__entry__'),\n output: defaultOutputsSchema,\n inputSchema: jsonSchema7Schema.default({ type: 'null' }),\n metaSchema: jsonSchema7Schema.default({ type: 'null' }),\n meta: metaSchema,\n})\n\nexport type InputEntryNode = z.input<typeof entryNodeSchema>\n\nexport const serviceNodeSchema = z.object({\n type: z.literal('service'),\n output: outputsSchema,\n inputSchema: z\n .union([jsonSchema7ObjectSchema, jsonSchema7NullSchema])\n .default({ type: 'null' }),\n id: idSchema,\n name: z.string(),\n version: z.string(),\n configuration: z.any().optional(),\n configurationSchema: jsonSchema7Schema.default({ type: 'null' }),\n alias: z.string().optional(),\n ttl: z.number().int().min(1).optional(),\n retry: z.number().int().min(1).optional(),\n retryDelay: z.number().int().min(100).optional(),\n meta: metaSchema,\n})\nexport type InputServiceNode = z.input<typeof serviceNodeSchema>\n\nexport const catchNodeSchema = z.object({\n type: z.literal('catch'),\n output: outputsSchema,\n id: idSchema,\n subject: z.string(),\n meta: metaSchema,\n})\nexport type InputCacheNode = z.input<typeof catchNodeSchema>\n\nexport const logicNodeSchema = z.object({\n type: z.literal('logic'),\n alias: z.string().optional(),\n output: outputsSchema,\n id: idSchema,\n script: z.string(),\n concurrency: z.boolean().default(true),\n language: z\n .enum(['javascript', 'python', 'typescript'])\n .default('javascript'),\n\n maxExecutionTime: z.number().int().min(0).default(200),\n meta: metaSchema,\n})\nexport type InputLogicNode = z.input<typeof logicNodeSchema>\n\nexport const orNodeSchema = z.object({\n id: idSchema,\n type: z.literal('or'),\n alias: z.string().optional(),\n output: outputsSchema,\n meta: metaSchema,\n})\nexport type InputOrNode = z.input<typeof orNodeSchema>\n\nexport const nodeSchema = z.discriminatedUnion('type', [\n entryNodeSchema,\n serviceNodeSchema,\n catchNodeSchema,\n logicNodeSchema,\n orNodeSchema,\n])\nexport type InputNode = z.input<typeof nodeSchema>\n",
14
+ "import type { JSONSchema7 as JsonSchema7 } from 'json-schema'\nimport { z } from 'zod'\n\nexport type { JsonSchema7 }\nexport const jsonSchema7Schema: z.ZodType<JsonSchema7> = z.lazy(() =>\n z\n .object({\n $id: z.string().optional(),\n $schema: z.string().optional(),\n $ref: z.string().optional(),\n title: z.string().optional(),\n description: z.string().optional(),\n type: z\n .union([\n z.literal('string'),\n z.literal('number'),\n z.literal('integer'),\n z.literal('boolean'),\n z.literal('object'),\n z.literal('array'),\n z.literal('null'),\n ])\n .optional(),\n enum: z\n .array(z.union([z.string(), z.number(), z.boolean(), z.null()]))\n .optional(),\n const: z\n .union([z.string(), z.number(), z.boolean(), z.null()])\n .optional(),\n multipleOf: z.number().positive().optional(),\n maximum: z.number().optional(),\n exclusiveMaximum: z.number().optional(),\n minimum: z.number().optional(),\n exclusiveMinimum: z.number().optional(),\n maxLength: z.number().int().nonnegative().optional(),\n minLength: z.number().int().nonnegative().optional(),\n pattern: z.string().optional(),\n additionalItems: z.boolean().optional(),\n items: z\n .union([z.lazy(() => jsonSchema7Schema), z.array(jsonSchema7Schema)])\n .optional(),\n maxItems: z.number().int().nonnegative().optional(),\n minItems: z.number().int().nonnegative().optional(),\n uniqueItems: z.boolean().optional(),\n contains: z.lazy(() => jsonSchema7Schema).optional(),\n maxProperties: z.number().int().nonnegative().optional(),\n minProperties: z.number().int().nonnegative().optional(),\n required: z.array(z.string()).optional(),\n properties: z.record(jsonSchema7Schema).optional(),\n patternProperties: z.record(jsonSchema7Schema).optional(),\n additionalProperties: z\n .union([z.boolean(), z.lazy(() => jsonSchema7Schema)])\n .optional(),\n dependencies: z\n .record(z.union([z.array(z.string()), jsonSchema7Schema]))\n .optional(),\n propertyNames: z.lazy(() => jsonSchema7Schema).optional(),\n if: z.lazy(() => jsonSchema7Schema).optional(),\n then: z.lazy(() => jsonSchema7Schema).optional(),\n else: z.lazy(() => jsonSchema7Schema).optional(),\n allOf: z.array(jsonSchema7Schema).optional(),\n anyOf: z.array(jsonSchema7Schema).optional(),\n oneOf: z.array(jsonSchema7Schema).optional(),\n not: z.lazy(() => jsonSchema7Schema).optional(),\n definitions: z.record(jsonSchema7Schema).optional(),\n format: z.string().optional(),\n contentMediaType: z.string().optional(),\n contentEncoding: z.string().optional(),\n })\n .transform((obj) => {\n if (\n obj.type === 'object' &&\n typeof obj.additionalProperties === 'undefined'\n ) {\n return {\n ...obj,\n additionalProperties: false,\n }\n }\n return obj\n }),\n)\n\nexport const jsonSchema7ObjectSchema = z.object({\n type: z.literal('object'),\n properties: z.record(jsonSchema7Schema),\n required: z.array(z.string()).optional(),\n description: z.string().optional(),\n maxProperties: z.number().int().nonnegative().optional(),\n minProperties: z.number().int().nonnegative().optional(),\n additionalProperties: z.boolean().default(false),\n})\n\nexport type JsonSchema7Object = z.infer<typeof jsonSchema7ObjectSchema>\n\nexport const jsonSchema7NullSchema = z.object({\n type: z.literal('null'),\n})\n\nexport type JsonSchema7Null = z.infer<typeof jsonSchema7NullSchema>\n",
15
15
  "import { z } from 'zod'\n\nimport { nodesSchema } from './nodes.ts'\nimport { contextSchema } from '../context/context.ts'\n\nconst baseUpdateSchema = z.object({\n timestamp: z\n .number()\n .int()\n .transform((int) => new Date(int)),\n})\n\nconst baseNodeUpdateSchema = baseUpdateSchema.extend({\n nodeId: z.string().uuid(),\n})\n\nconst nodeStartUpdateSchema = baseNodeUpdateSchema.extend({\n type: z.literal('NODE_START'),\n context: contextSchema,\n})\nexport type NodeStartUpdate = z.infer<typeof nodeStartUpdateSchema>\n\nconst nodeErrorUpdateSchema = baseNodeUpdateSchema.extend({\n type: z.literal('NODE_ERROR'),\n error: z.string(),\n context: contextSchema,\n})\nexport type NodeErrorUpdate = z.infer<typeof nodeErrorUpdateSchema>\n\nconst nodeUpdateSchema = baseNodeUpdateSchema.extend({\n type: z.literal('NODE_UPDATE'),\n output: z.string(),\n data: z.unknown(),\n context: contextSchema,\n})\n\nexport type NodeUpdate = z.infer<typeof nodeUpdateSchema>\n\nconst nodeFinishedUpdateSchema = baseNodeUpdateSchema.extend({\n type: z.literal('NODE_FINISHED'),\n context: contextSchema,\n})\n\nexport type NodeFinishedUpdate = z.infer<typeof nodeFinishedUpdateSchema>\n\nconst nodeDebugUpdateSchema = baseNodeUpdateSchema.extend({\n type: z.literal('NODE_DEBUG'),\n severity: z.enum(['log', 'info', 'warn', 'error']),\n data: z.unknown(),\n context: contextSchema,\n})\nexport type NodeDebugUpdate = z.infer<typeof nodeDebugUpdateSchema>\n\nconst nodeDeferUpdateSchema = baseNodeUpdateSchema.extend({\n type: z.literal('NODE_DEFER'),\n data: z.unknown(),\n context: contextSchema,\n})\nexport type NodeDeferUpdate = z.infer<typeof nodeDeferUpdateSchema>\n\nconst taskStartUpdateSchema = baseUpdateSchema.extend({\n type: z.literal('TASK_START'),\n nodes: nodesSchema,\n context: contextSchema,\n})\nexport type TaskStartUpdate = z.infer<typeof taskStartUpdateSchema>\n\nconst taskErrorUpdateSchema = baseUpdateSchema.extend({\n type: z.literal('TASK_ERROR'),\n reason: z.string().optional(),\n context: contextSchema,\n})\nexport type TaskErrorUpdate = z.infer<typeof taskErrorUpdateSchema>\n\nconst taskFinishedUpdateSchema = baseUpdateSchema.extend({\n type: z.literal('TASK_FINISHED'),\n context: contextSchema,\n})\nexport type TaskFinishedUpdate = z.infer<typeof taskFinishedUpdateSchema>\n\nexport const updateSchema = z.discriminatedUnion('type', [\n nodeStartUpdateSchema,\n nodeErrorUpdateSchema,\n nodeUpdateSchema,\n nodeFinishedUpdateSchema,\n nodeDebugUpdateSchema,\n nodeDeferUpdateSchema,\n taskStartUpdateSchema,\n taskErrorUpdateSchema,\n taskFinishedUpdateSchema,\n])\n\nexport type Update = z.infer<typeof updateSchema>\n",
16
- "import { clone, deobfuscate, obfuscate } from '@requence/helpers'\nimport { contextSchema } from '@requence/helpers/context'\nimport { nodesSchema } from '@requence/helpers/protocol'\nimport { connect } from 'amqp-connection-manager'\nimport type { ConfirmChannel } from 'amqplib'\nimport { z } from 'zod'\n\nimport createExtendedContextHelper, {\n AbortError,\n type ExtendendContextHelper,\n type JSONValue,\n RetryError,\n unwrapResult,\n} from './helpers.ts'\n\ntype Input<V extends keyof Requence.Version> = Requence.Version[V]['input']\ntype Configuration<V extends keyof Requence.Version> =\n Requence.Version[V]['configuration']\ntype OutputName<\n V extends keyof Requence.Version,\n K = keyof Requence.Version[V]['outputs'],\n> = K extends '__default__' ? null : K\n\ntype OutputValue<\n V extends keyof Requence.Version,\n O extends OutputName<V> | null,\n> = Requence.Version[V]['outputs'][O extends null ? '__default__' : O]\n\ninterface ServiceContextHelper<V extends keyof Requence.Version>\n extends Omit<\n ExtendendContextHelper,\n 'getData' | 'getConfiguration' | 'toOutput'\n > {\n getData: {\n (): Input<V>\n (alias?: string): unknown\n }\n getConfiguration(): Configuration<V>\n toOutput<O extends OutputName<V>>(\n name: O,\n value: OutputValue<V, O>,\n ): '__output_value__'\n}\n\ntype ReturnValue<V extends keyof Requence.Version> =\n | ReturnType<ServiceContextHelper<V>['toOutput']>\n | OutputValue<V, null>\n | '__output_value__'\n\ntype ApiOutputName<V> = V extends keyof Requence.Version\n ? OutputName<V>\n : string | null\ntype ApiOutputValue<V, O> = V extends keyof Requence.Version\n ? O extends OutputName<V>\n ? OutputValue<V, O>\n : unknown\n : unknown\n\ninterface ActorApi<V> {\n sendToOutput<O extends ApiOutputName<V>>(\n outputName: O,\n data: ApiOutputValue<V, O>,\n ): void\n send(data: ApiOutputValue<V, null>): void\n abort(error: string | Error): void\n}\n\nexport interface ConnectionApi<V> {\n close(): Promise<void>\n open(): Promise<ConnectionApi<V>>\n act(\n messageKey: string,\n actor: (api: ActorApi<V>) => void | Promise<void>,\n ): Promise<void>\n}\n\nconst messageKeySchema = z\n .string()\n .transform((str) => deobfuscate(str))\n .pipe(z.array(z.string().uuid()).length(3))\n .transform((arr) => ({\n taskId: arr[0],\n serviceId: arr[1],\n messageId: arr[2],\n }))\n\nconst headerSchema = z\n .object({\n properties: z.object({\n correlationId: z.string().uuid(),\n headers: z.object({\n version: z.string(),\n taskId: z.string().uuid(),\n serviceId: z.string().uuid(),\n }),\n }),\n })\n .transform((msg) => ({\n version: msg.properties.headers.version,\n messageId: msg.properties.correlationId,\n taskId: msg.properties.headers.taskId,\n serviceId: msg.properties.headers.serviceId,\n }))\n\nconst payloadSchema = z\n .object({ content: z.instanceof(Buffer) })\n .transform((msg) => JSON.parse(msg.content.toString()))\n .pipe(\n z.object({\n context: contextSchema,\n meta: z.object({\n nodes: nodesSchema,\n state: z.record(z.any()),\n }),\n }),\n )\n\ntype MaybePromise<T> = T | Promise<T>\n\ninterface ConnectionOptions {\n url: URL\n version: string\n connectionTimeout: number\n prefetch?: number\n silent?: boolean\n}\n\ntype MessageHandlerContext<V> = V extends keyof Requence.Version\n ? ServiceContextHelper<V>\n : ExtendendContextHelper\ntype MessageHandlerReturnValue<V> = V extends keyof Requence.Version\n ? ReturnValue<V>\n : JSONValue\n\ntype MessageHandlerFunction<V> = (\n context: MessageHandlerContext<V>,\n) => MaybePromise<MessageHandlerReturnValue<V> | void>\n\ntype MessageHandlerGenerator<V> = (\n context: MessageHandlerContext<V>,\n) => Generator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>\ntype MessageHandlerAsyncGenerator<V> = (\n context: MessageHandlerContext<V>,\n) => AsyncGenerator<\n MessageHandlerReturnValue<V>,\n MessageHandlerReturnValue<V>,\n void\n>\n\nexport type MessageHandler<V> =\n | MessageHandlerAsyncGenerator<V>\n | MessageHandlerGenerator<V>\n | MessageHandlerFunction<V>\n\nfunction isMessageHandlerGenerator<V extends keyof Requence.Version>(\n handler: MessageHandler<V>,\n): handler is MessageHandlerGenerator<V> | MessageHandlerAsyncGenerator<V> {\n return (\n handler.constructor.name === 'GeneratorFunction' ||\n handler.constructor.name === 'AsyncGeneratorFunction'\n )\n}\n\nconst activeMessages = new Set<string>()\n\nexport default function createConnection<V>(\n {\n url,\n version,\n prefetch = 1,\n silent = false,\n connectionTimeout,\n }: ConnectionOptions,\n messageHandler: MessageHandler<V>,\n) {\n const queue = `${url.username}@${version}`\n const exchange = url.username\n const connection = connect(url.toString())\n\n const connectedPromise = new Promise<void>((resolve, reject) => {\n const unsubscribe = () => {\n clearTimeout(timeout)\n connection.removeListener('connect', handleConnect)\n connection.removeListener('connectFailed', handleConnectFailed)\n }\n\n const timeout = setTimeout(() => {\n handleConnectFailed({ err: 'Connection timeout' })\n }, connectionTimeout)\n\n const handleConnect = () => {\n unsubscribe()\n resolve()\n }\n\n const handleConnectFailed = ({ err }: { err: string }) => {\n unsubscribe()\n reject(new Error(err))\n }\n\n connection.addListener('connect', handleConnect)\n connection.addListener('connectFailed', handleConnectFailed)\n })\n\n const channel = connection.createChannel({\n async setup(channel: ConfirmChannel) {\n await channel.checkExchange(exchange)\n await channel.checkExchange(`${exchange}-retry`)\n await channel.checkQueue(queue)\n await channel.prefetch(prefetch)\n },\n })\n\n const publish = ({\n data,\n outputName,\n messageId,\n ...headers\n }: {\n data?: unknown\n outputName?: string | null\n messageId: string\n serviceId: string\n taskId: string\n [property: string]: any\n }) => {\n channel.publish(exchange, '', Buffer.from(JSON.stringify(data ?? null)), {\n correlationId: messageId,\n contentType: 'application/json',\n headers: {\n outputName: outputName ?? null,\n ...headers,\n },\n })\n }\n\n channel.consume(queue, async (message) => {\n // this is a error retry message, we don't need those\n if (\n message.properties.headers?.abort ||\n message.properties.headers?.exception\n ) {\n channel.nack(message, false, false)\n return\n }\n\n let removeActiveMessage = () => {}\n try {\n let deferred = false\n let deferredReason: string | null = null\n const { messageId, serviceId, taskId } = headerSchema.parse(message)\n\n activeMessages.add(messageId)\n removeActiveMessage = () => activeMessages.delete(messageId)\n\n const payload = payloadSchema.parse(message)\n\n let acked = false\n const ack = () => {\n if (!acked) {\n acked = true\n channel.ack(message)\n }\n }\n\n let immediateUpdateState: ReturnType<typeof setImmediate>\n\n const extendedContext = createExtendedContextHelper({\n serviceId,\n context: payload.context,\n nodes: payload.meta.nodes,\n taskId,\n state: payload.meta.state,\n onStateChange(newState) {\n clearImmediate(immediateUpdateState)\n immediateUpdateState = setImmediate(() => {\n publish({\n messageId,\n taskId,\n serviceId,\n data: clone(newState),\n state: true,\n })\n })\n },\n onLog(debugMethod, data) {\n publish({\n messageId,\n taskId,\n serviceId,\n data,\n debugMethod,\n debug: true,\n })\n },\n onDefer(reason) {\n deferred = true\n deferredReason = reason || null\n ack()\n return obfuscate(taskId, serviceId, messageId)\n },\n }) as unknown as MessageHandlerContext<V>\n\n if (isMessageHandlerGenerator(messageHandler)) {\n const generator = messageHandler(extendedContext)\n while (true) {\n const { value: result, done } = await generator.next()\n ack()\n\n if (deferred) {\n deferred = false\n console.warn(\n 'returning a value in a deferred message resets the deferred status',\n )\n }\n const { value, outputName } = unwrapResult(result)\n\n if (!done || typeof value !== 'undefined') {\n publish({\n messageId,\n taskId,\n serviceId,\n data: value,\n outputName,\n })\n }\n\n if (done) {\n break\n }\n }\n } else {\n const result = await messageHandler(extendedContext)\n ack()\n const { value, outputName } = unwrapResult(result)\n if (deferred && value) {\n console.warn(\n 'returning a value in a deferred message resets the deferred status',\n )\n deferred = false\n }\n\n if (!deferred || value) {\n publish({\n messageId,\n taskId,\n serviceId,\n data: value,\n outputName,\n })\n }\n }\n\n setImmediate(() =>\n publish({\n messageId,\n taskId,\n serviceId,\n data: deferredReason,\n deferred,\n done: !deferred,\n }),\n )\n } catch (error) {\n if (error instanceof RetryError) {\n const properties = {\n ...message.properties,\n expiration: error.delay || 1_000, // 1s\n }\n\n channel.publish(\n `${exchange}-retry`,\n 'retry', // to other services\n message.content,\n properties,\n )\n channel.ack(message)\n return\n }\n\n if (error instanceof AbortError && error.message.length > 0) {\n // requeue the message with extreme lowest expiration and lowest priority\n // so that no service will have the change to read this message\n channel.publish(\n `${exchange}-retry`,\n 'requeue', //back to operator\n error.message,\n {\n ...message.properties,\n expiration: 0,\n priority: 0,\n contentType: 'text/plain',\n headers: {\n ...message.properties.headers,\n abort: true,\n },\n },\n )\n\n channel.ack(message)\n return\n }\n\n if (error instanceof Error) {\n if (!silent) {\n console.error(`Encountered an error inside service handler:`)\n console.error(error)\n }\n\n channel.publish(\n `${exchange}-retry`,\n 'requeue', // back to operator\n message.content,\n {\n ...message.properties,\n expiration: 0,\n priority: 0,\n headers: {\n ...message.properties.headers,\n exception: true,\n 'error-message': error.message || 'error in service handler',\n },\n },\n )\n\n channel.ack(message)\n return\n }\n\n channel.nack(message, false, false)\n } finally {\n removeActiveMessage()\n }\n })\n\n const api: ConnectionApi<V> = {\n close: async () => {\n await channel.close()\n await connection.close()\n },\n open: () => connectedPromise.then(() => api),\n\n async act(messageKey, actor) {\n await actor({\n sendToOutput(outputName, data) {\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n if (activeMessages.has(messageId)) {\n throw new Error(\n 'Cannot send deferred message while callback handler is still running',\n )\n }\n publish({\n messageId,\n taskId,\n serviceId,\n data,\n outputName: outputName as string | null,\n })\n },\n send(data) {\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n if (activeMessages.has(messageId)) {\n throw new Error(\n 'Cannot send deferred message while callback handler is still running',\n )\n }\n publish({\n messageId,\n taskId,\n serviceId,\n data,\n })\n },\n abort(error) {\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n if (activeMessages.has(messageId)) {\n throw new Error(\n 'Cannot send deferred message while callback handler is still running',\n )\n }\n channel.publish(\n `${exchange}-retry`,\n 'requeue',\n error instanceof Error ? error.message : error,\n {\n correlationId: messageId,\n expiration: 0,\n priority: 0,\n contentType: 'text/plain',\n headers: {\n taskId,\n serviceId,\n abort: true,\n },\n },\n )\n },\n })\n\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n setImmediate(() =>\n publish({\n messageId,\n taskId,\n serviceId,\n done: true,\n }),\n )\n },\n }\n return api\n}\n",
17
- "import { createObjectProxy } from '@requence/helpers'\nimport {\n type Context,\n createContextHelper,\n getInternalContext,\n} from '@requence/helpers/context'\nimport type { Nodes, ServiceNode } from '@requence/helpers/protocol'\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | Array<JSONValue>\n | null\n\nexport class RetryError extends Error {\n constructor(public delay?: number) {\n super()\n }\n}\n\nexport class AbortError extends Error {}\n\nconst OUTPUT_VALUE = Symbol('output_value')\n\ntype OutputValue = {\n [OUTPUT_VALUE]: string | null\n value: any\n}\n\nfunction isOutputValue(value: unknown): value is OutputValue {\n return value !== null && typeof value === 'object' && OUTPUT_VALUE in value\n}\n\nexport function unwrapResult(result: unknown) {\n if (isOutputValue(result)) {\n return { value: result.value, outputName: result[OUTPUT_VALUE] }\n }\n return { value: result, outputName: null }\n}\n\nexport default function createExtendedContextHelper(options: {\n serviceId: string\n taskId: string\n context: Context\n nodes: Nodes\n state: Record<string, any>\n onLog: (method: 'log' | 'warn' | 'info' | 'error', data: any[]) => void\n onDefer: (reason?: string) => string\n onStateChange: (newObj: Record<string, unknown>) => void\n}) {\n const contextHelper = createContextHelper(options.context, options.nodes)\n const internalContext = getInternalContext(contextHelper)\n\n return Object.assign(contextHelper, {\n taskId: options.taskId,\n toOutput(name: string | null, value: unknown): OutputValue {\n return {\n [OUTPUT_VALUE]: name,\n value,\n }\n },\n defer: options.onDefer,\n\n getConfiguration(): unknown {\n const result = internalContext.results.get(options.serviceId)\n if (result?.node.type === 'service') {\n return result.node.configuration ?? null\n }\n\n return null\n },\n\n getNode() {\n return internalContext.results.get(options.serviceId)!.node as ServiceNode\n },\n\n state: createObjectProxy(options.state, options.onStateChange) as Record<\n string,\n any\n >,\n debug: {\n log(...data: any[]) {\n options.onLog('log', data)\n },\n info(...data: any[]) {\n options.onLog('info', data)\n },\n warn(...data: any[]) {\n options.onLog('warn', data)\n },\n error(...data: any[]) {\n options.onLog('error', data)\n },\n },\n retry(delay?: number) {\n throw new RetryError(delay)\n },\n abort(reason?: string) {\n throw new AbortError(reason)\n },\n })\n}\n\nexport type ExtendendContextHelper = ReturnType<\n typeof createExtendedContextHelper\n>\n"
16
+ "import { clone, deobfuscate, obfuscate } from '@requence/helpers'\nimport { contextSchema } from '@requence/helpers/context'\nimport { nodesSchema } from '@requence/helpers/protocol'\nimport { connect } from 'amqp-connection-manager'\nimport type { ConfirmChannel } from 'amqplib'\nimport { z } from 'zod'\n\nimport createContextHelper, {\n AbortError,\n type ContextHelper,\n type JSONValue,\n RetryError,\n unwrapResult,\n} from './helpers.ts'\n\ntype Input<V extends keyof Requence.Version> = Requence.Version[V]['input']\ntype Configuration<V extends keyof Requence.Version> =\n Requence.Version[V]['configuration']\ntype OutputName<\n V extends keyof Requence.Version,\n K = keyof Requence.Version[V]['outputs'],\n> = K extends '__default__' ? null : K\n\ntype OutputValue<\n V extends keyof Requence.Version,\n O extends OutputName<V> | null,\n> = Requence.Version[V]['outputs'][O extends null ? '__default__' : O]\n\ninterface ServiceContextHelper<V extends keyof Requence.Version>\n extends Omit<ContextHelper, 'getData' | 'getConfiguration' | 'toOutput'> {\n getData: {\n (): Input<V>\n }\n getConfiguration(): Configuration<V>\n toOutput<O extends OutputName<V>>(\n name: O,\n value: OutputValue<V, O>,\n ): '__output_value__'\n}\n\ntype ReturnValue<V extends keyof Requence.Version> =\n | ReturnType<ServiceContextHelper<V>['toOutput']>\n | OutputValue<V, null>\n | '__output_value__'\n\ntype ApiOutputName<V> = V extends keyof Requence.Version\n ? OutputName<V>\n : string | null\ntype ApiOutputValue<V, O> = V extends keyof Requence.Version\n ? O extends OutputName<V>\n ? OutputValue<V, O>\n : unknown\n : unknown\n\ninterface ActorApi<V> {\n sendToOutput<O extends ApiOutputName<V>>(\n outputName: O,\n data: ApiOutputValue<V, O>,\n ): void\n send(data: ApiOutputValue<V, null>): void\n abort(error: string | Error): void\n}\n\nexport interface ConnectionApi<V> {\n close(): Promise<void>\n open(): Promise<ConnectionApi<V>>\n act(\n messageKey: string,\n actor: (api: ActorApi<V>) => void | Promise<void>,\n ): Promise<void>\n}\n\nconst messageKeySchema = z\n .string()\n .transform((str) => deobfuscate(str))\n .pipe(z.array(z.string().uuid()).length(3))\n .transform((arr) => ({\n taskId: arr[0],\n serviceId: arr[1],\n messageId: arr[2],\n }))\n\nconst headerSchema = z\n .object({\n properties: z.object({\n correlationId: z.string().uuid(),\n headers: z.object({\n version: z.string(),\n taskId: z.string().uuid(),\n serviceId: z.string().uuid(),\n }),\n }),\n })\n .transform((msg) => ({\n version: msg.properties.headers.version,\n messageId: msg.properties.correlationId,\n taskId: msg.properties.headers.taskId,\n serviceId: msg.properties.headers.serviceId,\n }))\n\nconst payloadSchema = z\n .object({ content: z.instanceof(Buffer) })\n .transform((msg) => JSON.parse(msg.content.toString()))\n .pipe(\n z.object({\n context: contextSchema,\n meta: z.object({\n nodes: nodesSchema,\n state: z.record(z.any()),\n }),\n }),\n )\n\ntype MaybePromise<T> = T | Promise<T>\n\ninterface ConnectionOptions {\n url: URL\n version: string\n connectionTimeout: number\n prefetch?: number\n silent?: boolean\n}\n\ntype MessageHandlerContext<V> = V extends keyof Requence.Version\n ? ServiceContextHelper<V>\n : ContextHelper\ntype MessageHandlerReturnValue<V> = V extends keyof Requence.Version\n ? ReturnValue<V>\n : JSONValue\n\ntype MessageHandlerFunction<V> = (\n context: MessageHandlerContext<V>,\n) => MaybePromise<MessageHandlerReturnValue<V> | void>\n\ntype MessageHandlerGenerator<V> = (\n context: MessageHandlerContext<V>,\n) => Generator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>\ntype MessageHandlerAsyncGenerator<V> = (\n context: MessageHandlerContext<V>,\n) => AsyncGenerator<\n MessageHandlerReturnValue<V>,\n MessageHandlerReturnValue<V>,\n void\n>\n\nexport type MessageHandler<V> =\n | MessageHandlerAsyncGenerator<V>\n | MessageHandlerGenerator<V>\n | MessageHandlerFunction<V>\n\nfunction isMessageHandlerGenerator<V extends keyof Requence.Version>(\n handler: MessageHandler<V>,\n): handler is MessageHandlerGenerator<V> | MessageHandlerAsyncGenerator<V> {\n return (\n handler.constructor.name === 'GeneratorFunction' ||\n handler.constructor.name === 'AsyncGeneratorFunction'\n )\n}\n\nconst activeMessages = new Set<string>()\n\nexport default function createConnection<V>(\n {\n url,\n version,\n prefetch = 1,\n silent = false,\n connectionTimeout,\n }: ConnectionOptions,\n messageHandler: MessageHandler<V>,\n) {\n const queue = `${url.username}@${version}`\n const exchange = url.username\n const connection = connect(url.toString())\n\n const connectedPromise = new Promise<void>((resolve, reject) => {\n const unsubscribe = () => {\n clearTimeout(timeout)\n connection.removeListener('connect', handleConnect)\n connection.removeListener('connectFailed', handleConnectFailed)\n }\n\n const timeout = setTimeout(() => {\n handleConnectFailed({ err: 'Connection timeout' })\n }, connectionTimeout)\n\n const handleConnect = () => {\n unsubscribe()\n resolve()\n }\n\n const handleConnectFailed = ({ err }: { err: string }) => {\n unsubscribe()\n reject(new Error(err))\n }\n\n connection.addListener('connect', handleConnect)\n connection.addListener('connectFailed', handleConnectFailed)\n })\n\n const channel = connection.createChannel({\n async setup(channel: ConfirmChannel) {\n await channel.checkExchange(exchange)\n await channel.checkExchange(`${exchange}-retry`)\n await channel.checkQueue(queue)\n await channel.prefetch(prefetch)\n },\n })\n\n const publish = ({\n data,\n outputName,\n messageId,\n ...headers\n }: {\n data?: unknown\n outputName?: string | null\n messageId: string\n serviceId: string\n taskId: string\n [property: string]: any\n }) => {\n channel.publish(exchange, '', Buffer.from(JSON.stringify(data ?? null)), {\n correlationId: messageId,\n contentType: 'application/json',\n headers: {\n outputName: outputName ?? null,\n ...headers,\n },\n })\n }\n\n channel.consume(queue, async (message) => {\n // this is a error retry message, we don't need those\n if (\n message.properties.headers?.abort ||\n message.properties.headers?.exception\n ) {\n channel.nack(message, false, false)\n return\n }\n\n let removeActiveMessage = () => {}\n try {\n let deferred = false\n let deferredReason: string | null = null\n const { messageId, serviceId, taskId } = headerSchema.parse(message)\n\n activeMessages.add(messageId)\n removeActiveMessage = () => activeMessages.delete(messageId)\n\n const payload = payloadSchema.parse(message)\n\n let acked = false\n const ack = () => {\n if (!acked) {\n acked = true\n channel.ack(message)\n }\n }\n\n let immediateUpdateState: ReturnType<typeof setImmediate>\n\n const extendedContext = createContextHelper({\n serviceId,\n context: payload.context,\n nodes: payload.meta.nodes,\n taskId,\n state: payload.meta.state,\n onStateChange(newState) {\n clearImmediate(immediateUpdateState)\n immediateUpdateState = setImmediate(() => {\n publish({\n messageId,\n taskId,\n serviceId,\n data: clone(newState),\n state: true,\n })\n })\n },\n onLog(debugMethod, data) {\n publish({\n messageId,\n taskId,\n serviceId,\n data,\n debugMethod,\n debug: true,\n })\n },\n onDefer(reason) {\n deferred = true\n deferredReason = reason || null\n ack()\n return obfuscate(taskId, serviceId, messageId)\n },\n }) as unknown as MessageHandlerContext<V>\n\n if (isMessageHandlerGenerator(messageHandler)) {\n const generator = messageHandler(extendedContext)\n while (true) {\n const { value: result, done } = await generator.next()\n ack()\n\n if (deferred) {\n deferred = false\n console.warn(\n 'returning a value in a deferred message resets the deferred status',\n )\n }\n const { value, outputName } = unwrapResult(result)\n\n if (!done || typeof value !== 'undefined') {\n publish({\n messageId,\n taskId,\n serviceId,\n data: value,\n outputName,\n })\n }\n\n if (done) {\n break\n }\n }\n } else {\n const result = await messageHandler(extendedContext)\n ack()\n const { value, outputName } = unwrapResult(result)\n if (deferred && value) {\n console.warn(\n 'returning a value in a deferred message resets the deferred status',\n )\n deferred = false\n }\n\n if (!deferred || value) {\n publish({\n messageId,\n taskId,\n serviceId,\n data: value,\n outputName,\n })\n }\n }\n\n setImmediate(() =>\n publish({\n messageId,\n taskId,\n serviceId,\n data: deferredReason,\n deferred,\n done: !deferred,\n }),\n )\n } catch (error) {\n if (error instanceof RetryError) {\n const properties = {\n ...message.properties,\n expiration: error.delay || 1_000, // 1s\n }\n\n channel.publish(\n `${exchange}-retry`,\n 'retry', // to other services\n message.content,\n properties,\n )\n channel.ack(message)\n return\n }\n\n if (error instanceof AbortError && error.message.length > 0) {\n // requeue the message with extreme lowest expiration and lowest priority\n // so that no service will have the change to read this message\n channel.publish(\n `${exchange}-retry`,\n 'requeue', //back to operator\n error.message,\n {\n ...message.properties,\n expiration: 0,\n priority: 0,\n contentType: 'text/plain',\n headers: {\n ...message.properties.headers,\n abort: true,\n },\n },\n )\n\n channel.ack(message)\n return\n }\n\n if (error instanceof Error) {\n if (!silent) {\n console.error(`Encountered an error inside service handler:`)\n console.error(error)\n }\n\n channel.publish(\n `${exchange}-retry`,\n 'requeue', // back to operator\n message.content,\n {\n ...message.properties,\n expiration: 0,\n priority: 0,\n headers: {\n ...message.properties.headers,\n exception: true,\n 'error-message': error.message || 'error in service handler',\n },\n },\n )\n\n channel.ack(message)\n return\n }\n\n channel.nack(message, false, false)\n } finally {\n removeActiveMessage()\n }\n })\n\n const api: ConnectionApi<V> = {\n close: async () => {\n await channel.close()\n await connection.close()\n },\n open: () => connectedPromise.then(() => api),\n\n async act(messageKey, actor) {\n await actor({\n sendToOutput(outputName, data) {\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n if (activeMessages.has(messageId)) {\n throw new Error(\n 'Cannot send deferred message while callback handler is still running',\n )\n }\n publish({\n messageId,\n taskId,\n serviceId,\n data,\n outputName: outputName as string | null,\n })\n },\n send(data) {\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n if (activeMessages.has(messageId)) {\n throw new Error(\n 'Cannot send deferred message while callback handler is still running',\n )\n }\n publish({\n messageId,\n taskId,\n serviceId,\n data,\n })\n },\n abort(error) {\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n if (activeMessages.has(messageId)) {\n throw new Error(\n 'Cannot send deferred message while callback handler is still running',\n )\n }\n channel.publish(\n `${exchange}-retry`,\n 'requeue',\n error instanceof Error ? error.message : error,\n {\n correlationId: messageId,\n expiration: 0,\n priority: 0,\n contentType: 'text/plain',\n headers: {\n taskId,\n serviceId,\n abort: true,\n },\n },\n )\n },\n })\n\n const { taskId, serviceId, messageId } =\n messageKeySchema.parse(messageKey)\n\n setImmediate(() =>\n publish({\n messageId,\n taskId,\n serviceId,\n done: true,\n }),\n )\n },\n }\n return api\n}\n",
17
+ "import { createObjectProxy } from '@requence/helpers'\nimport type { Context } from '@requence/helpers/context'\nimport type { Nodes, ServiceNode } from '@requence/helpers/protocol'\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | Array<JSONValue>\n | null\n\nexport class RetryError extends Error {\n constructor(public delay?: number) {\n super()\n }\n}\n\nexport class AbortError extends Error {}\n\nconst OUTPUT_VALUE = Symbol('output_value')\n\ntype OutputValue = {\n [OUTPUT_VALUE]: string | null\n value: any\n}\n\nfunction isOutputValue(value: unknown): value is OutputValue {\n return value !== null && typeof value === 'object' && OUTPUT_VALUE in value\n}\n\nfunction isRecord(data: unknown): data is Record<string, any> {\n return typeof data === 'object' && data !== null && !Array.isArray(data)\n}\n\nexport function unwrapResult(result: unknown) {\n if (isOutputValue(result)) {\n return { value: result.value, outputName: result[OUTPUT_VALUE] }\n }\n return { value: result, outputName: null }\n}\n\ntype NodeResult = {\n executionDate: null | Date\n data: any | null\n error: string | null\n}\n\nexport default function createContextHelper(options: {\n serviceId: string\n taskId: string\n context: Context\n nodes: Nodes\n state: Record<string, any>\n onLog: (method: 'log' | 'warn' | 'info' | 'error', data: any[]) => void\n onDefer: (reason?: string) => string\n onStateChange: (newObj: Record<string, unknown>) => void\n}) {\n const nodes = new Map<string, Nodes[number] & NodeResult>(\n options.nodes.map((node) => [\n node.id,\n Object.assign(node, {\n executionDate:\n node.id in options.context.dates\n ? new Date(options.context.dates[node.id])\n : null,\n data: options.context.data[node.id] ?? null,\n error: options.context.errors[node.id] ?? null,\n }),\n ]),\n )\n\n return {\n taskId: options.taskId,\n\n getInput(): unknown {\n return options.context.input\n },\n\n getMeta(): unknown {\n return options.context.meta\n },\n\n getData() {\n return Array.from(nodes.values())\n .filter((result) => result.executionDate && isRecord(result.data))\n .toSorted(\n (a, b) => a.executionDate!.getTime() - b.executionDate!.getTime(),\n )\n .reduce(\n (acc, result) => ({\n ...acc,\n ...result.data,\n }),\n isRecord(options.context.input) ? { ...options.context.input } : {},\n )\n },\n\n toOutput(name: string | null, value: unknown): OutputValue {\n return {\n [OUTPUT_VALUE]: name,\n value,\n }\n },\n defer: options.onDefer,\n\n getConfiguration(): unknown {\n const result = nodes.get(options.serviceId)\n if (result?.type === 'service') {\n return result.configuration ?? null\n }\n\n return null\n },\n\n getNode() {\n return nodes.get(options.serviceId)! as ServiceNode & NodeResult\n },\n\n getNodes() {\n return Array.from(nodes.values())\n },\n\n state: createObjectProxy(options.state, options.onStateChange) as Record<\n string,\n any\n >,\n debug: {\n log(...data: any[]) {\n options.onLog('log', data)\n },\n info(...data: any[]) {\n options.onLog('info', data)\n },\n warn(...data: any[]) {\n options.onLog('warn', data)\n },\n error(...data: any[]) {\n options.onLog('error', data)\n },\n },\n retry(delay?: number) {\n throw new RetryError(delay)\n },\n abort(reason?: string) {\n throw new AbortError(reason)\n },\n }\n}\n\nexport type ContextHelper = ReturnType<typeof createContextHelper>\n"
18
18
  ],
19
- "mappings": "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",
20
- "debugId": "1AE0F5F375D764C164756E2164756E21",
19
+ "mappings": "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",
20
+ "debugId": "41D15659E9341B8064756E2164756E21",
21
21
  "names": []
22
22
  }
@@ -1,12 +1,11 @@
1
- import { type ExtendendContextHelper, type JSONValue } from './helpers.ts';
1
+ import { type ContextHelper, type JSONValue } from './helpers.ts';
2
2
  type Input<V extends keyof Requence.Version> = Requence.Version[V]['input'];
3
3
  type Configuration<V extends keyof Requence.Version> = Requence.Version[V]['configuration'];
4
4
  type OutputName<V extends keyof Requence.Version, K = keyof Requence.Version[V]['outputs']> = K extends '__default__' ? null : K;
5
5
  type OutputValue<V extends keyof Requence.Version, O extends OutputName<V> | null> = Requence.Version[V]['outputs'][O extends null ? '__default__' : O];
6
- interface ServiceContextHelper<V extends keyof Requence.Version> extends Omit<ExtendendContextHelper, 'getData' | 'getConfiguration' | 'toOutput'> {
6
+ interface ServiceContextHelper<V extends keyof Requence.Version> extends Omit<ContextHelper, 'getData' | 'getConfiguration' | 'toOutput'> {
7
7
  getData: {
8
8
  (): Input<V>;
9
- (alias?: string): unknown;
10
9
  };
11
10
  getConfiguration(): Configuration<V>;
12
11
  toOutput<O extends OutputName<V>>(name: O, value: OutputValue<V, O>): '__output_value__';
@@ -32,7 +31,7 @@ interface ConnectionOptions {
32
31
  prefetch?: number;
33
32
  silent?: boolean;
34
33
  }
35
- type MessageHandlerContext<V> = V extends keyof Requence.Version ? ServiceContextHelper<V> : ExtendendContextHelper;
34
+ type MessageHandlerContext<V> = V extends keyof Requence.Version ? ServiceContextHelper<V> : ContextHelper;
36
35
  type MessageHandlerReturnValue<V> = V extends keyof Requence.Version ? ReturnValue<V> : JSONValue;
37
36
  type MessageHandlerFunction<V> = (context: MessageHandlerContext<V>) => MaybePromise<MessageHandlerReturnValue<V> | void>;
38
37
  type MessageHandlerGenerator<V> = (context: MessageHandlerContext<V>) => Generator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>;
@@ -1 +1 @@
1
- {"version":3,"file":"createAmqpConnection.d.ts","sourceRoot":"","sources":["../../../../src/createAmqpConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAmqpConnection.d.ts","sourceRoot":"","sources":["../../../../src/createAmqpConnection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Context } from '@requence/helpers/context';
1
+ import type { Context } from '@requence/helpers/context';
2
2
  import type { Nodes, ServiceNode } from '@requence/helpers/protocol';
3
3
  export type JSONValue = string | number | boolean | {
4
4
  [x: string]: JSONValue;
@@ -18,7 +18,12 @@ export declare function unwrapResult(result: unknown): {
18
18
  value: any;
19
19
  outputName: string | null;
20
20
  };
21
- export default function createExtendedContextHelper(options: {
21
+ type NodeResult = {
22
+ executionDate: null | Date;
23
+ data: any | null;
24
+ error: string | null;
25
+ };
26
+ export default function createContextHelper(options: {
22
27
  serviceId: string;
23
28
  taskId: string;
24
29
  context: Context;
@@ -28,84 +33,70 @@ export default function createExtendedContextHelper(options: {
28
33
  onDefer: (reason?: string) => string;
29
34
  onStateChange: (newObj: Record<string, unknown>) => void;
30
35
  }): {
31
- internal: {
32
- results: Map<string, {
33
- node: {
34
- type: "entry";
35
- id: "__entry__";
36
- output: import("@requence/helpers/protocol").Output[];
37
- inputSchema?: import("json-schema").JSONSchema7 | null | undefined;
38
- metaSchema?: import("json-schema").JSONSchema7 | null | undefined;
39
- meta?: Record<string, any> | undefined;
40
- } | {
41
- type: "service";
42
- id: string;
43
- name: string;
44
- output: import("@requence/helpers/protocol").Output[];
45
- version: string;
46
- inputSchema?: {
47
- type: "object";
48
- properties: Record<string, import("json-schema").JSONSchema7>;
49
- required?: string[] | undefined;
50
- description?: string | undefined;
51
- maxProperties?: number | undefined;
52
- minProperties?: number | undefined;
53
- additionalProperties?: boolean | undefined;
54
- } | null | undefined;
55
- meta?: Record<string, any> | undefined;
56
- configuration?: any;
57
- configurationSchema?: import("json-schema").JSONSchema7 | null | undefined;
58
- alias?: string | undefined;
59
- ttl?: number | undefined;
60
- retry?: number | undefined;
61
- retryDelay?: number | undefined;
62
- } | {
63
- type: "catch";
64
- id: string;
65
- output: import("@requence/helpers/protocol").Output[];
66
- subject: string;
67
- meta?: Record<string, any> | undefined;
68
- } | {
69
- type: "logic";
70
- id: string;
71
- output: import("@requence/helpers/protocol").Output[];
72
- script: string;
73
- concurrency: boolean;
74
- language: "javascript" | "python" | "typescript";
75
- maxExecutionTime: number;
76
- inputSchema?: {
77
- type: "object";
78
- properties: Record<string, import("json-schema").JSONSchema7>;
79
- required?: string[] | undefined;
80
- description?: string | undefined;
81
- maxProperties?: number | undefined;
82
- minProperties?: number | undefined;
83
- additionalProperties?: boolean | undefined;
84
- } | null | undefined;
85
- meta?: Record<string, any> | undefined;
86
- alias?: string | undefined;
87
- } | {
88
- type: "or";
89
- id: string;
90
- output: import("@requence/helpers/protocol").Output[];
91
- meta?: Record<string, any> | undefined;
92
- alias?: string | undefined;
93
- };
94
- executionDate: Date | null;
95
- data: any;
96
- error: string;
97
- }>;
98
- };
36
+ taskId: string;
99
37
  getInput(): unknown;
100
38
  getMeta(): unknown;
101
- getData(alias?: string): any;
102
- getError(alias: string): string | null;
103
- } & {
104
- taskId: string;
39
+ getData(): {
40
+ [x: string]: any;
41
+ };
105
42
  toOutput(name: string | null, value: unknown): OutputValue;
106
43
  defer: (reason?: string) => string;
107
44
  getConfiguration(): unknown;
108
- getNode(): ServiceNode;
45
+ getNode(): ServiceNode & NodeResult;
46
+ getNodes(): (({
47
+ type: "entry";
48
+ id: "__entry__";
49
+ output: import("@requence/helpers/protocol").Output[];
50
+ inputSchema: import("json-schema").JSONSchema7;
51
+ metaSchema: import("json-schema").JSONSchema7;
52
+ meta?: Record<string, any> | undefined;
53
+ } | {
54
+ type: "service";
55
+ id: string;
56
+ name: string;
57
+ output: import("@requence/helpers/protocol").Output[];
58
+ inputSchema: {
59
+ type: "object";
60
+ properties: Record<string, import("json-schema").JSONSchema7>;
61
+ additionalProperties: boolean;
62
+ required?: string[] | undefined;
63
+ description?: string | undefined;
64
+ maxProperties?: number | undefined;
65
+ minProperties?: number | undefined;
66
+ } | {
67
+ type: "null";
68
+ };
69
+ version: string;
70
+ configurationSchema: import("json-schema").JSONSchema7;
71
+ meta?: Record<string, any> | undefined;
72
+ configuration?: any;
73
+ alias?: string | undefined;
74
+ ttl?: number | undefined;
75
+ retry?: number | undefined;
76
+ retryDelay?: number | undefined;
77
+ } | {
78
+ type: "catch";
79
+ id: string;
80
+ output: import("@requence/helpers/protocol").Output[];
81
+ subject: string;
82
+ meta?: Record<string, any> | undefined;
83
+ } | {
84
+ type: "logic";
85
+ id: string;
86
+ output: import("@requence/helpers/protocol").Output[];
87
+ script: string;
88
+ concurrency: boolean;
89
+ language: "javascript" | "python" | "typescript";
90
+ maxExecutionTime: number;
91
+ meta?: Record<string, any> | undefined;
92
+ alias?: string | undefined;
93
+ } | {
94
+ type: "or";
95
+ id: string;
96
+ output: import("@requence/helpers/protocol").Output[];
97
+ meta?: Record<string, any> | undefined;
98
+ alias?: string | undefined;
99
+ }) & NodeResult)[];
109
100
  state: Record<string, any>;
110
101
  debug: {
111
102
  log(...data: any[]): void;
@@ -116,6 +107,6 @@ export default function createExtendedContextHelper(options: {
116
107
  retry(delay?: number): never;
117
108
  abort(reason?: string): never;
118
109
  };
119
- export type ExtendendContextHelper = ReturnType<typeof createExtendedContextHelper>;
110
+ export type ContextHelper = ReturnType<typeof createContextHelper>;
120
111
  export {};
121
112
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAGb,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1B,KAAK,CAAC,SAAS,CAAC,GAChB,IAAI,CAAA;AAER,qBAAa,UAAW,SAAQ,KAAK;IAChB,KAAK,CAAC,EAAE,MAAM;gBAAd,KAAK,CAAC,EAAE,MAAM,YAAA;CAGlC;AAED,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC,QAAA,MAAM,YAAY,eAAyB,CAAA;AAE3C,KAAK,WAAW,GAAG;IACjB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO;;;EAK3C;AAED,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,OAAO,EAAE;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACvE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAMkB,MAAM,GAAG,IAAI,SAAS,OAAO,GAAG,WAAW;qBARzC,MAAM,KAAK,MAAM;wBAgBd,OAAO;eAUsC,WAAW;WAGV,MAAM,CACtE,MAAM,EACN,GAAG,CACJ;;qBAEc,GAAG,EAAE;sBAGJ,GAAG,EAAE;sBAGL,GAAG,EAAE;uBAGJ,GAAG,EAAE;;kBAIR,MAAM;mBAGL,MAAM;EAIxB;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAC7C,OAAO,2BAA2B,CACnC,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1B,KAAK,CAAC,SAAS,CAAC,GAChB,IAAI,CAAA;AAER,qBAAa,UAAW,SAAQ,KAAK;IAChB,KAAK,CAAC,EAAE,MAAM;gBAAd,KAAK,CAAC,EAAE,MAAM,YAAA;CAGlC;AAED,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC,QAAA,MAAM,YAAY,eAAyB,CAAA;AAE3C,KAAK,WAAW,GAAG;IACjB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AAUD,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO;;;EAK3C;AAED,KAAK,UAAU,GAAG;IAChB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,OAAO,EAAE;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACvE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACzD;;gBAkBe,OAAO;eAIR,OAAO;;;;mBAmBH,MAAM,GAAG,IAAI,SAAS,OAAO,GAAG,WAAW;qBA3CzC,MAAM,KAAK,MAAM;wBAmDd,OAAO;eAUe,WAAW,GAAG,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOA,MAAM,CACtE,MAAM,EACN,GAAG,CACJ;;qBAEc,GAAG,EAAE;sBAGJ,GAAG,EAAE;sBAGL,GAAG,EAAE;uBAGJ,GAAG,EAAE;;kBAIR,MAAM;mBAGL,MAAM;EAIxB;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@requence/service",
3
3
  "type": "module",
4
- "version": "1.0.0-alpha.4",
4
+ "version": "1.0.0-alpha.5",
5
5
  "bin": {
6
6
  "requence-service": "build/cli.js"
7
7
  },
@@ -17,7 +17,7 @@
17
17
  "prettier": "^3.4.2",
18
18
  "semver": "^7.6.3",
19
19
  "yargs": "^17.7.2",
20
- "zod": "^3.23.8"
20
+ "zod": "^3.24.1"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@requence/helpers": "workspace:*",