@requence/service 0.7.1

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.
Files changed (91) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +330 -0
  3. package/build/chunk-6w7td62p.js +56 -0
  4. package/build/chunk-6w7td62p.js.map +10 -0
  5. package/build/cli.js +166 -0
  6. package/build/cli.js.map +10 -0
  7. package/build/index.js +1229 -0
  8. package/build/index.js.map +24 -0
  9. package/build/types/helpers/src/files/RequenceFile.d.ts +40 -0
  10. package/build/types/helpers/src/files/RequenceFile.d.ts.map +1 -0
  11. package/build/types/helpers/src/files/RequenceStream.d.ts +32 -0
  12. package/build/types/helpers/src/files/RequenceStream.d.ts.map +1 -0
  13. package/build/types/helpers/src/files/fileObject.d.ts +16 -0
  14. package/build/types/helpers/src/files/fileObject.d.ts.map +1 -0
  15. package/build/types/helpers/src/files/index.d.ts +7 -0
  16. package/build/types/helpers/src/files/index.d.ts.map +1 -0
  17. package/build/types/helpers/src/files/isValidMimeType.d.ts +5 -0
  18. package/build/types/helpers/src/files/isValidMimeType.d.ts.map +1 -0
  19. package/build/types/helpers/src/files/mapOutput.d.ts +10 -0
  20. package/build/types/helpers/src/files/mapOutput.d.ts.map +1 -0
  21. package/build/types/helpers/src/files/streamObject.d.ts +14 -0
  22. package/build/types/helpers/src/files/streamObject.d.ts.map +1 -0
  23. package/build/types/helpers/src/files/types.d.ts +4 -0
  24. package/build/types/helpers/src/files/types.d.ts.map +1 -0
  25. package/build/types/helpers/src/index.d.ts +13 -0
  26. package/build/types/helpers/src/index.d.ts.map +1 -0
  27. package/build/types/helpers/src/jsonschema/mapSchema.d.ts +20 -0
  28. package/build/types/helpers/src/jsonschema/mapSchema.d.ts.map +1 -0
  29. package/build/types/helpers/src/jsonschema/types.d.ts +13 -0
  30. package/build/types/helpers/src/jsonschema/types.d.ts.map +1 -0
  31. package/build/types/helpers/src/jsonschema/validate.d.ts +32 -0
  32. package/build/types/helpers/src/jsonschema/validate.d.ts.map +1 -0
  33. package/build/types/helpers/src/jsonschema/zod.d.ts +17 -0
  34. package/build/types/helpers/src/jsonschema/zod.d.ts.map +1 -0
  35. package/build/types/helpers/src/protocol/NodeTree.d.ts +510 -0
  36. package/build/types/helpers/src/protocol/NodeTree.d.ts.map +1 -0
  37. package/build/types/helpers/src/protocol/command.d.ts +507 -0
  38. package/build/types/helpers/src/protocol/command.d.ts.map +1 -0
  39. package/build/types/helpers/src/protocol/helpers.d.ts +7 -0
  40. package/build/types/helpers/src/protocol/helpers.d.ts.map +1 -0
  41. package/build/types/helpers/src/protocol/index.d.ts +8 -0
  42. package/build/types/helpers/src/protocol/index.d.ts.map +1 -0
  43. package/build/types/helpers/src/protocol/nodeType.d.ts +187 -0
  44. package/build/types/helpers/src/protocol/nodeType.d.ts.map +1 -0
  45. package/build/types/helpers/src/protocol/taskOptions.d.ts +23 -0
  46. package/build/types/helpers/src/protocol/taskOptions.d.ts.map +1 -0
  47. package/build/types/helpers/src/protocol/templateNodeTypes.d.ts +267 -0
  48. package/build/types/helpers/src/protocol/templateNodeTypes.d.ts.map +1 -0
  49. package/build/types/helpers/src/protocol/treeNodes.d.ts +874 -0
  50. package/build/types/helpers/src/protocol/treeNodes.d.ts.map +1 -0
  51. package/build/types/helpers/src/protocol/update.d.ts +406 -0
  52. package/build/types/helpers/src/protocol/update.d.ts.map +1 -0
  53. package/build/types/helpers/src/utils/callbackToAsyncIterator.d.ts +3 -0
  54. package/build/types/helpers/src/utils/callbackToAsyncIterator.d.ts.map +1 -0
  55. package/build/types/helpers/src/utils/clone.d.ts +3 -0
  56. package/build/types/helpers/src/utils/clone.d.ts.map +1 -0
  57. package/build/types/helpers/src/utils/createObjectProxy.d.ts +2 -0
  58. package/build/types/helpers/src/utils/createObjectProxy.d.ts.map +1 -0
  59. package/build/types/helpers/src/utils/debounce.d.ts +4 -0
  60. package/build/types/helpers/src/utils/debounce.d.ts.map +1 -0
  61. package/build/types/helpers/src/utils/guards.d.ts +3 -0
  62. package/build/types/helpers/src/utils/guards.d.ts.map +1 -0
  63. package/build/types/helpers/src/utils/mapData.d.ts +18 -0
  64. package/build/types/helpers/src/utils/mapData.d.ts.map +1 -0
  65. package/build/types/helpers/src/utils/matchSchema.d.ts +4 -0
  66. package/build/types/helpers/src/utils/matchSchema.d.ts.map +1 -0
  67. package/build/types/helpers/src/utils/obfuscate.d.ts +4 -0
  68. package/build/types/helpers/src/utils/obfuscate.d.ts.map +1 -0
  69. package/build/types/helpers/src/utils/obj.d.ts +4 -0
  70. package/build/types/helpers/src/utils/obj.d.ts.map +1 -0
  71. package/build/types/helpers/src/utils/requenceCallback.d.ts +17 -0
  72. package/build/types/helpers/src/utils/requenceCallback.d.ts.map +1 -0
  73. package/build/types/helpers/src/utils/resolveRequenceTypes.d.ts +8 -0
  74. package/build/types/helpers/src/utils/resolveRequenceTypes.d.ts.map +1 -0
  75. package/build/types/helpers/src/utils/types.d.ts +7 -0
  76. package/build/types/helpers/src/utils/types.d.ts.map +1 -0
  77. package/build/types/service/src/createAmqpConnection.d.ts +44 -0
  78. package/build/types/service/src/createAmqpConnection.d.ts.map +1 -0
  79. package/build/types/service/src/errors.d.ts +3 -0
  80. package/build/types/service/src/errors.d.ts.map +1 -0
  81. package/build/types/service/src/helpers.d.ts +98 -0
  82. package/build/types/service/src/helpers.d.ts.map +1 -0
  83. package/build/types/service/src/index.d.ts +20 -0
  84. package/build/types/service/src/index.d.ts.map +1 -0
  85. package/build/types/service/src/macro.d.ts +2 -0
  86. package/build/types/service/src/macro.d.ts.map +1 -0
  87. package/build/types/service/src/mapInput.d.ts +2 -0
  88. package/build/types/service/src/mapInput.d.ts.map +1 -0
  89. package/build/types/service/src/utils.d.ts +6 -0
  90. package/build/types/service/src/utils.d.ts.map +1 -0
  91. package/package.json +38 -0
@@ -0,0 +1,24 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../../helpers/src/utils/guards.ts", "../../helpers/src/utils/mapData.ts", "../../helpers/src/utils/requenceCallback.ts", "../../helpers/src/files/fileObject.ts", "../../helpers/src/files/RequenceFile.ts", "../../helpers/src/files/RequenceStream.ts", "../../helpers/src/files/streamObject.ts", "../../helpers/src/files/mapOutput.ts", "../../helpers/src/utils/resolveRequenceTypes.ts", "../src/createAmqpConnection.ts", "../src/errors.ts", "../src/helpers.ts", "../src/mapInput.ts", "../src/utils.ts"],
4
+ "sourcesContent": [
5
+ "import fs from 'node:fs'\n\nimport { deobfuscate } from '@requence/helpers'\nimport type { AmqpConnectionManagerOptions } from 'amqp-connection-manager'\n\nimport createAmqpConnection, {\n type ConnectionApi,\n type MessageHandler,\n connectionOptionsSchema,\n} from './createAmqpConnection.ts'\n\nexport { RequenceFile, RequenceStream } from '@requence/helpers/files'\nexport {\n createCallback,\n type RequenceCallback,\n type WrappedRequenceCallback,\n} from '@requence/helpers'\nexport * from './errors.ts'\nexport * from './utils.ts'\n\nexport { MessageHandler } from './createAmqpConnection.ts'\nexport type ServiceApi<\n V extends keyof RequenceService.Version | (string & {}),\n> = ConnectionApi<V>\n\ninterface ServiceOptions<V extends string> {\n accessToken?: string\n devToken?: string\n version: V\n prefetch?: number\n connectionTimeout?: number\n silent?: boolean\n connectionOptions?: AmqpConnectionManagerOptions['connectionOptions']\n}\n\nlet pkgJson: any | null\nfunction loadPkgJson() {\n if (!pkgJson) {\n pkgJson = JSON.parse(fs.readFileSync('package.json', 'utf-8'))\n }\n return pkgJson\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 try {\n const pkgJson = loadPkgJson()\n token =\n pkgJson.requence?.service?.accessToken ?? pkgJson.requence?.accessToken\n } catch {\n //\n }\n }\n\n let devToken =\n options.devToken ??\n process.env.REQUENCE_SERVICE_DEV_TOKEN ??\n process.env.REQUENCE_DEV_TOKEN\n\n if (!devToken) {\n try {\n const pkgJson = loadPkgJson()\n devToken =\n pkgJson.requence?.service?.devToken ?? pkgJson.requence?.devToken\n } catch {\n //\n }\n }\n\n if (!token) {\n throw new Error('no access token provided')\n }\n\n const parts = deobfuscate(token)\n\n if (parts.length < 2 || parts[0] !== 'service') {\n throw new Error('invalid access token')\n }\n const url = parts[1]\n let devOverlay: string | undefined\n\n if (devToken) {\n const devParts = deobfuscate(devToken)\n if (devParts[0] !== 'api') {\n throw new Error(\n 'invalid dev token: please provide a personal access token',\n )\n }\n if (devParts[2] !== parts[2]) {\n throw new Error(\n 'invalid dev token: access token and dev token belong to different requence instances',\n )\n }\n devOverlay = devParts[1]\n }\n\n return createAmqpConnection<V>(\n connectionOptionsSchema.parse({\n ...options,\n url,\n devOverlay,\n }),\n messageHandler,\n )\n}\n",
6
+ "import { z } from 'zod/v4'\n\nconst recordSchema = z.record(z.string(), z.unknown())\nexport function isRecord(data: unknown): data is Record<string, unknown> {\n return recordSchema.safeParse(data).success\n}\n\nconst uuidSchema = z.uuid()\nexport function isUuid(data: unknown): data is string {\n return uuidSchema.safeParse(data).success\n}\n",
7
+ "import { isRecord } from './guards.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 Function?: DataVistor<(...args: any[]) => any>\n Symbol?: DataVistor<symbol>\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\nclass AbortMapData extends Error {}\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 let aborted = false\n const traverseData = (data: any, path: Array<string | number>): any => {\n if (aborted) {\n return data\n }\n try {\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 (typeof data === 'symbol') {\n return notUndefined(visitors.Symbol?.(data, path), data)\n }\n if (typeof data === 'function') {\n return notUndefined(visitors.Function?.(data, path), data)\n }\n if (isRecord(data)) {\n return resolve(\n visitors.Object?.(structuredClone(data), path),\n (resolvedData) => {\n const nextData = resolvedData ?? data\n if (!isRecord(nextData)) {\n return nextData\n }\n const entries = Object.entries(nextData).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 }\n if (typeof data === 'object' && data) {\n return notUndefined(visitors.Object?.(data, path), data)\n }\n return data\n } catch (error) {\n if (error instanceof AbortMapData) {\n aborted = true\n return data\n }\n throw error\n }\n }\n\n return traverseData(data, [])\n}\n\nmapData.abort = () => {\n throw new AbortMapData()\n}\n",
8
+ "import { z } from 'zod/v4'\n\nconst callbackObjectSchema = z.object({\n sourceId: z.string(),\n outputName: z.string().nullable(),\n propertyPath: z.array(z.union([z.string(), z.int()])),\n callbackId: z.uuid(),\n __REQUENCE_type: z.literal('RequenceCallback'),\n})\n\nexport type CallbackObject = z.infer<typeof callbackObjectSchema>\n\nexport function isCallbackObject(data: unknown): data is CallbackObject {\n return callbackObjectSchema.safeParse(data).success\n}\n\nexport type RequenceCallback<T> = (arg: T) => void\nexport type WrappedRequenceCallback<T> = RequenceCallback<T> & {\n response(): Promise<T>\n}\n\nexport function createCallback<T>(\n callback?: (arg: T) => void,\n): WrappedRequenceCallback<T> {\n const { promise, resolve } = Promise.withResolvers<T>()\n\n const executor = (arg: T) => {\n resolve(arg)\n callback?.(arg)\n }\n\n return Object.assign(executor, {\n response() {\n return promise\n },\n })\n}\n",
9
+ "import { z } from 'zod/v4'\n\nconst fileObjectSchema = z.object({\n size: z.int().positive(),\n mime: z.string(),\n url: z.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",
10
+ "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 #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",
11
+ "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 #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",
12
+ "import { z } from 'zod/v4'\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 isStreamObject(data: unknown): data is StreamObject {\n return streamObjectSchema.safeParse(data).success\n}\n\nexport function toStreamObject(streamInfo: {\n mime: string\n url: string\n}): StreamObject {\n return {\n ...streamInfo,\n __REQUENCE_type: 'RequenceStream',\n }\n}\n",
13
+ "import { toFileObject } from './fileObject.ts'\nimport { RequenceFile } from './RequenceFile.ts'\nimport { RequenceStream } from './RequenceStream.ts'\nimport { toStreamObject } from './streamObject.ts'\nimport type { TaskOptions } from '../protocol/taskOptions.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<TaskOptions, '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 { mapData } from './mapData.ts'\nimport { isCallbackObject } from './requenceCallback.ts'\nimport {\n RequenceFile,\n RequenceStream,\n isFileObject,\n isStreamObject,\n} from '../files/index.ts'\n\nexport function resolveRequenceTypes(\n data: any,\n onCallback?: (params: {\n sourceId: string\n callbackId: string\n outputName: string | null\n propertyPath: (string | number)[]\n arg: unknown\n }) => void,\n) {\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 if (isCallbackObject(obj)) {\n return (arg: unknown) => {\n onCallback?.({ ...obj, arg })\n }\n }\n },\n })\n}\n",
15
+ "import { type MaybePromise, deobfuscate, obfuscate } from '@requence/helpers'\nimport { type Options, connect } from 'amqp-connection-manager'\nimport type { ConfirmChannel } from 'amqplib'\nimport { z } from 'zod/v4'\n\nimport { RequenceConnectionError } from './errors.ts'\nimport createContextHelper, {\n AbortError,\n type ContextHelper,\n type JSONValue,\n RetryError,\n SkipError,\n handlerStorage,\n processData,\n unwrapResult,\n} from './helpers.ts'\nimport { libVersion } from './macro.ts' with { type: 'macro' }\nimport mapInput from './mapInput.ts'\n\ntype InternalNamedOutput = '__internal_named_output__'\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>,\n ON = O extends null ? '__default__' : O,\n> = ON extends keyof RequenceService.Version[V]['outputs']\n ? RequenceService.Version[V]['outputs'][ON]\n : never\n\ninterface ServiceContextHelper<\n V extends keyof RequenceService.Version,\n> extends Omit<\n ContextHelper,\n 'input' | 'configuration' | 'getData' | 'getConfiguration' | 'toOutput'\n> {\n input: Input<V>\n configuration: Configuration<V>\n\n toOutput<O extends OutputName<V>>(\n name: O,\n value: OutputValue<V, O>,\n ): InternalNamedOutput\n}\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: (\n api: ActorApi<V>,\n ) =>\n | ApiOutputValue<V, null>\n | Promise<ApiOutputValue<V, null>>\n | void\n | Promise<void>\n | AsyncGenerator<ApiOutputValue<V, null>>\n | Generator<ApiOutputValue<V, null>>,\n ): Promise<void>\n}\n\nconst messageKeySchema = z\n .string()\n .transform((str) => deobfuscate(str))\n .pipe(z.tuple([z.uuid(), z.uuid()]).rest(z.string()))\n .transform((arr) => ({\n taskId: arr[0],\n messageId: arr[1],\n uploadUrl: arr[2] || undefined,\n streamUrl: arr[3] || undefined,\n }))\n\nconst headerSchema = z\n .object({\n properties: z.object({\n correlationId: z.uuid(),\n headers: z.object({\n taskId: z.uuid(),\n mode: z.enum(['LINEAR', 'CONTINUOUS']).default('LINEAR'),\n }),\n }),\n })\n .transform((msg) => ({\n messageId: msg.properties.correlationId,\n taskId: msg.properties.headers.taskId,\n mode: msg.properties.headers.mode,\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 input: z.unknown(),\n configuration: z.unknown(),\n options: z.object({\n uploadUrl: z.url().optional(),\n streamUrl: z.url().optional(),\n }),\n }),\n )\n\nconst backchannelMessageSchema = z\n .object({\n content: z\n .instanceof(Buffer)\n .transform((content) => JSON.parse(content.toString()))\n .pipe(\n z.discriminatedUnion('type', [\n z.object({\n type: z.literal('stop'),\n }),\n z.object({\n type: z.literal('callback'),\n callbackId: z.uuid(),\n arg: z.any(),\n }),\n ]),\n ),\n properties: z.object({\n correlationId: z.string(),\n }),\n })\n .transform((message) => ({\n payload: message.content,\n messageId: message.properties.correlationId,\n }))\n\nconst abortSymbol = Symbol()\n\nexport const 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 devOverlay: z.string().optional(),\n silent: z.boolean().optional(),\n prefetch: z.number().int().optional(),\n connectionTimeout: z.number().positive().default(3_000),\n connectionOptions: z.any().optional(),\n})\n\nexport type ConnectionOptions = z.output<typeof connectionOptionsSchema>\n\ntype MessageHandlerContext<V> = V extends keyof RequenceService.Version\n ? ServiceContextHelper<V>\n : ContextHelper\ntype MessageHandlerReturnValue<\n V,\n O = null,\n> = V extends keyof RequenceService.Version\n ? O extends OutputName<V>\n ? OutputValue<V, O> | InternalNamedOutput\n : void\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<\n MessageHandlerReturnValue<V>,\n MessageHandlerReturnValue<V> | void,\n void\n>\ntype MessageHandlerAsyncGenerator<V> = (\n context: MessageHandlerContext<V>,\n) => AsyncGenerator<\n MessageHandlerReturnValue<V>,\n MessageHandlerReturnValue<V> | void,\n void\n>\n\nexport type MessageHandler<V> = V extends keyof RequenceService.Version\n ? RequenceService.Version[V]['mode'] extends 'LINEAR'\n ? MessageHandlerFunction<V>\n :\n | MessageHandlerAsyncGenerator<V>\n | MessageHandlerGenerator<V>\n | MessageHandlerFunction<V>\n :\n | MessageHandlerAsyncGenerator<V>\n | MessageHandlerGenerator<V>\n | MessageHandlerFunction<V>\n\nfunction isMessageHandlerGenerator<V extends keyof RequenceService.Version>(\n // oxlint-disable-next-line typescript/no-unsafe-function-type\n handler: Function,\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 Map<string, Promise<void>>()\n\nexport default function createConnection<V>(\n {\n url,\n version,\n prefetch = 1,\n silent = false,\n connectionTimeout,\n connectionOptions,\n devOverlay = '',\n }: ConnectionOptions,\n messageHandler: MessageHandler<V>,\n) {\n const baseQueue = `${url.username}@${version}`\n const queue = devOverlay\n ? `${baseQueue}-dev-overlay-${devOverlay}`\n : baseQueue\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({\n err: new RequenceConnectionError('Requence connection timeout'),\n })\n }, connectionTimeout)\n\n const handleConnect = () => {\n unsubscribe()\n resolve()\n }\n\n const handleConnectFailed = ({ err }: { err: Error }) => {\n unsubscribe()\n if (\n err.message.startsWith(\n 'Handshake terminated by server: 403 (ACCESS-REFUSED)',\n )\n ) {\n reject(new RequenceConnectionError('Invalid service credentials'))\n } else {\n reject(err)\n }\n }\n\n connection.addListener('connect', handleConnect)\n connection.addListener('connectFailed', handleConnectFailed)\n })\n\n const connectionId = crypto.randomUUID()\n const backchannelQueue = `${baseQueue}-backchannel-${connectionId}`\n const generatorTerminators = new Map<string, (reason: string) => void>()\n const callbacks = new Map<string, (...args: any[]) => void>()\n\n const channelWrapper = connection.createChannel({\n async setup(channel: ConfirmChannel) {\n if (devOverlay) {\n await channel.assertQueue(queue)\n await channel.bindQueue(queue, 'service', queue)\n }\n await channel.checkExchange(exchange)\n await channel.checkExchange(`${exchange}-retry`)\n await channel.checkQueue(queue)\n await channel.prefetch(prefetch)\n\n await channel.assertQueue(backchannelQueue, {\n exclusive: true,\n })\n\n await channel.bindQueue(backchannelQueue, 'service', backchannelQueue)\n\n await channel.consume(\n backchannelQueue,\n async (message) => {\n const result = backchannelMessageSchema.safeParse(message)\n\n if (!result.success) {\n return\n }\n\n const backchannelMessage = result.data\n\n switch (backchannelMessage.payload.type) {\n case 'stop': {\n generatorTerminators.get(backchannelMessage.messageId)?.(\n 'task stopped',\n )\n break\n }\n case 'callback': {\n callbacks.get(backchannelMessage.payload.callbackId)?.(\n backchannelMessage.payload.arg,\n )\n break\n }\n }\n },\n {\n noAck: true,\n },\n )\n },\n })\n\n const publish = ({\n data,\n outputName,\n messageId,\n priority,\n ...headers\n }: {\n index: number\n data?: unknown\n outputName?: string | null\n messageId: string\n taskId: string\n priority?: number\n version: string\n debugMethod?: 'log' | 'warn' | 'info' | 'error'\n debug?: boolean\n connectionId?: string\n callbackId?: string\n propertyPath?: (string | number)[]\n begin?: boolean\n deferred?: boolean\n done?: boolean\n }) =>\n channelWrapper.publish(\n exchange,\n '',\n Buffer.from(JSON.stringify(data ?? null)),\n {\n correlationId: messageId,\n contentType: 'application/json',\n persistent: true,\n priority,\n headers: {\n outputName: outputName ?? null,\n connectionId,\n libVersion: libVersion(),\n ...headers,\n },\n },\n )\n\n channelWrapper.addSetup(async (channel: ConfirmChannel) => {\n channel.consume(queue, async (message) => {\n if (!message) {\n return\n }\n\n let publishIndex = 0\n let acked = false\n let terminated = false\n const donePromises: Array<Promise<void>> = []\n const registeredCallbackIds = new Set<string>()\n let resolveActiveMessage = () => {}\n\n const { messageId, taskId, mode } = headerSchema.parse(message)\n\n try {\n let deferred = false\n let deferredReason: string | null = null\n\n const messageExecution = Promise.withResolvers<void>()\n activeMessages.set(messageId, messageExecution.promise)\n messageExecution.promise.then(() => {\n activeMessages.delete(messageId)\n })\n resolveActiveMessage = () => {\n messageExecution.resolve()\n }\n\n const payload = payloadSchema.parse(message)\n\n const [extendedContext, terminatePromise] = createContextHelper({\n taskId,\n input: mapInput(payload.input),\n configuration: mapInput(payload.configuration),\n onLog(debugMethod, data) {\n publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n data,\n debugMethod,\n priority: message.properties.priority,\n debug: true,\n })\n },\n onDefer(reason) {\n deferred = true\n deferredReason = reason || null\n\n return obfuscate(\n taskId,\n messageId,\n payload.options.uploadUrl ?? '',\n payload.options.streamUrl ?? '',\n )\n },\n onCallback(params) {\n publish({\n index: 0,\n version,\n taskId,\n messageId,\n data: params.arg,\n outputName: params.outputName,\n connectionId: params.sourceId,\n callbackId: params.callbackId,\n propertyPath: params.propertyPath,\n })\n },\n }) as unknown as [\n MessageHandlerContext<V>,\n PromiseWithResolvers<string>,\n ]\n\n await publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n priority: message.properties.priority,\n begin: true,\n })\n\n if (\n isMessageHandlerGenerator(messageHandler) &&\n mode === 'CONTINUOUS'\n ) {\n // CONTINUOUS generator: ACK immediately, operator watchdog supervises\n channel.ack(message)\n acked = true\n\n const generator = messageHandler(extendedContext)\n const terminationPromise = Promise.withResolvers<typeof abortSymbol>()\n generatorTerminators.set(messageId, (reason) => {\n terminated = true\n // Suppress native AbortError that may reject generator.return() when\n // context.terminated.signal fires and cancels a pending await inside\n // the generator (e.g. node:timers/promises setTimeout with { signal }).\n ;(generator.return() as Promise<unknown>).catch(\n (error: unknown) => {\n if (\n terminated &&\n error instanceof Error &&\n error.name === 'AbortError' &&\n !(error instanceof AbortError)\n ) {\n return\n }\n throw error\n },\n )\n terminationPromise.resolve(abortSymbol)\n terminatePromise.resolve(reason)\n })\n\n await handlerStorage.run(\n extendedContext as ContextHelper,\n async () => {\n while (true) {\n type IterResult = IteratorResult<\n MessageHandlerReturnValue<V, null>,\n void | MessageHandlerReturnValue<V, null>\n >\n // Catch native AbortError from context.terminated.signal so\n // generator implementations don't need their own try/catch.\n const nextPromise = Promise.resolve(generator.next()).then(\n (r) => r,\n (error: unknown) => {\n if (\n terminated &&\n error instanceof Error &&\n error.name === 'AbortError' &&\n !(error instanceof AbortError)\n ) {\n return { value: undefined, done: true } as IterResult\n }\n throw error\n },\n )\n const next = await Promise.race([\n terminationPromise.promise,\n nextPromise,\n ])\n if (next === abortSymbol) {\n break\n }\n\n const { value: result, done } = next\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 = Promise.withResolvers<void>()\n donePromises.push(donePromise.promise)\n\n const { value, outputName } = await unwrapResult({\n result,\n options: payload.options,\n onDone: donePromise.resolve,\n onCallback: (callback) => {\n const callbackId = crypto.randomUUID()\n registeredCallbackIds.add(callbackId)\n callbacks.set(callbackId, callback)\n return {\n sourceId: connectionId,\n callbackId,\n }\n },\n })\n\n if (!done || typeof value !== 'undefined') {\n publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n data: value,\n priority: message.properties.priority,\n outputName,\n })\n }\n\n if (done) {\n break\n }\n }\n },\n )\n } else {\n const result = await handlerStorage.run(\n extendedContext as ContextHelper,\n () => messageHandler(extendedContext),\n )\n const donePromise = Promise.withResolvers<void>()\n donePromises.push(donePromise.promise)\n const { value, outputName } = await unwrapResult({\n result,\n options: payload.options,\n onDone: donePromise.resolve,\n onCallback: () => {\n throw new Error(\n 'callbacks can only be used in generator functions',\n )\n },\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 index: publishIndex++,\n version,\n messageId,\n taskId,\n data: value,\n priority: message.properties.priority,\n outputName,\n })\n }\n }\n\n await new Promise<void>((resolve) => {\n setImmediate(async () => {\n if (!deferred) {\n await Promise.allSettled(donePromises)\n }\n\n await publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n data: deferredReason,\n priority: message.properties.priority,\n deferred,\n done: !deferred,\n })\n\n if (!acked) {\n channel.ack(message)\n }\n resolve()\n })\n })\n } catch (error) {\n if (error instanceof SkipError) {\n if (!acked) {\n channel.nack(message)\n }\n return\n }\n if (error instanceof RetryError) {\n if (!acked) {\n channel.ack(message)\n }\n const properties: Options.Publish = {\n ...message.properties,\n expiration: error.delay || 1_000, // 1s\n }\n channel.publish(\n `${exchange}-retry`,\n version, // to other services\n message.content,\n properties,\n )\n\n return\n }\n\n if (error instanceof AbortError && error.message.length > 0) {\n if (!acked) {\n channelWrapper.ack(message)\n }\n channelWrapper.publish(\n `${exchange}-retry`,\n 'operator', //back to operator\n error.message,\n {\n ...message.properties,\n contentType: 'text/plain',\n headers: {\n ...message.properties.headers,\n index: publishIndex++,\n libVersion: libVersion(),\n abort: true,\n },\n },\n )\n\n return\n }\n\n // Native AbortError thrown when context.terminated.signal fires\n // (e.g. node:timers/promises setTimeout with { signal: context.terminated.signal }).\n // Only suppress when actually in a terminated state — otherwise a\n // different AbortSignal caused the error and it should propagate.\n if (\n terminated &&\n error instanceof Error &&\n error.name === 'AbortError' &&\n !(error instanceof AbortError)\n ) {\n if (!acked) {\n channel.ack(message)\n }\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 if (!acked) {\n channel.ack(message)\n }\n channel.publish(\n `${exchange}-retry`,\n 'operator', // back to operator\n message.content,\n {\n ...message.properties,\n headers: {\n ...message.properties.headers,\n version,\n exception: true,\n index: publishIndex++,\n libVersion: libVersion(),\n 'error-message': error.message || 'error in service handler',\n },\n },\n )\n\n return\n }\n } finally {\n generatorTerminators.delete(messageId)\n registeredCallbackIds.forEach((id) => callbacks.delete(id))\n resolveActiveMessage()\n }\n })\n })\n\n const activeMessageKeys = new Set<string>()\n const api: ConnectionApi<V> = {\n close: async () => {\n await channelWrapper.close()\n await connection.close()\n },\n open: () => connectedPromise.then(() => api),\n\n async act(messageKey, actor) {\n if (activeMessageKeys.has(messageKey)) {\n throw new Error('a defer key can only be used once')\n }\n\n activeMessageKeys.add(messageKey)\n\n let publishIndex = 0\n const { taskId, messageId, ...options } =\n messageKeySchema.parse(messageKey)\n\n const activeMessage = async () => {\n if (activeMessages.has(messageId)) {\n await activeMessages.get(messageId)\n }\n }\n\n const registeredCallbackIds = new Set<string>()\n const donePromises: Array<Promise<unknown>> = []\n\n const sendApi = {\n async sendToOutput(outputName: string, data: unknown) {\n await activeMessage()\n const donePromise = Promise.withResolvers<void>()\n donePromises.push(donePromise.promise)\n donePromises.push(\n publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n data: await processData({\n outputName: outputName as string | null,\n data,\n options,\n onDone: donePromise.resolve,\n onCallback: (callback) => {\n const callbackId = crypto.randomUUID()\n registeredCallbackIds.add(callbackId)\n callbacks.set(callbackId, callback)\n\n return {\n sourceId: connectionId,\n callbackId,\n }\n },\n }),\n outputName: outputName as string | null,\n }),\n )\n },\n async send(data: unknown) {\n await activeMessage()\n const donePromise = Promise.withResolvers<void>()\n donePromises.push(donePromise.promise)\n donePromises.push(\n publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n data: await processData({\n outputName: null,\n data,\n options,\n onDone: donePromise.resolve,\n onCallback: (callback) => {\n const callbackId = crypto.randomUUID()\n registeredCallbackIds.add(callbackId)\n callbacks.set(callbackId, callback)\n return {\n sourceId: connectionId,\n callbackId,\n }\n },\n }),\n }),\n )\n },\n async abort(error: string | Error) {\n await activeMessage()\n channelWrapper.publish(\n `${exchange}-retry`,\n 'operator',\n error instanceof Error ? error.message : error,\n {\n persistent: true,\n correlationId: messageId,\n expiration: 0,\n priority: 0,\n contentType: 'text/plain',\n headers: {\n taskId,\n libVersion: libVersion(),\n index: publishIndex++,\n abort: true,\n },\n },\n )\n },\n }\n\n const result = await actor(sendApi as ActorApi<V>)\n\n if (\n result != null &&\n typeof result === 'object' &&\n (Symbol.asyncIterator in result || Symbol.iterator in result)\n ) {\n // Generator: iterate and send each yielded value\n const iterable = result as AsyncIterable<unknown> | Iterable<unknown>\n for await (const value of iterable) {\n if (value !== undefined) {\n await sendApi.send(value)\n }\n }\n } else if (result !== undefined) {\n await sendApi.send(result)\n }\n\n await new Promise((resolve) => setImmediate(resolve))\n await activeMessage()\n\n while (true) {\n const promiseCount = donePromises.length\n await Promise.allSettled(donePromises)\n if (promiseCount === donePromises.length) {\n break\n }\n }\n\n registeredCallbackIds.forEach((id) => callbacks.delete(id))\n\n await publish({\n index: publishIndex++,\n version,\n messageId,\n taskId,\n done: true,\n })\n\n activeMessageKeys.delete(messageKey)\n },\n }\n\n return api\n}\n",
16
+ "export class RequenceConnectionError extends Error {}\n",
17
+ "import { AsyncLocalStorage } from 'node:async_hooks'\n\nimport { mapData, resolveRequenceTypes } from '@requence/helpers'\nimport { mapOutput } from '@requence/helpers/files'\nimport type { TaskOptions } from '@requence/helpers/protocol'\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | Array<JSONValue>\n | null\n | undefined\n\nexport class RetryError extends Error {\n constructor(public delay?: number) {\n super()\n }\n}\n\nexport class SkipError extends Error {}\n\nexport class AbortError extends Error {}\n\nconst OUTPUT_VALUE = Symbol('output_value')\n\ntype OutputValue = {\n [OUTPUT_VALUE]: string | null\n value: any\n}\n\nfunction isOutputValue(value: unknown): value is OutputValue {\n return value !== null && typeof value === 'object' && OUTPUT_VALUE in value\n}\n\nexport function processData(params: {\n data: unknown\n outputName: null | string\n options: Pick<TaskOptions, 'uploadUrl' | 'streamUrl'>\n onCallback: (callback: (...args: any[]) => void) => {\n callbackId: string\n sourceId: string\n }\n onDone: () => void\n}) {\n return mapOutput({\n value: mapData(params.data, {\n Function(data, path) {\n return {\n ...params.onCallback(data),\n outputName: params.outputName,\n propertyPath: path,\n __REQUENCE_type: 'RequenceCallback',\n }\n },\n }),\n options: params.options,\n onDone: params.onDone,\n })\n}\n\nexport async function unwrapResult(params: {\n result: unknown\n options: Pick<TaskOptions, 'uploadUrl' | 'streamUrl'>\n onCallback: (callback: (...args: any[]) => void) => {\n callbackId: string\n sourceId: string\n }\n onDone: () => void\n}) {\n if (isOutputValue(params.result)) {\n return {\n value: await processData({\n outputName: params.result[OUTPUT_VALUE],\n data: params.result.value,\n options: params.options,\n onDone: params.onDone,\n onCallback: params.onCallback,\n }),\n outputName: params.result[OUTPUT_VALUE],\n }\n }\n return {\n value: await processData({\n outputName: null,\n data: params.result,\n options: params.options,\n onDone: params.onDone,\n onCallback: params.onCallback,\n }),\n outputName: null,\n }\n}\n\nexport default function createContextHelper(options: {\n taskId: string\n input: unknown\n configuration: unknown\n onLog: (method: 'log' | 'warn' | 'info' | 'error', data: any[]) => void\n onDefer: (reason?: string) => string\n onCallback: (params: {\n sourceId: string\n callbackId: string\n outputName: string | null\n propertyPath: (string | number)[]\n arg: unknown\n }) => void\n}) {\n const terminatePromise = Promise.withResolvers<string>()\n const abortController = new AbortController()\n terminatePromise.promise.then(() => abortController.abort())\n\n const terminated = Object.assign(terminatePromise.promise, {\n signal: abortController.signal,\n })\n\n return [\n {\n taskId: options.taskId,\n input: resolveRequenceTypes(options.input, options.onCallback),\n configuration: resolveRequenceTypes(options.configuration, () => {\n throw new Error('configuration may not have callbacks')\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 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 skip() {\n throw new SkipError()\n },\n terminated,\n },\n terminatePromise,\n ] as const\n}\n\nexport type ContextHelper = ReturnType<typeof createContextHelper>[0]\n\nexport const handlerStorage = new AsyncLocalStorage<ContextHelper>()\n",
18
+ "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",
19
+ "import { handlerStorage } from './helpers.ts'\n\nfunction isAsyncIterable<T>(\n iterable: Iterable<T> | AsyncIterable<T>,\n): iterable is AsyncIterable<T> {\n return typeof (iterable as any)[Symbol.asyncIterator] === 'function'\n}\n\nexport function wrapIterable<T extends Iterable<any> | AsyncIterable<any>>(\n iterable: T,\n): T {\n const context = handlerStorage.getStore()\n\n if (!context) {\n return iterable\n }\n\n let terminated = false\n\n context.terminated.then(() => {\n terminated = true\n })\n\n if (isAsyncIterable(iterable)) {\n return {\n [Symbol.asyncIterator]() {\n const iterator = iterable[Symbol.asyncIterator]()\n\n return {\n async next() {\n const result = await Promise.race([\n context.terminated,\n iterator.next(),\n ])\n\n if (terminated) {\n return { done: true, value: undefined }\n }\n\n return result\n },\n }\n },\n } as T\n }\n\n return {\n [Symbol.iterator]() {\n const iterator = iterable[Symbol.iterator]()\n\n return {\n next() {\n if (terminated) {\n return { done: true, value: undefined }\n }\n const result = iterator.next()\n return result\n },\n }\n },\n } as T\n}\n\nexport function asyncEventEmitter<T>(initial: Array<T> = []) {\n const context = handlerStorage.getStore()\n\n let terminated = false\n context?.terminated.then(() => {\n terminated = true\n })\n\n let resolve: (value: T) => void\n const initialValues = structuredClone(initial)\n return {\n push: (value: T) => {\n if (resolve) {\n resolve(value)\n } else {\n initialValues.push(value)\n }\n },\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return {\n async next() {\n if (initialValues.length > 0) {\n return { value: initialValues.shift()!, done: false }\n }\n const defer = Promise.withResolvers<T>()\n resolve = defer.resolve\n\n if (context) {\n const value = await Promise.race([\n defer.promise,\n context.terminated,\n ])\n\n return terminated\n ? { done: true, value: undefined }\n : { done: false, value: value as Awaited<T> }\n }\n\n return { value: await defer.promise, done: false }\n },\n }\n },\n }\n}\n"
20
+ ],
21
+ "mappings": "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",
22
+ "debugId": "DF5C6A6E1370BBD564756E2164756E21",
23
+ "names": []
24
+ }
@@ -0,0 +1,40 @@
1
+ import type { FileObject } from './index.ts';
2
+ import type { MainMimeType, SubMimeType, ValidMimeType } from './types.ts';
3
+ interface RequenceFilePropertyBag<T> extends Omit<BlobPropertyBag, 'type'> {
4
+ type: T;
5
+ }
6
+ export interface RequenceFileType<A, B> {
7
+ size: number;
8
+ mimeType: string;
9
+ mainMimeType: A;
10
+ subMimeType: B;
11
+ text(): Promise<string>;
12
+ json(): Promise<unknown>;
13
+ blob(): Promise<Blob>;
14
+ arrayBuffer(): Promise<ArrayBuffer>;
15
+ }
16
+ export declare class RequenceFile<T extends `${string}/${string}` = '*/*', A = MainMimeType<T>, B = SubMimeType<T>> implements RequenceFileType<A, B> {
17
+ #private;
18
+ constructor(blobParts: BlobPart[], options?: RequenceFilePropertyBag<ValidMimeType<T>>);
19
+ /** @internal */
20
+ static fromFileObject<T extends `${string}/${string}`>(file: FileObject): RequenceFile<T>;
21
+ /** @internal */
22
+ get fileObject(): {
23
+ size: number;
24
+ mime: string;
25
+ url: string;
26
+ __REQUENCE_type: "RequenceFile";
27
+ } | null;
28
+ get size(): number;
29
+ get mimeType(): string;
30
+ get mainMimeType(): A;
31
+ get subMimeType(): B;
32
+ text(): Promise<string>;
33
+ json(): Promise<any>;
34
+ blob(): Promise<Blob>;
35
+ arrayBuffer(): Promise<ArrayBuffer>;
36
+ toString(): string;
37
+ toJSON(): string;
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=RequenceFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequenceFile.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/RequenceFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1E,UAAU,uBAAuB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IACxE,IAAI,EAAE,CAAC,CAAA;CACR;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,CAAC,CAAA;IACf,WAAW,EAAE,CAAC,CAAA;IACd,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;CACpC;AAED,qBAAa,YAAY,CACvB,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,KAAK,EACvC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EACnB,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAClB,YAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAI/B,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,CAAC,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAKrD,gBAAgB;IAChB,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,GAGlD,YAAY,CAAC,CAAC,CAAC;IAGpC,gBAAgB;IAChB,IAAI,UAAU;;;;;aAEb;IAED,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,YAAY,IACwB,CAAC,CACxC;IAED,IAAI,WAAW,IACyB,CAAC,CACxC;IAEK,IAAI;IAOJ,IAAI;IAOJ,IAAI;IAOJ,WAAW;IAOjB,QAAQ;IAIR,MAAM;CAGP"}
@@ -0,0 +1,32 @@
1
+ import type { StreamObject } from './index.ts';
2
+ import type { MainMimeType, SubMimeType, ValidMimeType } from './types.ts';
3
+ export interface RequenceStreamType<A, B> {
4
+ mimeType: string;
5
+ mainMimeType: A;
6
+ subMimeType: B;
7
+ stream(): ReadableStream;
8
+ }
9
+ interface RequenceStreamOptions<T> {
10
+ type: T;
11
+ }
12
+ export declare class RequenceStream<T extends `${string}/${string}` = '*/*', A = MainMimeType<T>, B = SubMimeType<T>> implements RequenceStreamType<A, B> {
13
+ #private;
14
+ constructor(stream: ReadableStream, options: RequenceStreamOptions<ValidMimeType<T>>);
15
+ /** @internal */
16
+ static fromStreamObject<T extends `${string}/${string}`>(stream: StreamObject): RequenceStream<T>;
17
+ /** @internal */
18
+ get streamObject(): {
19
+ mime: string;
20
+ url: string;
21
+ __REQUENCE_type: "RequenceStream";
22
+ } | null;
23
+ get mimeType(): any;
24
+ get mainMimeType(): A;
25
+ get subMimeType(): B;
26
+ stream(): ReadableStream<any>;
27
+ asyncIterable(): AsyncIterable<Uint8Array>;
28
+ toString(): string;
29
+ toJSON(): string;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=RequenceStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequenceStream.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/RequenceStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1E,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,CAAC,CAAA;IACf,WAAW,EAAE,CAAC,CAAA;IACd,MAAM,IAAI,cAAc,CAAA;CACzB;AAED,UAAU,qBAAqB,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAA;CACR;AAED,qBAAa,cAAc,CACzB,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,KAAK,EACvC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EACnB,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAClB,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAMjC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAMlD,gBAAgB;IAChB,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,EACrD,MAAM,EAAE,YAAY,GAMU,cAAc,CAAC,CAAC,CAAC;IAGjD,gBAAgB;IAChB,IAAI,YAAY;;;;aAEf;IAED,IAAI,QAAQ,QAEX;IAED,IAAI,YAAY,IACwB,CAAC,CACxC;IAED,IAAI,WAAW,IACyB,CAAC,CACxC;IAED,MAAM;IAaN,aAAa,IAAI,aAAa,CAAC,UAAU,CAAC;IAmB1C,QAAQ;IAIR,MAAM;CAGP"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod/v4';
2
+ declare const fileObjectSchema: z.ZodObject<{
3
+ size: z.ZodInt;
4
+ mime: z.ZodString;
5
+ url: z.ZodURL;
6
+ __REQUENCE_type: z.ZodLiteral<"RequenceFile">;
7
+ }, z.core.$strip>;
8
+ export type FileObject = z.infer<typeof fileObjectSchema>;
9
+ export declare function toFileObject(fileInfo: {
10
+ size: number;
11
+ mime: string;
12
+ url: string;
13
+ }): FileObject;
14
+ export declare function isFileObject(data: unknown): data is FileObject;
15
+ export {};
16
+ //# sourceMappingURL=fileObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileObject.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/fileObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,QAAA,MAAM,gBAAgB;;;;;iBAKpB,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,wBAAgB,YAAY,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,UAAU,CAKb;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,UAAU,CAE9D"}
@@ -0,0 +1,7 @@
1
+ export * from './mapOutput.ts';
2
+ export * from './isValidMimeType.ts';
3
+ export * from './RequenceFile.ts';
4
+ export * from './RequenceStream.ts';
5
+ export * from './streamObject.ts';
6
+ export * from './fileObject.ts';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare function isValidMimeType(fileInfo: {
2
+ ext?: string;
3
+ mime: string;
4
+ }, accept: string): boolean;
5
+ //# sourceMappingURL=isValidMimeType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidMimeType.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/isValidMimeType.ts"],"names":[],"mappings":"AAuCA,wBAAgB,eAAe,CAC7B,QAAQ,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACxC,MAAM,EAAE,MAAM,WA6Bf"}
@@ -0,0 +1,10 @@
1
+ import type { TaskOptions } from '../protocol/taskOptions.ts';
2
+ export declare function mapOutput(params: {
3
+ value: unknown;
4
+ options: Pick<TaskOptions, 'uploadUrl' | 'streamUrl'>;
5
+ onFail?: (error: Error) => void;
6
+ onSkip?: () => void;
7
+ onDone?: () => void;
8
+ signal?: AbortSignal;
9
+ }): Promise<unknown>;
10
+ //# sourceMappingURL=mapOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapOutput.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/mapOutput.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AA2E7D,wBAAsB,SAAS,CAAC,MAAM,EAAE;IACtC,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAAC,CAAA;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,oBAwFA"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod/v4';
2
+ declare const streamObjectSchema: z.ZodObject<{
3
+ mime: z.ZodString;
4
+ url: z.ZodString;
5
+ __REQUENCE_type: z.ZodLiteral<"RequenceStream">;
6
+ }, z.core.$strip>;
7
+ export type StreamObject = z.infer<typeof streamObjectSchema>;
8
+ export declare function isStreamObject(data: unknown): data is StreamObject;
9
+ export declare function toStreamObject(streamInfo: {
10
+ mime: string;
11
+ url: string;
12
+ }): StreamObject;
13
+ export {};
14
+ //# sourceMappingURL=streamObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamObject.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/streamObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,QAAA,MAAM,kBAAkB;;;;iBAItB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAElE;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,YAAY,CAKf"}
@@ -0,0 +1,4 @@
1
+ export type MainMimeType<T extends string> = T extends `${infer V}/${string}` ? V extends '*' ? any : V : any;
2
+ export type SubMimeType<T extends string> = T extends `${string}/${infer V}` ? V extends '*' ? any : V : any;
3
+ export type ValidMimeType<T extends `${string}/${string}`> = T extends `${infer A}/${infer B}` ? A extends '*' | '' | '/' ? never : B extends '*' | '' | '/' ? never : T : never;
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/files/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GACzE,CAAC,SAAS,GAAG,GACX,GAAG,GACH,CAAC,GACH,GAAG,CAAA;AAEP,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,GACxE,CAAC,SAAS,GAAG,GACX,GAAG,GACH,CAAC,GACH,GAAG,CAAA;AAEP,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,IACvD,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC7B,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,GAAG,GACtB,KAAK,GACL,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,GAAG,GACtB,KAAK,GACL,CAAC,GACL,KAAK,CAAA"}
@@ -0,0 +1,13 @@
1
+ export * from './utils/matchSchema.ts';
2
+ export * from './utils/obfuscate.ts';
3
+ export * from './utils/clone.ts';
4
+ export * from './utils/createObjectProxy.ts';
5
+ export * from './utils/callbackToAsyncIterator.ts';
6
+ export * from './utils/mapData.ts';
7
+ export * from './utils/guards.ts';
8
+ export * from './utils/resolveRequenceTypes.ts';
9
+ export * from './utils/requenceCallback.ts';
10
+ export * from './utils/types.ts';
11
+ export * from './utils/debounce.ts';
12
+ export * from './utils/obj.ts';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../helpers/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { JSONSchema7Definition } from 'json-schema';
2
+ import type { JSONSchema7 } from './types.ts';
3
+ interface Visitor {
4
+ String?: (schema: JSONSchema7) => JSONSchema7 | void;
5
+ Integer?: (schema: JSONSchema7) => JSONSchema7 | void;
6
+ Boolean?: (schema: JSONSchema7) => JSONSchema7 | void;
7
+ Null?: (schema: JSONSchema7) => JSONSchema7 | void;
8
+ Number?: (schema: JSONSchema7) => JSONSchema7 | void;
9
+ Array?: (schema: JSONSchema7) => JSONSchema7 | void;
10
+ Object?: (schema: JSONSchema7) => JSONSchema7 | void;
11
+ AnyOf?: (schema: JSONSchema7) => JSONSchema7 | void;
12
+ AllOf?: (schema: JSONSchema7) => JSONSchema7 | void;
13
+ OneOf?: (schema: JSONSchema7) => JSONSchema7 | void;
14
+ $ref?: (schema: JSONSchema7) => JSONSchema7 | void;
15
+ Enum?: (schema: JSONSchema7) => JSONSchema7 | void;
16
+ RequenceType?: (schema: JSONSchema7) => JSONSchema7 | void;
17
+ }
18
+ export declare function mapSchema<T extends JSONSchema7Definition>(rawSchema: T, visitor: Visitor, parentSchema?: JSONSchema7): T;
19
+ export {};
20
+ //# sourceMappingURL=mapSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapSchema.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/jsonschema/mapSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,UAAU,OAAO;IACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACrD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACrD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IAClD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACpD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACpD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACnD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACnD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IAClD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;IAClD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,GAAG,IAAI,CAAA;CAC3D;AAMD,wBAAgB,SAAS,CAAC,CAAC,SAAS,qBAAqB,EACvD,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,WAAW,GACzB,CAAC,CAmHH"}
@@ -0,0 +1,13 @@
1
+ import type { JSONSchema7, JSONSchema7TypeName } from 'json-schema';
2
+ declare module 'json-schema' {
3
+ interface JSONSchema7 {
4
+ requenceType?: 'file' | 'stream' | 'callback';
5
+ arg?: JSONSchema7;
6
+ maxByteLength?: number;
7
+ instanceOf?: string;
8
+ accept?: string;
9
+ requence?: Record<string, JSONSchema7Definition>;
10
+ }
11
+ }
12
+ export type { JSONSchema7, JSONSchema7TypeName };
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/jsonschema/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEnE,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,WAAW;QACnB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;QAC7C,GAAG,CAAC,EAAE,WAAW,CAAA;QACjB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;KACjD;CACF;AAED,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { Ajv as BaseAjv, type KeywordDefinition, type Options } from 'ajv';
2
+ import type { JSONSchema7 } from 'json-schema';
3
+ export declare class ValidationError extends Error {
4
+ readonly property?: string | undefined;
5
+ constructor(message: string, property?: string | undefined);
6
+ }
7
+ export declare const acceptKeyword: KeywordDefinition;
8
+ export declare const acceptKeywordEnforced: KeywordDefinition;
9
+ export declare const requenceTypeKeywords: KeywordDefinition;
10
+ export declare const instanceOfKeyword: KeywordDefinition;
11
+ export declare const maxByteLengthKeyword: KeywordDefinition;
12
+ export declare const maxByteLengthKeywordEnforced: KeywordDefinition;
13
+ export declare class Ajv extends BaseAjv {
14
+ constructor(options?: Options & {
15
+ enforeFileKeywords?: boolean;
16
+ });
17
+ }
18
+ export declare function validate<T extends JSONSchema7>(options: {
19
+ schema: T;
20
+ schemas?: Record<string, JSONSchema7>;
21
+ value: unknown;
22
+ property?: string;
23
+ allowAdditionalProperties?: boolean;
24
+ enforeFileKeywords?: boolean;
25
+ coerceTypes?: boolean;
26
+ removeAdditional?: boolean;
27
+ }): {
28
+ [x: string]: {};
29
+ } & {
30
+ [x: string]: {};
31
+ };
32
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/jsonschema/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,IAAI,OAAO,EAEd,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACb,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAO9C,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,CAAC,EAAE,MAAM;gBADjC,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,MAAM,YAAA;CAIpC;AAED,eAAO,MAAM,aAAa,EAAE,iBAQ3B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,iBAkBnC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAKlC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAkB/B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAOlC,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,iBAmB1C,CAAA;AAMD,qBAAa,GAAI,SAAQ,OAAO;gBAClB,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;CAiBjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE;IACvD,MAAM,EAAE,CAAC,CAAA;IACT,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;;;;EAqEA"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod/v4';
2
+ import type { JSONSchema7 } from './types.ts';
3
+ export declare const jsonSchema7Schema: z.ZodCustom<JSONSchema7, JSONSchema7>;
4
+ export declare const jsonSchema7ObjectSchema: z.ZodIntersection<z.ZodObject<{
5
+ type: z.ZodLiteral<"object">;
6
+ }, z.core.$strip>, z.ZodCustom<JSONSchema7, JSONSchema7>>;
7
+ export declare const jsonSchema7NullSchema: z.ZodObject<{
8
+ type: z.ZodLiteral<"null">;
9
+ }, z.core.$strip>;
10
+ export declare const jsonSchema7RefSchema: z.ZodIntersection<z.ZodObject<{
11
+ $ref: z.ZodString;
12
+ }, z.core.$strip>, z.ZodCustom<JSONSchema7, JSONSchema7>>;
13
+ export type JSONSchema7Object = z.output<typeof jsonSchema7ObjectSchema>;
14
+ export type JSONSchema7Null = z.output<typeof jsonSchema7NullSchema>;
15
+ export type JSONSchema7Ref = z.output<typeof jsonSchema7RefSchema>;
16
+ export type ExtendedJSONSchema7Object = JSONSchema7Object | JSONSchema7Null | JSONSchema7Object;
17
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/jsonschema/zod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7C,eAAO,MAAM,iBAAiB,uCAuC5B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;yDAIX,CAAA;AAEzB,eAAO,MAAM,qBAAqB;;iBAEhC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;yDAIR,CAAA;AAEzB,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAElE,MAAM,MAAM,yBAAyB,GACjC,iBAAiB,GACjB,eAAe,GACf,iBAAiB,CAAA"}