@requence/service 1.0.0-alpha.14 → 1.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/cli.js +11 -6
- package/build/cli.js.map +3 -3
- package/build/index.js +8 -5
- package/build/index.js.map +4 -4
- package/build/types/service/src/createAmqpConnection.d.ts +10 -10
- package/build/types/service/src/createAmqpConnection.d.ts.map +1 -1
- package/build/types/service/src/index.d.ts +3 -3
- package/build/types/service/src/index.d.ts.map +1 -1
- package/package.json +3 -4
package/CHANGELOG.md
CHANGED
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
|
-
|
|
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("
|
|
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=
|
|
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
|
|
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;
|
|
8
|
-
"debugId": "
|
|
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
|
|
7
|
+
import fs from "node:fs";
|
|
8
8
|
|
|
9
9
|
// ../helpers/src/utils/clone.ts
|
|
10
10
|
var CLONE_SYMBOL = Symbol("original");
|
|
@@ -1199,8 +1199,7 @@ function createConnection({
|
|
|
1199
1199
|
return;
|
|
1200
1200
|
}
|
|
1201
1201
|
const donePromises = [];
|
|
1202
|
-
let removeActiveMessage = () => {
|
|
1203
|
-
};
|
|
1202
|
+
let removeActiveMessage = () => {};
|
|
1204
1203
|
try {
|
|
1205
1204
|
let deferred = false;
|
|
1206
1205
|
let deferredReason = null;
|
|
@@ -1449,7 +1448,11 @@ function createService(optionsOrVersion, optionalMessageHandler) {
|
|
|
1449
1448
|
options = optionsOrVersion;
|
|
1450
1449
|
messageHandler = optionalMessageHandler;
|
|
1451
1450
|
}
|
|
1452
|
-
|
|
1451
|
+
let token = options.accessToken ?? process.env.REQUENCE_SERVICE_ACCESS_TOKEN ?? process.env.REQUENCE_ACCESS_TOKEN;
|
|
1452
|
+
if (!token) {
|
|
1453
|
+
const pkgJson = JSON.parse(fs.readFileSync("package.json", "utf-8"));
|
|
1454
|
+
token = pkgJson.requence?.service?.accessToken ?? pkgJson.requence?.accessToken;
|
|
1455
|
+
}
|
|
1453
1456
|
if (!token) {
|
|
1454
1457
|
throw new Error("No service key found");
|
|
1455
1458
|
}
|
|
@@ -1469,5 +1472,5 @@ export {
|
|
|
1469
1472
|
RequenceFile
|
|
1470
1473
|
};
|
|
1471
1474
|
|
|
1472
|
-
//# debugId=
|
|
1475
|
+
//# debugId=221E32D687A3A93964756E2164756E21
|
|
1473
1476
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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
|
|
5
|
+
"import fs 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<\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}\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<\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",
|
|
@@ -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 { 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 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}\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 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",
|
|
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": "
|
|
30
|
+
"mappings": "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",
|
|
31
|
+
"debugId": "221E32D687A3A93964756E2164756E21",
|
|
32
32
|
"names": []
|
|
33
33
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { type ContextHelper, type JSONValue } from './helpers.ts';
|
|
2
|
-
type Input<V extends keyof
|
|
3
|
-
type Configuration<V extends keyof
|
|
4
|
-
type OutputName<V extends keyof
|
|
5
|
-
type OutputValue<V extends keyof
|
|
6
|
-
interface ServiceContextHelper<V extends keyof
|
|
2
|
+
type Input<V extends keyof RequenceService.Version> = RequenceService.Version[V]['input'];
|
|
3
|
+
type Configuration<V extends keyof RequenceService.Version> = RequenceService.Version[V]['configuration'];
|
|
4
|
+
type OutputName<V extends keyof RequenceService.Version, K = keyof RequenceService.Version[V]['outputs']> = K extends '__default__' ? null : K;
|
|
5
|
+
type OutputValue<V extends keyof RequenceService.Version, O extends OutputName<V> | null> = RequenceService.Version[V]['outputs'][O extends null ? '__default__' : O];
|
|
6
|
+
interface ServiceContextHelper<V extends keyof RequenceService.Version> extends Omit<ContextHelper, 'getData' | 'getConfiguration' | 'toOutput'> {
|
|
7
7
|
getData: {
|
|
8
8
|
(): Input<V>;
|
|
9
9
|
};
|
|
10
10
|
getConfiguration(): Configuration<V>;
|
|
11
11
|
toOutput<O extends OutputName<V>>(name: O, value: OutputValue<V, O>): '__output_value__';
|
|
12
12
|
}
|
|
13
|
-
type ReturnValue<V extends keyof
|
|
14
|
-
type ApiOutputName<V> = V extends keyof
|
|
15
|
-
type ApiOutputValue<V, O> = V extends keyof
|
|
13
|
+
type ReturnValue<V extends keyof RequenceService.Version> = ReturnType<ServiceContextHelper<V>['toOutput']> | OutputValue<V, null> | '__output_value__';
|
|
14
|
+
type ApiOutputName<V> = V extends keyof RequenceService.Version ? OutputName<V> : string | null;
|
|
15
|
+
type ApiOutputValue<V, O> = V extends keyof RequenceService.Version ? O extends OutputName<V> ? OutputValue<V, O> : unknown : unknown;
|
|
16
16
|
interface ActorApi<V> {
|
|
17
17
|
sendToOutput<O extends ApiOutputName<V>>(outputName: O, data: ApiOutputValue<V, O>): void;
|
|
18
18
|
send(data: ApiOutputValue<V, null>): void;
|
|
@@ -31,8 +31,8 @@ interface ConnectionOptions {
|
|
|
31
31
|
prefetch?: number;
|
|
32
32
|
silent?: boolean;
|
|
33
33
|
}
|
|
34
|
-
type MessageHandlerContext<V> = V extends keyof
|
|
35
|
-
type MessageHandlerReturnValue<V> = V extends keyof
|
|
34
|
+
type MessageHandlerContext<V> = V extends keyof RequenceService.Version ? ServiceContextHelper<V> : ContextHelper;
|
|
35
|
+
type MessageHandlerReturnValue<V> = V extends keyof RequenceService.Version ? ReturnValue<V> : JSONValue;
|
|
36
36
|
type MessageHandlerFunction<V> = (context: MessageHandlerContext<V>) => MaybePromise<MessageHandlerReturnValue<V> | void>;
|
|
37
37
|
type MessageHandlerGenerator<V> = (context: MessageHandlerContext<V>) => Generator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>;
|
|
38
38
|
type MessageHandlerAsyncGenerator<V> = (context: MessageHandlerContext<V>) => AsyncGenerator<MessageHandlerReturnValue<V>, MessageHandlerReturnValue<V>, void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAmqpConnection.d.ts","sourceRoot":"","sources":["../../../../src/createAmqpConnection.ts"],"names":[],"mappings":"AAaA,OAA4B,EAE1B,KAAK,aAAa,EAClB,KAAK,SAAS,EAGf,MAAM,cAAc,CAAA;AAGrB,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"createAmqpConnection.d.ts","sourceRoot":"","sources":["../../../../src/createAmqpConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ConnectionApi, type MessageHandler } from './createAmqpConnection.ts';
|
|
2
2
|
export { RequenceFile, RequenceStream } from '../../helpers/src/files/index.js';
|
|
3
|
-
export type ServiceApi<V extends keyof
|
|
3
|
+
export type ServiceApi<V extends keyof RequenceService.Version | (string & {})> = ConnectionApi<V>;
|
|
4
4
|
interface ServiceOptions<V extends string> {
|
|
5
5
|
accessToken?: string;
|
|
6
6
|
version: V;
|
|
@@ -8,6 +8,6 @@ interface ServiceOptions<V extends string> {
|
|
|
8
8
|
connectionTimeout?: number;
|
|
9
9
|
silent?: boolean;
|
|
10
10
|
}
|
|
11
|
-
export declare function createService<V extends keyof
|
|
12
|
-
export declare function createService<V extends keyof
|
|
11
|
+
export declare function createService<V extends keyof RequenceService.Version | (string & {})>(version: V, messageHandler: MessageHandler<V>): ServiceApi<V>;
|
|
12
|
+
export declare function createService<V extends keyof RequenceService.Version | (string & {})>(options: ServiceOptions<V>, messageHandler: MessageHandler<V>): ServiceApi<V>;
|
|
13
13
|
//# 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,
|
|
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,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;CACjB;AAkBD,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.
|
|
4
|
+
"version": "1.0.0-alpha.16",
|
|
5
5
|
"bin": {
|
|
6
6
|
"requence-service": "build/cli.js"
|
|
7
7
|
},
|
|
@@ -11,14 +11,13 @@
|
|
|
11
11
|
"build": "ADD_ENTRYPOINT=src/cli.ts bun -e \"import('@requence/utils/build-package.mts')\" && bun build-declaration"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
+
"ajv": "^8.17.1",
|
|
14
15
|
"amqp-connection-manager": "^4.1.14",
|
|
15
16
|
"amqplib": "^0.10.5",
|
|
16
17
|
"chalk": "^5.4.1",
|
|
17
18
|
"mime-types": "^2.1.35",
|
|
18
|
-
"prettier": "^3.5.0",
|
|
19
19
|
"yargs": "^17.7.2",
|
|
20
|
-
"zod": "^3.24.2"
|
|
21
|
-
"ajv": "^8.17.1"
|
|
20
|
+
"zod": "^3.24.2"
|
|
22
21
|
},
|
|
23
22
|
"devDependencies": {
|
|
24
23
|
"@requence/helpers": "workspace:*",
|