@requence/service 1.0.0-alpha.15 → 1.0.0-alpha.17

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,17 @@
1
1
  # @requence/service
2
2
 
3
+ ## 1.0.0-alpha.17
4
+
5
+ ### Patch Changes
6
+
7
+ - 41ef8e2: allow overwriting tls options
8
+
9
+ ## 1.0.0-alpha.16
10
+
11
+ ### Patch Changes
12
+
13
+ - 3a5e3e2: allow more access token options
14
+
3
15
  ## 1.0.0-alpha.15
4
16
 
5
17
  ### Patch Changes
package/build/cli.js CHANGED
@@ -20,18 +20,23 @@ function errorExit(title, text) {
20
20
  process.exit(1);
21
21
  }
22
22
  y.command("generate-types", "generates typescript types", (yargs2) => yargs2.option("access-token", {
23
- describe: "service key"
23
+ describe: "service key",
24
+ type: "string"
24
25
  }).option("outfile", {
25
26
  default: "requence-env.d.ts"
26
27
  }).option("outdir", {
27
28
  default: ""
28
29
  }), async (argv) => {
29
- const token = argv.accessToken ?? process.env.REQUENCE_ACCESS_TOKEN ?? JSON.parse(fs.readFileSync("package.json", "utf-8")).requence?.accessToken;
30
+ let token = argv.accessToken ?? process.env.REQUENCE_SERVICE_ACCESS_TOKEN ?? process.env.REQUENCE_ACCESS_TOKEN;
31
+ if (!token) {
32
+ const pkgJson = JSON.parse(fs.readFileSync("package.json", "utf-8"));
33
+ token = pkgJson.requence?.service?.accessToken ?? pkgJson.requence?.accessToken;
34
+ }
30
35
  console.info();
31
36
  if (!token) {
32
- errorExit("No access token found", `You can provide the access token as argument to ${chalk.bold("createTask")},
33
- as environment variable ${chalk.bold("REQUENCE_ACCESS_TOKEN")} or
34
- in your ${chalk.bold("package.json")} in ${chalk.bold("requence.accessToken")}`);
37
+ errorExit("No access token found", `You can provide the access token as argument to ${chalk.bold("createService")},
38
+ as environment variable ${chalk.bold("REQUENCE_ACCESS_TOKEN")} / ${chalk.bold("REQUENCE_SERVICE_ACCESS_TOKEN")} or
39
+ in your ${chalk.bold("package.json")} in ${chalk.bold("requence.accessToken")} / ${chalk.bold("requence.service.accessToken")}`);
35
40
  }
36
41
  const parts = deobfuscate(token);
37
42
  if (parts.length !== 3 || parts[0] !== "service") {
@@ -58,5 +63,5 @@ ${text}`;
58
63
  console.info(chalk.green("types saved to", chalk.bold(path.relative(process.cwd(), file))));
59
64
  }).scriptName("requence-service").help("h").demandCommand(1, 1).strict().parse();
60
65
 
61
- //# debugId=46FA48218F6D1DD064756E2164756E21
66
+ //# debugId=BCA4F1671D286D7E64756E2164756E21
62
67
  //# 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/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"
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 type: 'string',\n })\n .option('outfile', {\n default: 'requence-env.d.ts',\n })\n .option('outdir', {\n default: '',\n }),\n async (argv) => {\n let token =\n argv.accessToken ??\n process.env.REQUENCE_SERVICE_ACCESS_TOKEN ??\n process.env.REQUENCE_ACCESS_TOKEN\n\n if (!token) {\n const pkgJson = JSON.parse(fs.readFileSync('package.json', 'utf-8'))\n token =\n pkgJson.requence?.service?.accessToken ?? pkgJson.requence?.accessToken\n }\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('createService')},\\nas environment variable ${chalk.bold('REQUENCE_ACCESS_TOKEN')} / ${chalk.bold('REQUENCE_SERVICE_ACCESS_TOKEN')} or\\nin your ${chalk.bold('package.json')} in ${chalk.bold('requence.accessToken')} / ${chalk.bold('requence.service.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;AAAA,EACtD,QAAQ,MAAM,MAAM,IAAI,KAAK,QAAQ;AAAA,CAAI,CAAC;AAAA,EAC1C,IAAI,MAAM;AAAA,IACR,QAAQ,MAAM,MAAM,IAAI,IAAI,IAAI;AAAA,CAAI;AAAA,EACtC;AAAA,EACA,QAAQ,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;AAAA,EACd,MAAM,QACJ,KAAK,eACL,QAAQ,IAAI,yBACZ,KAAK,MAAM,GAAG,aAAa,gBAAgB,OAAO,CAAC,EAAE,UAAU;AAAA,EAEjE,QAAQ,KAAK;AAAA,EACb,KAAK,OAAO;AAAA,IACV,UACE,yBACA,mDAAmD,MAAM,KAAK,YAAY;AAAA,0BAA+B,MAAM,KAAK,uBAAuB;AAAA,UAAiB,MAAM,KAAK,cAAc,QAAQ,MAAM,KAAK,sBAAsB,GAChO;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,YAAY,KAAK;AAAA,EAC/B,IAAI,MAAM,WAAW,KAAK,MAAM,OAAO,WAAW;AAAA,IAChD,UAAU,qBAAqB;AAAA,EACjC;AAAA,EAEA,SAAS,kBAAkB,aAAa;AAAA,EAExC,MAAM,WAAW,MAAM,MAAM,YAAY,6BAA6B;AAAA,IACpE,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,eAAe,UAAU;AAAA,IAC3B;AAAA,EACF,CAAC;AAAA,EAED,KAAK,SAAS,IAAI;AAAA,IAChB,MAAM,QAAQ,MAAM,SAAS,KAAK;AAAA,IAClC,UAAU,KAAK;AAAA,EACjB;AAAA,EAEA,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,EACjC,MAAM,OAAO;AAAA;AAAA;AAAA,EAAkD;AAAA,EAE/D,MAAM,OAAO,KAAK,KAAK,KAAK,UAAU,QAAQ,IAAI,GAAG,KAAK,OAAO;AAAA,EACjE,GAAG,cAAc,MAAM,IAAI;AAAA,EAE3B,QAAQ,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",
7
+ "mappings": ";;;;;;AAEA;AACA;AAGA;AACA;AACA;AAEA,IAAM,IAAI,MAAM,QAAQ,QAAQ,IAAI,CAAC;AAErC,SAAS,SAAS,CAAC,OAAe,MAAsB;AAAA,EACtD,QAAQ,MAAM,MAAM,IAAI,KAAK,QAAQ;AAAA,CAAI,CAAC;AAAA,EAC1C,IAAI,MAAM;AAAA,IACR,QAAQ,MAAM,MAAM,IAAI,IAAI,IAAI;AAAA,CAAI;AAAA,EACtC;AAAA,EACA,QAAQ,KAAK,CAAC;AAAA;AAGhB,EAAE,QACA,kBACA,8BACA,CAAC,WACC,OACG,OAAO,gBAAgB;AAAA,EACtB,UAAU;AAAA,EACV,MAAM;AACR,CAAC,EACA,OAAO,WAAW;AAAA,EACjB,SAAS;AACX,CAAC,EACA,OAAO,UAAU;AAAA,EAChB,SAAS;AACX,CAAC,GACL,OAAO,SAAS;AAAA,EACd,IAAI,QACF,KAAK,eACL,QAAQ,IAAI,iCACZ,QAAQ,IAAI;AAAA,EAEd,KAAK,OAAO;AAAA,IACV,MAAM,UAAU,KAAK,MAAM,GAAG,aAAa,gBAAgB,OAAO,CAAC;AAAA,IACnE,QACE,QAAQ,UAAU,SAAS,eAAe,QAAQ,UAAU;AAAA,EAChE;AAAA,EAEA,QAAQ,KAAK;AAAA,EACb,KAAK,OAAO;AAAA,IACV,UACE,yBACA,mDAAmD,MAAM,KAAK,eAAe;AAAA,0BAA+B,MAAM,KAAK,uBAAuB,OAAO,MAAM,KAAK,+BAA+B;AAAA,UAAiB,MAAM,KAAK,cAAc,QAAQ,MAAM,KAAK,sBAAsB,OAAO,MAAM,KAAK,8BAA8B,GACpU;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,YAAY,KAAK;AAAA,EAC/B,IAAI,MAAM,WAAW,KAAK,MAAM,OAAO,WAAW;AAAA,IAChD,UAAU,qBAAqB;AAAA,EACjC;AAAA,EAEA,SAAS,kBAAkB,aAAa;AAAA,EAExC,MAAM,WAAW,MAAM,MAAM,YAAY,6BAA6B;AAAA,IACpE,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,eAAe,UAAU;AAAA,IAC3B;AAAA,EACF,CAAC;AAAA,EAED,KAAK,SAAS,IAAI;AAAA,IAChB,MAAM,QAAQ,MAAM,SAAS,KAAK;AAAA,IAClC,UAAU,KAAK;AAAA,EACjB;AAAA,EAEA,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,EACjC,MAAM,OAAO;AAAA;AAAA;AAAA,EAAkD;AAAA,EAE/D,MAAM,OAAO,KAAK,KAAK,KAAK,UAAU,QAAQ,IAAI,GAAG,KAAK,OAAO;AAAA,EACjE,GAAG,cAAc,MAAM,IAAI;AAAA,EAE3B,QAAQ,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": "BCA4F1671D286D7E64756E2164756E21",
9
9
  "names": []
10
10
  }
package/build/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-6w7td62p.js";
5
5
 
6
6
  // src/index.ts
7
- import { readFileSync } from "node:fs";
7
+ import fs from "node:fs";
8
8
 
9
9
  // ../helpers/src/utils/clone.ts
10
10
  var CLONE_SYMBOL = Symbol("original");
@@ -254,9 +254,9 @@ async function mapOutput(params) {
254
254
  return mapped;
255
255
  }
256
256
  // ../helpers/src/files/isValidMimeType.ts
257
- import mime from "mime-types";
257
+ import { extension } from "mime-types";
258
258
  function isValidMimeType(fileInfo, accept) {
259
- const ext = fileInfo.ext ?? (mime.extension(fileInfo.mime) || "???");
259
+ const ext = fileInfo.ext ?? (extension(fileInfo.mime) || "???");
260
260
  const mimeType = fileInfo.mime.toLowerCase().split(";")[0].trim();
261
261
  const acceptTypes = accept.split(",").map((type) => type.toLowerCase().split(";")[0].trim());
262
262
  return acceptTypes.some((acceptedType) => {
@@ -978,6 +978,8 @@ var abortSchema = z7.object({
978
978
  });
979
979
  var nodeOptionsSchema = z7.object({
980
980
  maxExecutions: z7.number().int().min(0).optional().default(10),
981
+ compliance: z7.enum(["mcp-tool"]).nullable().default(null),
982
+ exitEarly: z7.boolean().optional(),
981
983
  uploadUrl: z7.string().optional(),
982
984
  streamUrl: z7.string().optional()
983
985
  });
@@ -991,7 +993,9 @@ var createNodesSchema = z7.object({
991
993
  var commandSchema = z7.union([abortSchema, createNodesSchema]);
992
994
 
993
995
  // src/createAmqpConnection.ts
994
- import { connect } from "amqp-connection-manager";
996
+ import {
997
+ connect
998
+ } from "amqp-connection-manager";
995
999
  import { z as z8 } from "zod";
996
1000
 
997
1001
  // src/helpers.ts
@@ -1145,11 +1149,12 @@ function createConnection({
1145
1149
  version,
1146
1150
  prefetch = 1,
1147
1151
  silent = false,
1148
- connectionTimeout
1152
+ connectionTimeout,
1153
+ connectionOptions
1149
1154
  }, messageHandler) {
1150
1155
  const queue = `${url.username}@${version}`;
1151
1156
  const exchange = url.username;
1152
- const connection = connect(url.toString());
1157
+ const connection = connect(url.toString(), { connectionOptions });
1153
1158
  const connectedPromise = new Promise((resolve2, reject) => {
1154
1159
  const unsubscribe = () => {
1155
1160
  clearTimeout(timeout);
@@ -1199,8 +1204,7 @@ function createConnection({
1199
1204
  return;
1200
1205
  }
1201
1206
  const donePromises = [];
1202
- let removeActiveMessage = () => {
1203
- };
1207
+ let removeActiveMessage = () => {};
1204
1208
  try {
1205
1209
  let deferred = false;
1206
1210
  let deferredReason = null;
@@ -1435,7 +1439,8 @@ var connectionOptionsSchema = z9.object({
1435
1439
  version: z9.string(),
1436
1440
  silent: z9.boolean().optional(),
1437
1441
  prefetch: z9.number().int().optional(),
1438
- connectionTimeout: z9.number().positive().default(3000)
1442
+ connectionTimeout: z9.number().positive().default(3000),
1443
+ connectionOptions: z9.any()
1439
1444
  });
1440
1445
  function createService(optionsOrVersion, optionalMessageHandler) {
1441
1446
  let options;
@@ -1449,7 +1454,11 @@ function createService(optionsOrVersion, optionalMessageHandler) {
1449
1454
  options = optionsOrVersion;
1450
1455
  messageHandler = optionalMessageHandler;
1451
1456
  }
1452
- const token = options.accessToken ?? process.env.REQUENCE_ACCESS_TOKEN ?? JSON.parse(readFileSync("package.json", "utf-8")).requence?.accessToken;
1457
+ let token = options.accessToken ?? process.env.REQUENCE_SERVICE_ACCESS_TOKEN ?? process.env.REQUENCE_ACCESS_TOKEN;
1458
+ if (!token) {
1459
+ const pkgJson = JSON.parse(fs.readFileSync("package.json", "utf-8"));
1460
+ token = pkgJson.requence?.service?.accessToken ?? pkgJson.requence?.accessToken;
1461
+ }
1453
1462
  if (!token) {
1454
1463
  throw new Error("No service key found");
1455
1464
  }
@@ -1469,5 +1478,5 @@ export {
1469
1478
  RequenceFile
1470
1479
  };
1471
1480
 
1472
- //# debugId=41E805E9FDA0F22664756E2164756E21
1481
+ //# debugId=7CF68A4BC8D609E864756E2164756E21
1473
1482
  //# sourceMappingURL=index.js.map
@@ -2,19 +2,19 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../../helpers/src/utils/clone.ts", "../../helpers/src/utils/createObjectProxy.ts", "../../helpers/src/utils/createRemotePromise.ts", "../../helpers/src/utils/isRecord.ts", "../../helpers/src/utils/mapData.ts", "../../helpers/src/context/context.ts", "../../helpers/src/files/index.ts", "../../helpers/src/files/mapOutput.ts", "../../helpers/src/files/isValidMimeType.ts", "../../helpers/src/files/RequenceFile.ts", "../../helpers/src/files/RequenceStream.ts", "../../helpers/src/protocol/command.ts", "../../helpers/src/protocol/nodes.ts", "../../helpers/src/protocol/getNodeOutputs.ts", "../../helpers/src/protocol/createNodeMaps.ts", "../../helpers/src/protocol/getPossiblePaths.ts", "../../helpers/src/protocol/identifyNode.ts", "../../helpers/src/protocol/node.ts", "../../helpers/src/jsonschema/zod.ts", "../../helpers/src/jsonschema/validate.ts", "../src/createAmqpConnection.ts", "../src/helpers.ts", "../src/mapInput.ts"],
4
4
  "sourcesContent": [
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 { RequenceFile, RequenceStream } from '@requence/helpers/files'\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",
5
+ "import fs from 'node:fs'\n\nimport { deobfuscate } from '@requence/helpers'\nimport type { AmqpConnectionManagerOptions } from 'amqp-connection-manager'\nimport { z } from 'zod'\n\nimport createAmqpConnection, {\n type ConnectionApi,\n type MessageHandler,\n} from './createAmqpConnection.ts'\n\nexport { RequenceFile, RequenceStream } from '@requence/helpers/files'\n\nexport type ServiceApi<\n V extends keyof RequenceService.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 connectionOptions?: AmqpConnectionManagerOptions['connectionOptions']\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 connectionOptions: z.any(),\n})\n\nexport function createService<\n V extends keyof RequenceService.Version | (string & {}),\n>(version: V, messageHandler: MessageHandler<V>): ServiceApi<V>\nexport function createService<\n V extends keyof RequenceService.Version | (string & {}),\n>(options: ServiceOptions<V>, messageHandler: MessageHandler<V>): ServiceApi<V>\nexport function createService<\n V extends keyof RequenceService.Version | (string & {}),\n>(\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 let token =\n options.accessToken ??\n process.env.REQUENCE_SERVICE_ACCESS_TOKEN ??\n process.env.REQUENCE_ACCESS_TOKEN\n\n if (!token) {\n const pkgJson = JSON.parse(fs.readFileSync('package.json', 'utf-8'))\n token =\n pkgJson.requence?.service?.accessToken ?? pkgJson.requence?.accessToken\n }\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
  "export const CLONE_SYMBOL = Symbol('original')\n\nexport function clone(data: any): any {\n if (typeof data !== 'object' || data === null) {\n return data\n }\n\n const target = (data as any)[CLONE_SYMBOL]\n if (target) {\n return clone(target)\n }\n\n if (Array.isArray(data)) {\n return data.map(clone)\n }\n\n return Object.fromEntries(\n Object.entries(data).map(([key, value]) => [key, clone(value)]),\n )\n}\n",
7
7
  "import { CLONE_SYMBOL } from './clone.ts'\n\nexport function createObjectProxy(\n obj: Record<string, unknown>,\n onChange: (newObj: Record<string, unknown>) => void,\n) {\n return new Proxy(obj, {\n set(target, property, newValue) {\n const result = Reflect.set(target, property, newValue)\n onChange(target)\n return result\n },\n deleteProperty(target, property) {\n const result = Reflect.deleteProperty(target, property)\n onChange(target)\n return result\n },\n get(target, property, receiver) {\n if (property === CLONE_SYMBOL) {\n return target\n }\n\n const result = Reflect.get(target, property, receiver)\n\n if (typeof result === 'object' && result !== null) {\n return createObjectProxy(result, () => onChange(target))\n }\n\n return result\n },\n })\n}\n",
8
8
  "export function createRemotePromise<T = void>(\n onAwait?: (\n resolve: (value: T) => void,\n reject: (error: any) => void,\n ) => void | Promise<void>,\n) {\n let resolvePromise!: (value: T | PromiseLike<T>) => void\n let rejectPromise!: (reason?: any) => void\n\n const internalPromise = new Promise<T>((resolve, reject) => {\n resolvePromise = resolve\n rejectPromise = reject\n })\n\n let isAwaited = false\n\n const wrappedPromise = new Proxy(internalPromise, {\n get(target, property: keyof PromiseLike<T>) {\n if (\n property === 'then' ||\n property === 'catch' ||\n property === 'finally'\n ) {\n if (!isAwaited && onAwait) {\n isAwaited = true\n onAwait(resolvePromise, rejectPromise)\n }\n return target[property].bind(target)\n }\n\n return target[property]\n },\n })\n\n return Object.assign(wrappedPromise, {\n resolve: resolvePromise,\n reject: rejectPromise,\n promise: wrappedPromise,\n })\n}\n\nexport type RemotePromise<T> = ReturnType<typeof createRemotePromise<T>>\n",
9
9
  "import { z } from 'zod'\n\nconst recordSchema = z.record(z.unknown())\nexport function isRecord(data: unknown): data is Record<string, unknown> {\n return recordSchema.safeParse(data).success\n}\n",
10
10
  "import { isRecord } from './isRecord.ts'\n\ntype DataVistor<T> = (\n data: T,\n path: Array<string | number>,\n) => Promise<any> | any\n\ninterface DataVistors {\n Null?: DataVistor<null>\n String?: DataVistor<string>\n Number?: DataVistor<number>\n Object?: DataVistor<object>\n Array?: DataVistor<Array<any>>\n Buffer?: DataVistor<Buffer>\n}\n\ntype HasPromiseVistor<T extends DataVistors, Then, Else> = T[keyof T] extends (\n ...args: any[]\n) => any\n ? Promise<any> extends ReturnType<T[keyof T]>\n ? Then\n : Else\n : Else\n\nfunction resolve<T>(value: T | Promise<T>, onResolve: (value: T) => void) {\n if (value instanceof Promise) {\n return Promise.resolve()\n .then(() => value)\n .then(onResolve)\n }\n return onResolve(value)\n}\n\nfunction notUndefined(value: unknown, fallback: unknown) {\n return resolve(value, (resolvedValue) =>\n typeof resolvedValue === 'undefined' ? fallback : resolvedValue,\n )\n}\n\nexport function mapData<\n Output,\n Input = unknown,\n V extends DataVistors = DataVistors,\n>(\n data: Input,\n visitors: V,\n): HasPromiseVistor<\n V,\n Promise<unknown extends Output ? Input : Output>,\n unknown extends Output ? Input : Output\n> {\n const traverseData = (data: any, path: Array<string | number>): any => {\n if (Array.isArray(data)) {\n return resolve(visitors.Array?.(data, path), (resolvedData) => {\n if (resolvedData) {\n return resolvedData\n }\n const items = data.map((item, index) =>\n traverseData(item, [...path, index]),\n )\n if (items.some((item) => item instanceof Promise)) {\n return Promise.all(items)\n }\n\n return items\n })\n }\n if (data === null) {\n return notUndefined(visitors.Null?.(data, path), data)\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) {\n return notUndefined(visitors.Buffer?.(data, path), data)\n }\n if (typeof data === 'string') {\n return notUndefined(visitors.String?.(data, path), data)\n }\n if (typeof data === 'number') {\n return notUndefined(visitors.Number?.(data, path), data)\n }\n if (isRecord(data)) {\n return resolve(visitors.Object?.(data, path), (resolvedData) => {\n if (resolvedData) {\n return resolvedData\n }\n\n const entries = Object.entries(data).map(([key, value]) => [\n key,\n traverseData(value, [...path, key]),\n ])\n\n if (entries.some(([, value]) => value instanceof Promise)) {\n return Promise.all(\n entries.map(([key, value]) =>\n Promise.resolve()\n .then(() => value)\n .then((resolvedValue) => [key, resolvedValue]),\n ),\n ).then((entries) => Object.fromEntries(entries))\n }\n\n return Object.fromEntries(entries)\n })\n }\n return data\n }\n\n return traverseData(data, [])\n}\n",
11
- "import { z } from 'zod'\n\nimport {\n RequenceFile,\n RequenceStream,\n isFileObject,\n isStreamObject,\n} from '../files/index.ts'\nimport type { Nodes } from '../protocol/nodes.ts'\nimport { mapData } from '../utils/mapData.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\nfunction resolveRequenceTypes(data: any) {\n return mapData(data, {\n Object(obj) {\n if (isFileObject(obj)) {\n return RequenceFile.fromFileObject(obj)\n }\n\n if (isStreamObject(obj)) {\n return RequenceStream.fromStreamObject(obj)\n }\n },\n })\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: resolveRequenceTypes(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) ? resolveRequenceTypes(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",
11
+ "import { z } from 'zod'\n\nimport {\n RequenceFile,\n RequenceStream,\n isFileObject,\n isStreamObject,\n} from '../files/index.ts'\nimport type { Nodes } from '../protocol/nodes.ts'\nimport { mapData } from '../utils/mapData.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\nfunction resolveRequenceTypes(data: any) {\n return mapData(data, {\n Object(obj) {\n if (isFileObject(obj)) {\n return RequenceFile.fromFileObject(obj)\n }\n\n if (isStreamObject(obj)) {\n return RequenceStream.fromStreamObject(obj)\n }\n },\n })\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: resolveRequenceTypes(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 uniqueNodeIds = Array.from(new Set(nodeIds))\n const combinedData = uniqueNodeIds\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",
12
12
  "import { z } from 'zod'\n\nexport * from './mapOutput.ts'\nexport * from './isValidMimeType.ts'\nexport * from './RequenceFile.ts'\nexport * from './RequenceStream.ts'\n\nconst fileObjectSchema = z.object({\n size: z.number().int().positive(),\n mime: z.string(),\n url: z.string().url(),\n __REQUENCE_type: z.literal('RequenceFile'),\n})\n\nexport type FileObject = z.infer<typeof fileObjectSchema>\n\nexport function toFileObject(fileInfo: {\n size: number\n mime: string\n url: string\n}): FileObject {\n return {\n ...fileInfo,\n __REQUENCE_type: 'RequenceFile',\n }\n}\n\nexport function isFileObject(data: unknown): data is FileObject {\n return fileObjectSchema.safeParse(data).success\n}\n\nconst streamObjectSchema = z.object({\n mime: z.string(),\n url: z.string().url(),\n __REQUENCE_type: z.literal('RequenceStream'),\n})\n\nexport type StreamObject = z.infer<typeof streamObjectSchema>\n\nexport function toStreamObject(streamInfo: {\n mime: string\n url: string\n}): StreamObject {\n return {\n ...streamInfo,\n __REQUENCE_type: 'RequenceStream',\n }\n}\n\nexport function isStreamObject(data: unknown): data is StreamObject {\n return streamObjectSchema.safeParse(data).success\n}\n",
13
13
  "import {\n RequenceFile,\n RequenceStream,\n toFileObject,\n toStreamObject,\n} from './index.ts'\nimport type { NodeOptions } from '../protocol/command.ts'\nimport { mapData } from '../utils/mapData.ts'\n\nasync function upload(\n uploadUrl: string,\n body: BodyInit | null,\n signal?: AbortSignal,\n contentType?: string | null,\n) {\n const uploadResponse = await fetch(uploadUrl, {\n method: 'POST',\n signal,\n headers: contentType\n ? {\n 'Content-Type': contentType,\n }\n : {},\n body,\n })\n\n const data = await uploadResponse.json()\n if (!data || typeof data !== 'object') {\n throw new Error('invalid upload response')\n }\n\n return toFileObject(data as { size: number; mime: string; url: string })\n}\n\n/**\n * nodejs closes the stream when no data where pushed before executing fetch,\n * this way we wait for the first bytes, the executing fetch\n * All that gets obsolete once we use bun.\n */\nasync function stream(\n streamUrl: string,\n stream: ReadableStream,\n signal?: AbortSignal,\n contentType?: string | null,\n) {\n const [testStream, dataStream] = stream.tee()\n\n const reader = testStream.getReader()\n const dataPromise = reader.read().then(({ done }) => {\n if (done) {\n throw new Error('No streaming date received')\n }\n\n reader.cancel()\n })\n\n const streamResponse = await fetch(streamUrl, {\n method: 'POST',\n signal,\n headers: contentType ? { 'Content-Type': contentType } : {},\n })\n\n const data = await streamResponse.json()\n if (!data || typeof data !== 'object') {\n throw new Error('invalid stream response')\n }\n\n const { mime, url } = data as { mime: string; url: string }\n await dataPromise\n\n // don't wait\n const done = fetch(url, {\n method: 'POST',\n signal,\n duplex: 'half', // this is not typed but needed for nodejs to handle readable streams\n body: dataStream,\n } as RequestInit)\n\n return [toStreamObject({ mime, url }), done] as const\n}\n\nexport async function mapOutput(params: {\n value: unknown\n options: Pick<NodeOptions, 'uploadUrl' | 'streamUrl'>\n onFail?: (error: Error) => void\n onSkip?: () => void\n onDone?: () => void\n signal?: AbortSignal\n}) {\n const streamPromises: Array<Promise<any>> = []\n const mapped = await mapData(params.value, {\n async Object(obj) {\n if (obj instanceof Blob || obj instanceof RequenceFile) {\n // don't reupload existing files\n if (obj instanceof RequenceFile && obj.fileObject) {\n return obj.fileObject\n }\n\n if (params.options.uploadUrl) {\n try {\n if (obj instanceof Blob) {\n return await upload(\n params.options.uploadUrl,\n obj,\n params.signal,\n obj.type,\n )\n }\n\n if (obj instanceof RequenceFile) {\n return await upload(\n params.options.uploadUrl,\n await obj.blob(),\n params.signal,\n obj.mimeType,\n )\n }\n } catch (error) {\n if (!(error instanceof Error)) {\n throw error\n }\n params.onFail?.(error)\n return null\n }\n } else {\n params.onSkip?.()\n return null\n }\n }\n\n if (obj instanceof Response || obj instanceof RequenceStream) {\n if (obj instanceof RequenceStream && obj.streamObject) {\n return obj.streamObject\n }\n\n if (params.options.streamUrl) {\n try {\n if (obj instanceof Response && obj.body) {\n const [streamObject, streamPromise] = await stream(\n params.options.streamUrl,\n obj.body,\n params.signal,\n obj.headers.get('Content-Type'),\n )\n streamPromises.push(streamPromise)\n return streamObject\n }\n\n if (obj instanceof RequenceStream) {\n const [streamObject, streamPromise] = await stream(\n params.options.streamUrl,\n obj.stream(),\n params.signal,\n obj.mimeType,\n )\n streamPromises.push(streamPromise)\n return streamObject\n }\n } catch (error) {\n if (!(error instanceof Error)) {\n throw error\n }\n params.onFail?.(error)\n return null\n }\n } else {\n params.onSkip?.()\n return null\n }\n }\n },\n })\n\n Promise.allSettled(streamPromises).then(() => params.onDone?.())\n\n return mapped\n}\n",
14
- "import mime from 'mime-types'\n\nexport function isValidMimeType(\n fileInfo: { ext?: string; mime: string },\n accept: string,\n) {\n const ext = fileInfo.ext ?? (mime.extension(fileInfo.mime) || '???')\n\n const mimeType = fileInfo.mime.toLowerCase().split(';')[0].trim()\n const acceptTypes = accept\n .split(',')\n .map((type) => type.toLowerCase().split(';')[0].trim())\n\n return acceptTypes.some((acceptedType) => {\n if (acceptedType === '*/*') {\n return true\n }\n\n if (acceptedType.endsWith('/*')) {\n const baseType = acceptedType.split('/')[0]\n return mimeType.startsWith(baseType + '/')\n }\n\n if (acceptedType.includes('/')) {\n return mimeType === acceptedType\n }\n\n if (acceptedType.startsWith('.')) {\n return ext.toLowerCase().endsWith(acceptedType)\n }\n\n return false\n })\n}\n",
14
+ "import { extension } from 'mime-types'\n\nexport function isValidMimeType(\n fileInfo: { ext?: string; mime: string },\n accept: string,\n) {\n const ext = fileInfo.ext ?? (extension(fileInfo.mime) || '???')\n\n const mimeType = fileInfo.mime.toLowerCase().split(';')[0].trim()\n const acceptTypes = accept\n .split(',')\n .map((type) => type.toLowerCase().split(';')[0].trim())\n\n return acceptTypes.some((acceptedType) => {\n if (acceptedType === '*/*') {\n return true\n }\n\n if (acceptedType.endsWith('/*')) {\n const baseType = acceptedType.split('/')[0]\n return mimeType.startsWith(baseType + '/')\n }\n\n if (acceptedType.includes('/')) {\n return mimeType === acceptedType\n }\n\n if (acceptedType.startsWith('.')) {\n return ext.toLowerCase().endsWith(acceptedType)\n }\n\n return false\n })\n}\n",
15
15
  "import type { FileObject } from './index.ts'\nimport type { MainMimeType, SubMimeType, ValidMimeType } from './types.ts'\n\ninterface RequenceFilePropertyBag<T> extends Omit<BlobPropertyBag, 'type'> {\n type: T\n}\n\nexport interface RequenceFileType<A, B> {\n size: number\n mimeType: string\n mainMimeType: A\n subMimeType: B\n text(): Promise<string>\n json(): Promise<unknown>\n blob(): Promise<Blob>\n arrayBuffer(): Promise<ArrayBuffer>\n}\n\nexport class RequenceFile<\n T extends `${string}/${string}` = '*/*',\n A = MainMimeType<T>,\n B = SubMimeType<T>,\n> implements RequenceFileType<A, B>\n{\n #data: Blob\n #file: FileObject | null = null\n constructor(\n blobParts: BlobPart[],\n options?: RequenceFilePropertyBag<ValidMimeType<T>>,\n ) {\n this.#data = new Blob(blobParts, options)\n }\n\n /** @internal */\n static fromFileObject<T extends `${string}/${string}`>(file: FileObject) {\n const instance = new this([], { type: 'x/x' })\n instance.#file = file\n return instance as RequenceFile<T>\n }\n\n /** @internal */\n get fileObject() {\n return this.#file\n }\n\n get size() {\n return this.#file?.size ?? this.#data.size\n }\n\n get mimeType() {\n return this.#file?.mime ?? this.#data.type\n }\n\n get mainMimeType() {\n return this.mimeType.split('/')[0] as A\n }\n\n get subMimeType() {\n return this.mimeType.split('/')[1] as B\n }\n\n async text() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.text())\n }\n return this.#data.text()\n }\n\n async json() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.json())\n }\n return JSON.parse(await this.text())\n }\n\n async blob() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.blob())\n }\n return this.#data\n }\n\n async arrayBuffer() {\n if (this.#file) {\n return fetch(this.#file.url).then((response) => response.arrayBuffer())\n }\n return this.#data.arrayBuffer()\n }\n\n toString() {\n return `RequenceFile<${this.mimeType}>`\n }\n\n toJSON() {\n return `RequenceFile<${this.mimeType}>`\n }\n}\n",
16
16
  "import type { StreamObject } from './index.ts'\nimport type { MainMimeType, SubMimeType, ValidMimeType } from './types.ts'\n\nexport interface RequenceStreamType<A, B> {\n mimeType: string\n mainMimeType: A\n subMimeType: B\n stream(): ReadableStream\n}\n\ninterface RequenceStreamOptions<T> {\n type: T\n}\n\nexport class RequenceStream<\n T extends `${string}/${string}` = '*/*',\n A = MainMimeType<T>,\n B = SubMimeType<T>,\n> implements RequenceStreamType<A, B>\n{\n #data: ReadableStream\n #stream: StreamObject | null = null\n #options: RequenceStreamOptions<any>\n\n constructor(\n stream: ReadableStream,\n options: RequenceStreamOptions<ValidMimeType<T>>,\n ) {\n this.#data = stream\n this.#options = options\n }\n\n /** @internal */\n static fromStreamObject<T extends `${string}/${string}`>(\n stream: StreamObject,\n ) {\n const instance = new this(null as unknown as ReadableStream, {\n type: 'x/x',\n })\n instance.#stream = stream\n return instance as unknown as RequenceStream<T>\n }\n\n /** @internal */\n get streamObject() {\n return this.#stream\n }\n\n get mimeType() {\n return this.#stream?.mime ?? this.#options.type\n }\n\n get mainMimeType() {\n return this.mimeType.split('/')[0] as A\n }\n\n get subMimeType() {\n return this.mimeType.split('/')[1] as B\n }\n\n stream() {\n if (this.#stream) {\n const { readable, writable } = new TransformStream()\n\n fetch(this.#stream.url).then((response) =>\n response.body?.pipeTo(writable),\n )\n\n return readable\n }\n return this.#data\n }\n\n asyncIterable(): AsyncIterable<Uint8Array> {\n const reader = this.stream().getReader()\n\n return {\n [Symbol.asyncIterator]() {\n return {\n async next() {\n return reader.read() as Promise<IteratorResult<Uint8Array>>\n },\n async return() {\n reader.cancel()\n reader.releaseLock()\n return { done: true, value: null }\n },\n }\n },\n }\n }\n\n toString() {\n return `RequenceStream<${this.mimeType}>`\n }\n\n toJSON() {\n return `RequenceStream<${this.mimeType}>`\n }\n}\n",
17
- "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 uploadUrl: z.string().optional(),\n streamUrl: z.string().optional(),\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",
17
+ "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 compliance: z.enum(['mcp-tool']).nullable().default(null),\n exitEarly: z.boolean().optional(),\n uploadUrl: z.string().optional(),\n streamUrl: z.string().optional(),\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",
18
18
  "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",
19
19
  "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",
20
20
  "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",
@@ -23,11 +23,11 @@
23
23
  "import { z } from 'zod'\n\nimport {\n jsonSchema7NullSchema,\n jsonSchema7ObjectSchema,\n jsonSchema7Schema,\n} from '../jsonschema/zod.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(1000),\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",
24
24
  "import { z } from 'zod'\n\nimport type { JSONSchema7 } from './types.ts'\nimport { Ajv } from './validate.ts'\n\nexport const jsonSchema7Schema = z.custom<JSONSchema7>(\n (value) => {\n const ajv = new Ajv()\n return ajv.validateSchema(value)\n },\n { message: 'Invalid json schema' },\n)\n\nexport const jsonSchema7ObjectSchema = z\n .object({\n type: z.literal('object'),\n })\n .and(jsonSchema7Schema)\n\nexport const jsonSchema7NullSchema = z.object({\n type: z.literal('null'),\n})\n\nexport type JSONSchema7Object = z.infer<typeof jsonSchema7ObjectSchema>\nexport type JSONSchema7Null = z.infer<typeof jsonSchema7NullSchema>\n",
25
25
  "import {\n Ajv as BaseAjv,\n type ErrorObject,\n type KeywordDefinition,\n type Options,\n} from 'ajv'\nimport type { JSONSchema7 } from 'json-schema'\n\nimport mapSchema from './mapSchema.ts'\nimport {\n isFileObject,\n isStreamObject,\n isValidMimeType,\n} from '../files/index.ts'\n\nexport class ValidationError extends Error {\n constructor(\n message: string,\n public readonly property?: string,\n ) {\n super(property ? `${property}: ${message}` : message)\n }\n}\n\nexport const acceptKeyword: KeywordDefinition = {\n keyword: 'accept',\n type: 'object',\n metaSchema: {\n type: 'string',\n pattern:\n '^\\\\s*(?:(?:\\\\w+/\\\\*|\\\\w+/[-+.\\\\w]+|\\\\*/\\\\*))(?:\\\\s*,\\\\s*(?:(?:\\\\w+/\\\\*|\\\\w+/[-+.\\\\w]+|\\\\*/\\\\*)))*\\\\s*$',\n },\n}\n\nexport const acceptKeywordEnforced: KeywordDefinition = {\n ...acceptKeyword,\n compile: (accept: string) =>\n function validate(data) {\n const errors: Partial<ErrorObject>[] = ((validate as any).errors = [])\n\n if (isFileObject(data) || isStreamObject(data)) {\n if (!isValidMimeType(data, accept)) {\n errors.push({ message: `must be of type ${accept}` })\n return false\n }\n } else {\n errors.push({ message: 'invalid file type' })\n return false\n }\n\n return true\n },\n}\n\nexport const requenceTypeKeywords: KeywordDefinition = {\n keyword: 'requenceType',\n metaSchema: {\n enum: ['file', 'stream'],\n },\n}\n\nexport const instanceOfKeyword: KeywordDefinition = {\n keyword: 'instanceOf',\n schemaType: 'string',\n compile: (schema) =>\n function validate(data) {\n const errors: Partial<ErrorObject>[] = ((validate as any).errors = [])\n if (typeof data !== 'object' || !data || !('constructor' in data)) {\n errors.push({ message: 'not a object' })\n return false\n }\n\n if (data.constructor.name !== schema) {\n errors.push({ message: `must be instanceof ${schema}` })\n return false\n }\n\n return true\n },\n}\n\nexport const maxByteLengthKeyword: KeywordDefinition = {\n keyword: 'maxByteLength',\n type: 'object',\n metaSchema: {\n type: 'integer',\n minimum: 0,\n },\n}\n\nexport const maxByteLengthKeywordEnforced: KeywordDefinition = {\n ...maxByteLengthKeyword,\n compile: (maxByteLength: number) =>\n function validate(data) {\n const errors: Partial<ErrorObject>[] = ((validate as any).errors = [])\n if (isFileObject(data)) {\n if (data.size > maxByteLength) {\n errors.push({\n message: `file size must by lower tan ${maxByteLength}`,\n })\n return false\n }\n } else {\n errors.push({ message: 'invalid file type' })\n return false\n }\n\n return true\n },\n}\n\nexport class Ajv extends BaseAjv {\n constructor(options?: Options & { enforeFileKeywords?: boolean }) {\n super({\n ...options,\n keywords: [\n options?.enforeFileKeywords ? acceptKeywordEnforced : acceptKeyword,\n options?.enforeFileKeywords\n ? maxByteLengthKeywordEnforced\n : maxByteLengthKeyword,\n requenceTypeKeywords,\n instanceOfKeyword,\n ],\n })\n }\n}\n\nexport function validate<T extends JSONSchema7>(options: {\n schema: T\n value: unknown\n property?: string\n allowAdditionalProperties?: boolean\n enforeFileKeywords?: boolean\n}) {\n const ajv = new Ajv({\n coerceTypes: true,\n enforeFileKeywords: options.enforeFileKeywords,\n })\n\n const value = structuredClone(options.value)\n const schema = options.allowAdditionalProperties\n ? mapSchema(options.schema, {\n Object: (objectSchema) => ({\n ...objectSchema,\n additionalProperties: true,\n }),\n })\n : options.schema\n\n const validate = ajv.compile(schema)\n const valid = validate(value)\n\n if (valid) {\n return value\n }\n const error = validate.errors![0]\n throw new ValidationError(\n error.message!,\n [options.property, ...error.instancePath.split('/')]\n .filter(Boolean)\n .join('/'),\n )\n}\n",
26
- "import {\n clone,\n createRemotePromise,\n deobfuscate,\n obfuscate,\n} from '@requence/helpers'\nimport { contextSchema } from '@requence/helpers/context'\nimport { mapOutput } from '@requence/helpers/files'\nimport { nodeOptionsSchema, 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'\nimport mapInput from './mapInput.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(\n z\n .tuple([z.string().uuid(), z.string().uuid(), z.string().uuid()])\n .rest(z.string()),\n )\n .transform((arr) => ({\n taskId: arr[0],\n serviceId: arr[1],\n messageId: arr[2],\n uploadUrl: arr[3] || undefined,\n streamUrl: arr[4] || undefined,\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 options: nodeOptionsSchema,\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 const donePromises: Array<Promise<void>> = []\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: mapInput(payload.context) as typeof payload.context,\n nodes: mapInput(payload.meta.nodes) as typeof 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(\n taskId,\n serviceId,\n messageId,\n payload.meta.options.uploadUrl ?? '',\n payload.meta.options.streamUrl ?? '',\n )\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\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n\n const { value, outputName } = await unwrapResult(\n result,\n payload.meta.options,\n donePromise.resolve,\n )\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\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n const { value, outputName } = await unwrapResult(\n result,\n payload.meta.options,\n donePromise.resolve,\n )\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(async () => {\n if (!deferred) {\n await Promise.allSettled(donePromises)\n }\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 const { taskId, serviceId, messageId, ...options } =\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\n const donePromises: Array<Promise<void>> = []\n\n await actor({\n async sendToOutput(outputName, data) {\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n publish({\n messageId,\n taskId,\n serviceId,\n data: await mapOutput({\n value: data,\n options,\n onDone: donePromise.resolve,\n }),\n outputName: outputName as string | null,\n })\n },\n async send(data) {\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n publish({\n messageId,\n taskId,\n serviceId,\n data: await mapOutput({\n value: data,\n options,\n onDone: donePromise.resolve,\n }),\n })\n },\n abort(error) {\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 setImmediate(async () => {\n await Promise.allSettled(donePromises)\n publish({\n messageId,\n taskId,\n serviceId,\n done: true,\n })\n })\n },\n }\n return api\n}\n",
26
+ "import {\n clone,\n createRemotePromise,\n deobfuscate,\n obfuscate,\n} from '@requence/helpers'\nimport { contextSchema } from '@requence/helpers/context'\nimport { mapOutput } from '@requence/helpers/files'\nimport { nodeOptionsSchema, nodesSchema } from '@requence/helpers/protocol'\nimport {\n type AmqpConnectionManagerOptions,\n connect,\n} 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'\nimport mapInput from './mapInput.ts'\n\ntype Input<V extends keyof RequenceService.Version> =\n RequenceService.Version[V]['input']\ntype Configuration<V extends keyof RequenceService.Version> =\n RequenceService.Version[V]['configuration']\ntype OutputName<\n V extends keyof RequenceService.Version,\n K = keyof RequenceService.Version[V]['outputs'],\n> = K extends '__default__' ? null : K\n\ntype OutputValue<\n V extends keyof RequenceService.Version,\n O extends OutputName<V> | null,\n> = RequenceService.Version[V]['outputs'][O extends null ? '__default__' : O]\n\ninterface ServiceContextHelper<V extends keyof RequenceService.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 RequenceService.Version> =\n | ReturnType<ServiceContextHelper<V>['toOutput']>\n | OutputValue<V, null>\n | '__output_value__'\n\ntype ApiOutputName<V> = V extends keyof RequenceService.Version\n ? OutputName<V>\n : string | null\ntype ApiOutputValue<V, O> = V extends keyof RequenceService.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(\n z\n .tuple([z.string().uuid(), z.string().uuid(), z.string().uuid()])\n .rest(z.string()),\n )\n .transform((arr) => ({\n taskId: arr[0],\n serviceId: arr[1],\n messageId: arr[2],\n uploadUrl: arr[3] || undefined,\n streamUrl: arr[4] || undefined,\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 options: nodeOptionsSchema,\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 connectionOptions?: AmqpConnectionManagerOptions['connectionOptions']\n}\n\ntype MessageHandlerContext<V> = V extends keyof RequenceService.Version\n ? ServiceContextHelper<V>\n : ContextHelper\ntype MessageHandlerReturnValue<V> = V extends keyof RequenceService.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 RequenceService.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 }: ConnectionOptions,\n messageHandler: MessageHandler<V>,\n) {\n const queue = `${url.username}@${version}`\n const exchange = url.username\n const connection = connect(url.toString(), { connectionOptions })\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 const donePromises: Array<Promise<void>> = []\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: mapInput(payload.context) as typeof payload.context,\n nodes: mapInput(payload.meta.nodes) as typeof 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(\n taskId,\n serviceId,\n messageId,\n payload.meta.options.uploadUrl ?? '',\n payload.meta.options.streamUrl ?? '',\n )\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\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n\n const { value, outputName } = await unwrapResult(\n result,\n payload.meta.options,\n donePromise.resolve,\n )\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\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n const { value, outputName } = await unwrapResult(\n result,\n payload.meta.options,\n donePromise.resolve,\n )\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(async () => {\n if (!deferred) {\n await Promise.allSettled(donePromises)\n }\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 const { taskId, serviceId, messageId, ...options } =\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\n const donePromises: Array<Promise<void>> = []\n\n await actor({\n async sendToOutput(outputName, data) {\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n publish({\n messageId,\n taskId,\n serviceId,\n data: await mapOutput({\n value: data,\n options,\n onDone: donePromise.resolve,\n }),\n outputName: outputName as string | null,\n })\n },\n async send(data) {\n const donePromise = createRemotePromise()\n donePromises.push(donePromise)\n publish({\n messageId,\n taskId,\n serviceId,\n data: await mapOutput({\n value: data,\n options,\n onDone: donePromise.resolve,\n }),\n })\n },\n abort(error) {\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 setImmediate(async () => {\n await Promise.allSettled(donePromises)\n publish({\n messageId,\n taskId,\n serviceId,\n done: true,\n })\n })\n },\n }\n return api\n}\n",
27
27
  "import { createObjectProxy } from '@requence/helpers'\nimport type { Context } from '@requence/helpers/context'\nimport { mapOutput } from '@requence/helpers/files'\nimport type {\n NodeOptions,\n Nodes,\n ServiceNode,\n} 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 async function unwrapResult(\n result: unknown,\n options: Pick<NodeOptions, 'uploadUrl' | 'streamUrl'>,\n onDone: () => void,\n) {\n if (isOutputValue(result)) {\n return {\n value: await mapOutput({ value: result.value, options, onDone }),\n outputName: result[OUTPUT_VALUE],\n }\n }\n return {\n value: await mapOutput({ value: result, options, onDone }),\n outputName: null,\n }\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",
28
28
  "import { mapData } from '@requence/helpers'\nimport {\n RequenceFile,\n RequenceStream,\n isFileObject,\n isStreamObject,\n} from '@requence/helpers/files'\n\nexport default function mapInput(data: unknown): unknown {\n return mapData(data, {\n Object(obj) {\n if (isFileObject(obj)) {\n return RequenceFile.fromFileObject(obj)\n }\n if (isStreamObject(obj)) {\n return RequenceStream.fromStreamObject(obj)\n }\n },\n })\n}\n"
29
29
  ],
30
- "mappings": "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",
31
- "debugId": "41E805E9FDA0F22664756E2164756E21",
30
+ "mappings": "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",
31
+ "debugId": "7CF68A4BC8D609E864756E2164756E21",
32
32
  "names": []
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAGjD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAMnD,QAAA,MAAM,WAAW,EAAwC,UAAU,CAAA;AAEnE,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9D;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8ClD,OAAO;eAGR,OAAO;oBAGF,MAAM;oBAsCN,MAAM;EAWzB;AAED,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACnE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAGjD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAMnD,QAAA,MAAM,WAAW,EAAwC,UAAU,CAAA;AAEnE,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9D;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8ClD,OAAO;eAGR,OAAO;oBAGF,MAAM;oBAuCN,MAAM;EAWzB;AAED,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACnE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,WAAW,CAAC,CAAA"}
@@ -12,14 +12,20 @@ export declare const abortSchema: z.ZodObject<{
12
12
  export type Abort = z.infer<typeof abortSchema>;
13
13
  export declare const nodeOptionsSchema: z.ZodObject<{
14
14
  maxExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
15
+ compliance: z.ZodDefault<z.ZodNullable<z.ZodEnum<["mcp-tool"]>>>;
16
+ exitEarly: z.ZodOptional<z.ZodBoolean>;
15
17
  uploadUrl: z.ZodOptional<z.ZodString>;
16
18
  streamUrl: z.ZodOptional<z.ZodString>;
17
19
  }, "strip", z.ZodTypeAny, {
18
20
  maxExecutions: number;
21
+ compliance: "mcp-tool" | null;
22
+ exitEarly?: boolean | undefined;
19
23
  uploadUrl?: string | undefined;
20
24
  streamUrl?: string | undefined;
21
25
  }, {
22
26
  maxExecutions?: number | undefined;
27
+ compliance?: "mcp-tool" | null | undefined;
28
+ exitEarly?: boolean | undefined;
23
29
  uploadUrl?: string | undefined;
24
30
  streamUrl?: string | undefined;
25
31
  }>;
@@ -809,20 +815,28 @@ export declare const createNodesSchema: z.ZodObject<{
809
815
  meta: z.ZodAny;
810
816
  options: z.ZodObject<{
811
817
  maxExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
818
+ compliance: z.ZodDefault<z.ZodNullable<z.ZodEnum<["mcp-tool"]>>>;
819
+ exitEarly: z.ZodOptional<z.ZodBoolean>;
812
820
  uploadUrl: z.ZodOptional<z.ZodString>;
813
821
  streamUrl: z.ZodOptional<z.ZodString>;
814
822
  }, "strip", z.ZodTypeAny, {
815
823
  maxExecutions: number;
824
+ compliance: "mcp-tool" | null;
825
+ exitEarly?: boolean | undefined;
816
826
  uploadUrl?: string | undefined;
817
827
  streamUrl?: string | undefined;
818
828
  }, {
819
829
  maxExecutions?: number | undefined;
830
+ compliance?: "mcp-tool" | null | undefined;
831
+ exitEarly?: boolean | undefined;
820
832
  uploadUrl?: string | undefined;
821
833
  streamUrl?: string | undefined;
822
834
  }>;
823
835
  }, "strip", z.ZodTypeAny, {
824
836
  options: {
825
837
  maxExecutions: number;
838
+ compliance: "mcp-tool" | null;
839
+ exitEarly?: boolean | undefined;
826
840
  uploadUrl?: string | undefined;
827
841
  streamUrl?: string | undefined;
828
842
  };
@@ -880,6 +894,8 @@ export declare const createNodesSchema: z.ZodObject<{
880
894
  }, {
881
895
  options: {
882
896
  maxExecutions?: number | undefined;
897
+ compliance?: "mcp-tool" | null | undefined;
898
+ exitEarly?: boolean | undefined;
883
899
  uploadUrl?: string | undefined;
884
900
  streamUrl?: string | undefined;
885
901
  };
@@ -1783,20 +1799,28 @@ export declare const commandSchema: z.ZodUnion<[z.ZodObject<{
1783
1799
  meta: z.ZodAny;
1784
1800
  options: z.ZodObject<{
1785
1801
  maxExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1802
+ compliance: z.ZodDefault<z.ZodNullable<z.ZodEnum<["mcp-tool"]>>>;
1803
+ exitEarly: z.ZodOptional<z.ZodBoolean>;
1786
1804
  uploadUrl: z.ZodOptional<z.ZodString>;
1787
1805
  streamUrl: z.ZodOptional<z.ZodString>;
1788
1806
  }, "strip", z.ZodTypeAny, {
1789
1807
  maxExecutions: number;
1808
+ compliance: "mcp-tool" | null;
1809
+ exitEarly?: boolean | undefined;
1790
1810
  uploadUrl?: string | undefined;
1791
1811
  streamUrl?: string | undefined;
1792
1812
  }, {
1793
1813
  maxExecutions?: number | undefined;
1814
+ compliance?: "mcp-tool" | null | undefined;
1815
+ exitEarly?: boolean | undefined;
1794
1816
  uploadUrl?: string | undefined;
1795
1817
  streamUrl?: string | undefined;
1796
1818
  }>;
1797
1819
  }, "strip", z.ZodTypeAny, {
1798
1820
  options: {
1799
1821
  maxExecutions: number;
1822
+ compliance: "mcp-tool" | null;
1823
+ exitEarly?: boolean | undefined;
1800
1824
  uploadUrl?: string | undefined;
1801
1825
  streamUrl?: string | undefined;
1802
1826
  };
@@ -1854,6 +1878,8 @@ export declare const commandSchema: z.ZodUnion<[z.ZodObject<{
1854
1878
  }, {
1855
1879
  options: {
1856
1880
  maxExecutions?: number | undefined;
1881
+ compliance?: "mcp-tool" | null | undefined;
1882
+ exitEarly?: boolean | undefined;
1857
1883
  uploadUrl?: string | undefined;
1858
1884
  streamUrl?: string | undefined;
1859
1885
  };
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/command.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
+ import { type AmqpConnectionManagerOptions } from 'amqp-connection-manager';
1
2
  import { type ContextHelper, type JSONValue } from './helpers.ts';
2
- type Input<V extends keyof Requence.Version> = Requence.Version[V]['input'];
3
- type Configuration<V extends keyof Requence.Version> = Requence.Version[V]['configuration'];
4
- type OutputName<V extends keyof Requence.Version, K = keyof Requence.Version[V]['outputs']> = K extends '__default__' ? null : K;
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<ContextHelper, 'getData' | 'getConfiguration' | 'toOutput'> {
3
+ type Input<V extends keyof RequenceService.Version> = RequenceService.Version[V]['input'];
4
+ type Configuration<V extends keyof RequenceService.Version> = RequenceService.Version[V]['configuration'];
5
+ type OutputName<V extends keyof RequenceService.Version, K = keyof RequenceService.Version[V]['outputs']> = K extends '__default__' ? null : K;
6
+ type OutputValue<V extends keyof RequenceService.Version, O extends OutputName<V> | null> = RequenceService.Version[V]['outputs'][O extends null ? '__default__' : O];
7
+ interface ServiceContextHelper<V extends keyof RequenceService.Version> extends Omit<ContextHelper, 'getData' | 'getConfiguration' | 'toOutput'> {
7
8
  getData: {
8
9
  (): Input<V>;
9
10
  };
10
11
  getConfiguration(): Configuration<V>;
11
12
  toOutput<O extends OutputName<V>>(name: O, value: OutputValue<V, O>): '__output_value__';
12
13
  }
13
- type ReturnValue<V extends keyof Requence.Version> = ReturnType<ServiceContextHelper<V>['toOutput']> | OutputValue<V, null> | '__output_value__';
14
- type ApiOutputName<V> = V extends keyof Requence.Version ? OutputName<V> : string | null;
15
- type ApiOutputValue<V, O> = V extends keyof Requence.Version ? O extends OutputName<V> ? OutputValue<V, O> : unknown : unknown;
14
+ type ReturnValue<V extends keyof RequenceService.Version> = ReturnType<ServiceContextHelper<V>['toOutput']> | OutputValue<V, null> | '__output_value__';
15
+ type ApiOutputName<V> = V extends keyof RequenceService.Version ? OutputName<V> : string | null;
16
+ type ApiOutputValue<V, O> = V extends keyof RequenceService.Version ? O extends OutputName<V> ? OutputValue<V, O> : unknown : unknown;
16
17
  interface ActorApi<V> {
17
18
  sendToOutput<O extends ApiOutputName<V>>(outputName: O, data: ApiOutputValue<V, O>): void;
18
19
  send(data: ApiOutputValue<V, null>): void;
@@ -30,13 +31,14 @@ interface ConnectionOptions {
30
31
  connectionTimeout: number;
31
32
  prefetch?: number;
32
33
  silent?: boolean;
34
+ connectionOptions?: AmqpConnectionManagerOptions['connectionOptions'];
33
35
  }
34
- type MessageHandlerContext<V> = V extends keyof Requence.Version ? ServiceContextHelper<V> : ContextHelper;
35
- type MessageHandlerReturnValue<V> = V extends keyof Requence.Version ? ReturnValue<V> : JSONValue;
36
+ type MessageHandlerContext<V> = V extends keyof RequenceService.Version ? ServiceContextHelper<V> : ContextHelper;
37
+ type MessageHandlerReturnValue<V> = V extends keyof RequenceService.Version ? ReturnValue<V> : JSONValue;
36
38
  type MessageHandlerFunction<V> = (context: MessageHandlerContext<V>) => MaybePromise<MessageHandlerReturnValue<V> | void>;
37
39
  type MessageHandlerGenerator<V> = (context: MessageHandlerContext<V>) => Generator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>;
38
40
  type MessageHandlerAsyncGenerator<V> = (context: MessageHandlerContext<V>) => AsyncGenerator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>;
39
41
  export type MessageHandler<V> = MessageHandlerAsyncGenerator<V> | MessageHandlerGenerator<V> | MessageHandlerFunction<V>;
40
- export default function createConnection<V>({ url, version, prefetch, silent, connectionTimeout, }: ConnectionOptions, messageHandler: MessageHandler<V>): ConnectionApi<V>;
42
+ export default function createConnection<V>({ url, version, prefetch, silent, connectionTimeout, connectionOptions, }: ConnectionOptions, messageHandler: MessageHandler<V>): ConnectionApi<V>;
41
43
  export {};
42
44
  //# sourceMappingURL=createAmqpConnection.d.ts.map
@@ -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,13 +1,15 @@
1
+ import type { AmqpConnectionManagerOptions } from 'amqp-connection-manager';
1
2
  import { type ConnectionApi, type MessageHandler } from './createAmqpConnection.ts';
2
3
  export { RequenceFile, RequenceStream } from '../../helpers/src/files/index.js';
3
- export type ServiceApi<V extends keyof Requence.Version | (string & {})> = ConnectionApi<V>;
4
+ export type ServiceApi<V extends keyof RequenceService.Version | (string & {})> = ConnectionApi<V>;
4
5
  interface ServiceOptions<V extends string> {
5
6
  accessToken?: string;
6
7
  version: V;
7
8
  prefetch?: number;
8
9
  connectionTimeout?: number;
9
10
  silent?: boolean;
11
+ connectionOptions?: AmqpConnectionManagerOptions['connectionOptions'];
10
12
  }
11
- export declare function createService<V extends keyof Requence.Version | (string & {})>(version: V, messageHandler: MessageHandler<V>): ServiceApi<V>;
12
- export declare function createService<V extends keyof Requence.Version | (string & {})>(options: ServiceOptions<V>, messageHandler: MessageHandler<V>): ServiceApi<V>;
13
+ export declare function createService<V extends keyof RequenceService.Version | (string & {})>(version: V, messageHandler: MessageHandler<V>): ServiceApi<V>;
14
+ export declare function createService<V extends keyof RequenceService.Version | (string & {})>(options: ServiceOptions<V>, messageHandler: MessageHandler<V>): ServiceApi<V>;
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAKA,OAA6B,EAC3B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEtE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IACrE,aAAa,CAAC,CAAC,CAAC,CAAA;AAElB,UAAU,cAAc,CAAC,CAAC,SAAS,MAAM;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAkBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,QAAQ,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC5E,OAAO,EAAE,CAAC,EACV,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAChC,UAAU,CAAC,CAAC,CAAC,CAAA;AAChB,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,QAAQ,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC5E,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAChC,UAAU,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAG3E,OAA6B,EAC3B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEtE,MAAM,MAAM,UAAU,CACpB,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IACrD,aAAa,CAAC,CAAC,CAAC,CAAA;AAEpB,UAAU,cAAc,CAAC,CAAC,SAAS,MAAM;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,iBAAiB,CAAC,EAAE,4BAA4B,CAAC,mBAAmB,CAAC,CAAA;CACtE;AAmBD,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AAC/D,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACvD,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,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.15",
4
+ "version": "1.0.0-alpha.17",
5
5
  "bin": {
6
6
  "requence-service": "build/cli.js"
7
7
  },