@requence/service 0.8.2-edge.1149 → 0.8.2-edge.1151
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/build/chunk-974rc2jy.js.map +1 -1
- package/build/index.js +28 -6
- package/build/index.js.map +3 -3
- package/build/types/helpers/src/protocol/NodeTree.d.ts +12 -0
- package/build/types/helpers/src/protocol/NodeTree.d.ts.map +1 -1
- package/build/types/helpers/src/protocol/clientProperties.d.ts +50 -0
- package/build/types/helpers/src/protocol/clientProperties.d.ts.map +1 -1
- package/build/types/helpers/src/protocol/command.d.ts +8 -0
- package/build/types/helpers/src/protocol/command.d.ts.map +1 -1
- package/build/types/helpers/src/protocol/nodeType.d.ts +14 -0
- package/build/types/helpers/src/protocol/nodeType.d.ts.map +1 -1
- package/build/types/helpers/src/protocol/templateNodeTypes.d.ts.map +1 -1
- package/build/types/helpers/src/protocol/treeNodes.d.ts +50 -0
- package/build/types/helpers/src/protocol/treeNodes.d.ts.map +1 -1
- package/build/types/helpers/src/protocol/update.d.ts +14 -0
- package/build/types/helpers/src/protocol/update.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"sources": ["../../helpers/src/utils/obfuscate.ts", "../../helpers/src/protocol/clientProperties.ts", "../src/errors.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"const separator = '\\u{f6ee}'\n\nconst base65Chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$'\n\nconst base65CharToIndex: Record<string, number> = {}\nfor (let i = 0; i < base65Chars.length; i++) {\n base65CharToIndex[base65Chars[i]] = i\n}\n\nexport function obfuscate(...parts: Array<string>) {\n const str = parts.join(separator)\n let binaryString = ''\n\n for (let i = 0; i < str.length; i++) {\n const charCode = str.charCodeAt(i)\n binaryString += charCode.toString(2).padStart(16, '0')\n }\n\n let encodedString = ''\n const chunkSize = 6\n let paddingCount = 0\n\n for (let i = 0; i < binaryString.length; i += chunkSize) {\n let chunk = binaryString.substring(i, i + chunkSize)\n\n if (chunk.length < chunkSize) {\n paddingCount = chunkSize - chunk.length\n chunk = chunk.padEnd(chunkSize, '0')\n }\n\n const decimalValue = parseInt(chunk, 2)\n encodedString += base65Chars[decimalValue]\n }\n\n return encodedString + paddingCount.toString()\n}\n\nexport function randomString(length: number) {\n const randomValues = new Uint8Array(length)\n crypto.getRandomValues(randomValues)\n\n let randomString = ''\n for (let i = 0; i < length; i++) {\n randomString += base65Chars[randomValues[i] % base65Chars.length]\n }\n\n return randomString\n}\n\nexport function deobfuscate(str: string) {\n const paddingCount = parseInt(str.slice(-1), 10)\n str = str.slice(0, -1)\n\n let binaryString = ''\n\n for (let i = 0; i < str.length; i++) {\n const decimalValue = base65CharToIndex[str[i]]\n const binaryChunk = decimalValue.toString(2).padStart(6, '0')\n binaryString += binaryChunk\n }\n\n if (paddingCount > 0) {\n binaryString = binaryString.slice(0, -paddingCount)\n }\n\n let decodedString = ''\n const charSize = 16\n\n for (let i = 0; i < binaryString.length; i += charSize) {\n const byte = binaryString.substring(i, i + charSize)\n if (byte.length === 16) {\n const charCode = parseInt(byte, 2)\n decodedString += String.fromCharCode(charCode)\n }\n }\n\n return decodedString.split(separator)\n}\n",
|
|
6
|
-
"// AMQP connection client properties: how a service SDK announces itself to the\n// broker at connect time, and how `ui/backend` reads that announcement back.\n//\n// `connection.start-ok` carries a free-form `client-properties` table that the\n// broker keeps for the life of the connection. That makes it the one metadata\n// channel a wire-format change cannot break: it is present BEFORE the first\n// dispatch, it is broker state rather than an event (a `ui/backend` restart just\n// re-reads it), and old SDKs already send amqplib/pika defaults — so a MISSING\n// `requence_*` field means \"too old\", with nothing to negotiate.\n//\n// Read side: `GET /api/connections?columns=name,user,client_properties`. The\n// join key already exists: a service connects with its own AMQP username, and\n// that username IS `service-<internalName>`, so `user` → service and\n// `requence_service_version` → version.\n//\n// THIS FILE IS THE CONTRACT. The Python SDK mirrors it in\n// `python/requence/client_properties.py`, and `python/tests/\n// test_client_properties.py` asserts the key set against this source. Changing\n// a key is a wire change: both SDKs ship it together.\n\n// The pinned, namespaced property set. Flat strings on purpose: a nested field\n// table inside a broker event header is more decode surface than it is worth.\nexport const CLIENT_PROPERTY_KEYS = {\n libVersion: 'requence_lib_version',\n serviceVersion: 'requence_service_version',\n capabilities: 'requence_capabilities',\n // Author-chosen debugging label. Optional, non-unique, unvalidated —\n // NOTHING may key off or branch on it.\n name: 'requence_name',\n // Marks a developer's local dev-overlay connection. Only the marker travels,\n // never the devKey (which is an access-token value).\n devOverlay: 'requence_dev_overlay',\n} as const\n\n// The name is author-controlled text and the whole client-properties table\n// travels inside the connection frame, so an unbounded string is a\n// connection-level failure. Capped in both SDKs and truncated AGAIN on read.\nexport const MAX_SERVICE_NAME_LENGTH = 64\nexport const MAX_CAPABILITIES_LENGTH = 512\n\n// Wire capabilities. `wire:json1` is the JSON body encoding every shipped SDK\n// speaks and is the floor that never goes away; each additional codec joins this\n// list as its own token, and the fleet fold below is what tells a dispatch whether\n// it may use it.\nexport const WIRE_JSON_1 = 'wire:json1'\n// The portable msgpack subset in `@requence/helpers/msgpack` (`packWire`). Claimed\n// only by an SDK that can DECODE it on the dispatch wire — a service echoes the\n// codec it was addressed in, so claiming this is a promise about reading, and the\n// reply direction needs no capability of its own.\n//\n// Both SDKs claim it now; the Python counterpart is `requence/wire_codec.py`. The\n// two lists are still per-language on purpose — the fleet fold intersects across\n// replicas, so a language that lags simply pulls its fleets back to JSON instead\n// of needing a special case.\nexport const WIRE_MSGPACK_1 = 'wire:msgpack1'\nexport const SERVICE_WIRE_CAPABILITIES: ReadonlyArray<string> = [\n WIRE_JSON_1,\n WIRE_MSGPACK_1,\n]\n\n// oxlint-disable-next-line no-control-regex\nconst CONTROL_CHARACTERS = /[\\u0000-\\u001f\\u007f]/g\n\nfunction sanitizeLabel(value: string, maxLength: number) {\n return value.replace(CONTROL_CHARACTERS, '').trim().slice(0, maxLength)\n}\n\nexport interface BuildServiceClientPropertiesParams {\n /** `<language>@<version>`, e.g. `javascript@1.2.3`. */\n libVersion: string\n /** The service version this connection consumes, e.g. `v1`. */\n serviceVersion: string\n /** Optional author-chosen debugging label. */\n name?: string\n devOverlay?: boolean\n capabilities?: ReadonlyArray<string>\n}\n\n// Builds the properties a service SDK passes to its AMQP client on connect (and\n// therefore on every reconnect, since both clients reuse their connection\n// parameters). Absent optional fields are OMITTED, never sent blank.\nexport function buildServiceClientProperties({\n libVersion,\n serviceVersion,\n name,\n devOverlay = false,\n capabilities = SERVICE_WIRE_CAPABILITIES,\n}: BuildServiceClientPropertiesParams): Record<string, string> {\n const properties: Record<string, string> = {\n [CLIENT_PROPERTY_KEYS.libVersion]: libVersion,\n [CLIENT_PROPERTY_KEYS.serviceVersion]: serviceVersion,\n [CLIENT_PROPERTY_KEYS.capabilities]: capabilities\n .join(',')\n .slice(0, MAX_CAPABILITIES_LENGTH),\n }\n\n const label = name ? sanitizeLabel(name, MAX_SERVICE_NAME_LENGTH) : ''\n if (label) {\n properties[CLIENT_PROPERTY_KEYS.name] = label\n }\n\n if (devOverlay) {\n properties[CLIENT_PROPERTY_KEYS.devOverlay] = '1'\n }\n\n return properties\n}\n\n// One attached replica, as read back off its connection. Every field is\n// nullable: an SDK too old to announce yields a blank replica, which is exactly\n// the signal the fold below needs.\nexport interface ServiceReplica {\n libVersion: string | null\n serviceVersion: string | null\n capabilities: string[]\n name: string | null\n devOverlay: boolean\n}\n\nconst BLANK_REPLICA: ServiceReplica = {\n libVersion: null,\n serviceVersion: null,\n capabilities: [],\n name: null,\n devOverlay: false,\n}\n\nfunction readString(\n table: Record<string, unknown>,\n key: string,\n): string | null {\n const value = table[key]\n return typeof value === 'string' && value.length > 0 ? value : null\n}\n\n// Parses a broker `client_properties` table. Never throws and never trusts the\n// writer: the name and the capability string are re-capped here, so a\n// misbehaving (or malicious) SDK cannot push an unbounded string into the UI.\nexport function readServiceClientProperties(raw: unknown): ServiceReplica {\n if (typeof raw !== 'object' || raw === null) {\n return { ...BLANK_REPLICA }\n }\n\n const table = raw as Record<string, unknown>\n const rawName = readString(table, CLIENT_PROPERTY_KEYS.name)\n const name = rawName ? sanitizeLabel(rawName, MAX_SERVICE_NAME_LENGTH) : null\n\n return {\n libVersion: readString(table, CLIENT_PROPERTY_KEYS.libVersion),\n serviceVersion: readString(table, CLIENT_PROPERTY_KEYS.serviceVersion),\n capabilities: parseCapabilityList(\n readString(table, CLIENT_PROPERTY_KEYS.capabilities),\n ),\n name: name || null,\n devOverlay: readString(table, CLIENT_PROPERTY_KEYS.devOverlay) === '1',\n }\n}\n\n// Caps the whole string BEFORE splitting, so an unbounded writer cannot push an\n// unbounded list through. A token cut in half by that cap simply matches no\n// known capability, which can only ever UNDER-claim — the safe direction.\nfunction parseCapabilityList(raw: string | null): string[] {\n if (!raw) {\n return []\n }\n return [\n ...new Set(\n raw\n .slice(0, MAX_CAPABILITIES_LENGTH)\n .split(',')\n .map((token) => token.trim())\n .filter(Boolean),\n ),\n ]\n}\n\n// The fleet verdict. `libVersion`/`capabilities` are the MINIMUM across every\n// attached replica, because replicas are mixed during a rolling deploy and a\n// verdict that over-claims breaks the one box that cannot honour it.\nexport interface FleetVerdict {\n libVersion: string | null\n capabilities: string[]\n // True when we hold a row for every replica attached to the queue. False\n // means either nothing is attached, or some attached replica is unaccounted\n // for — in both cases the verdict above is deliberately empty.\n complete: boolean\n}\n\n// Leading `major.minor.patch` of the version half of `<language>@<version>`.\n// Null for anything else (`python@dev`, a garbage string), which sorts LOWEST:\n// an unknown build must never win a minimum fold.\nfunction parseLibVersion(libVersion: string): [number, number, number] | null {\n const match = /@(\\d+)\\.(\\d+)\\.(\\d+)/.exec(libVersion)\n if (!match) {\n return null\n }\n return [Number(match[1]), Number(match[2]), Number(match[3])]\n}\n\n// Both SDKs are released from this monorepo at the same version, so comparing\n// only the numeric half is meaningful even across languages — the question is\n// \"what is the oldest build attached\", not \"which language\".\nfunction isLower(candidate: string, current: string) {\n const parsedCandidate = parseLibVersion(candidate)\n const parsedCurrent = parseLibVersion(current)\n\n if (!parsedCandidate) {\n // Two unknowns: pick deterministically so the verdict never flaps.\n return !parsedCurrent ? candidate < current : true\n }\n if (!parsedCurrent) {\n return false\n }\n\n for (let index = 0; index < 3; index++) {\n if (parsedCandidate[index] !== parsedCurrent[index]) {\n return parsedCandidate[index] < parsedCurrent[index]\n }\n }\n return false\n}\n\n// Folds the announced replicas of ONE service version into a single verdict.\n// `attachedCount` is the queue's consumer count (from the queue count monitor):\n// it is what makes a MISSING announcement visible. Fewer rows than consumers\n// means some attached box never announced itself, and the honest answer is\n// \"unknown\" — a wrong fold is worse than no data.\nexport function foldServiceFleet(\n replicas: ReadonlyArray<ServiceReplica>,\n attachedCount: number,\n): FleetVerdict {\n const complete = replicas.length > 0 && replicas.length >= attachedCount\n if (!complete) {\n return { libVersion: null, capabilities: [], complete }\n }\n\n let libVersion: string | null = null\n for (const replica of replicas) {\n if (!replica.libVersion) {\n // One replica too old to announce ⇒ nothing can be claimed for the fleet.\n return { libVersion: null, capabilities: [], complete }\n }\n if (libVersion === null || isLower(replica.libVersion, libVersion)) {\n libVersion = replica.libVersion\n }\n }\n\n const intersection = new Set(replicas[0].capabilities)\n for (const replica of replicas.slice(1)) {\n const declared = new Set(replica.capabilities)\n for (const capability of intersection) {\n if (!declared.has(capability)) {\n intersection.delete(capability)\n }\n }\n }\n\n return {\n libVersion,\n capabilities: [...intersection].sort(),\n complete,\n }\n}\n\n// THE ONE PLACE A CODEC IS CHOSEN, for the whole system.\n//\n// `ui/backend` calls this at task creation and bakes the answer into the compiled\n// tree, so the operator never decides and holds no presence state: it encodes what\n// the tree tells it to, and every receiver reads the content type off the message.\n//\n// Two ways to answer `json`, and both are the safe direction:\n// - the verdict is incomplete (nothing attached, or an attached replica never\n// announced itself) — an unknown fleet is never given a new codec;\n// - the intersection lacks the token — at least one attached replica cannot\n// decode msgpack, and `foldServiceFleet` has already reduced the fleet to what\n// its weakest member can do.\n//\n// The cost of this being frozen at creation is that a long-running continuous task\n// keeps its codec until it is recreated, so the migration completes only as tasks\n// turn over. That is slow, not unsafe.\nexport function wireCodecForFleet(verdict: FleetVerdict): 'json' | 'msgpack' {\n return verdict.complete && verdict.capabilities.includes(WIRE_MSGPACK_1)\n ? 'msgpack'\n : 'json'\n}\n\n// ─── The dispatch direction: what a message REQUIRES of its consumer ────────\n//\n// The fleet fold above answers \"may this dispatch use a capability?\" BEFORE the\n// message is built. `requires` answers the mirror question at the other end:\n// \"did the replica that actually picked this up have it?\" — because a fold is a\n// verdict about the fleet as it was, and a rollback, a scale-up or a wrong\n// verdict can put an incapable box in front of the message anyway.\n//\n// IT IS A HEADER, NEVER A BODY FIELD. The body is precisely the thing an\n// incapable consumer may be unable to decode, so a requirement stated inside it\n// is unreadable exactly when it matters — the same reasoning that put the codec\n// in `content-type`.\n//\n// An SDK too old to know the header ignores it, as it always has: that is a\n// bare unknown header, not an error. So this is insurance for the NEXT\n// capability, not a fix for a rollback under the current one.\nexport const CAPABILITY_HEADER_KEYS = {\n // dispatch → service: the tokens this message needs. Absent when it needs\n // nothing beyond the floor every SDK speaks.\n requires: 'requires',\n // service → operator: this replica cannot satisfy `requires`. Sent by\n // REPUBLISHING to `<exchange>-retry`, never by nacking — a nack cannot modify\n // the message, these are classic queues (so there is no `x-delivery-count`\n // either), and with no counter anywhere the message would requeue forever.\n mismatch: 'capabilityMismatch',\n // operator → service, on a reroute: how many reroutes are left. Named for\n // reroutes and NOT for retries on purpose — it is its own allowance, never the\n // node's `retry` budget, which the template author set aside for real errors.\n // The operator owns the count; see `MAX_CAPABILITY_REROUTES` in its error\n // consumer.\n reroutes: 'capabilityReroutes',\n} as const\n\n// What a dispatch under `codec` needs of the replica that picks it up. `json` is\n// the floor no SDK has ever lacked, so it requires nothing and the header is\n// omitted entirely.\n//\n// For `wire:msgpack1` this buys nothing on its own — `content-type` already\n// carries that requirement and any SDK new enough to read `requires` has the\n// codec. It is stated anyway so the mechanism has exactly one producer, ready\n// for the first capability that is NOT self-describing.\nexport function requiredCapabilitiesForCodec(\n codec: 'json' | 'msgpack',\n): string[] {\n return codec === 'msgpack' ? [WIRE_MSGPACK_1] : []\n}\n\n// The header table for a dispatch, or `{}` when there is nothing to require —\n// spread into the publish, so an empty requirement sends no header at all\n// rather than a blank one.\nexport function buildRequiresHeader(\n capabilities: ReadonlyArray<string>,\n): Record<string, string> {\n if (capabilities.length === 0) {\n return {}\n }\n return {\n [CAPABILITY_HEADER_KEYS.requires]: capabilities\n .join(',')\n .slice(0, MAX_CAPABILITIES_LENGTH),\n }\n}\n\n// Reads `requires` off a message's header table. Never throws and never trusts\n// the writer, exactly like the client-properties read side: an absent, blank or\n// non-string header means \"requires nothing\", which is how every message\n// published before this existed reads.\nexport function readRequiredCapabilities(headers: unknown): string[] {\n if (typeof headers !== 'object' || headers === null) {\n return []\n }\n return parseCapabilityList(\n readString(\n headers as Record<string, unknown>,\n CAPABILITY_HEADER_KEYS.requires,\n ),\n )\n}\n\n// The tokens this consumer cannot satisfy. Anything unrecognised counts as\n// unsupported — an unknown token is a capability from a newer operator, and\n// guessing it is harmless would defeat the whole point of declaring it.\nexport function unsupportedCapabilities(\n required: ReadonlyArray<string>,\n supported: ReadonlyArray<string> = SERVICE_WIRE_CAPABILITIES,\n): string[] {\n const known = new Set(supported)\n return required.filter((token) => !known.has(token))\n}\n\n// The one diagnostic string, so both SDKs report a mismatch identically and the\n// operator can surface it verbatim. Named and deliberate — the point of the\n// whole mechanism is that the failure is this message and never whatever\n// incidental exception the undecodable payload would have produced.\nexport function unsupportedCapabilityMessage(\n unsupported: ReadonlyArray<string>,\n): string {\n return `unsupported wire capability: ${unsupported.join(', ')}`\n}\n\n// ─── The second announcement: per-run identity on the begin message ─────────\n//\n// The same three values as above, sent again — deliberately, because they answer\n// a DIFFERENT question at a different time:\n//\n// - Client properties (above) say \"can this fleet decode msgpack?\". Live broker\n// state, folded to the MINIMUM across replicas, and the only answer available\n// BEFORE dispatch — which is where it must be, since a codec break fails\n// inside the service's own decoder and no reply could warn us.\n// - These headers say \"which build ran THIS node?\". The service stamps them on\n// its `begin` publish, the operator freezes them into the `NODE_START` update,\n// and that row is written once and never re-derived. Exact, not folded: at\n// dispatch time nobody knows which replica will pick the message up, but once\n// it has, only that replica can say who it is.\n//\n// The two can never disagree — both come from the same constants in the same\n// process, through this one file — and neither is ever read to answer the\n// other's question.\n//\n// Sent on `begin` ONLY, not on every reply: one stamp per node execution.\n\n// Bare, un-namespaced names, matching the message headers that already ride\n// alongside them (`taskId`, `index`, `connectionId`, `version`, `epoch`).\n// `libVersion` keeps its historical name — it is the same value it always was.\nexport const IDENTITY_HEADER_KEYS = {\n libVersion: 'libVersion',\n name: 'serviceName',\n capabilities: 'capabilities',\n} as const\n\n// What ran one node execution. `libVersion` is DISPLAY-ONLY: it may read\n// `javascript@legacy` (see below), so nothing may parse or branch on it — the\n// pre-dispatch capability answer is the fleet fold, never this.\nexport interface ServiceIdentity {\n libVersion: string | null\n name: string | null\n capabilities: string[]\n}\n\nexport interface BuildServiceIdentityHeadersParams {\n libVersion: string\n name?: string\n capabilities?: ReadonlyArray<string>\n}\n\n// Built by the service, from its own build-time constants. Nothing is looked up,\n// so nothing can be stale or race a lookup.\nexport function buildServiceIdentityHeaders({\n libVersion,\n name,\n capabilities = SERVICE_WIRE_CAPABILITIES,\n}: BuildServiceIdentityHeadersParams): Record<string, string> {\n const headers: Record<string, string> = {\n [IDENTITY_HEADER_KEYS.libVersion]: libVersion,\n [IDENTITY_HEADER_KEYS.capabilities]: capabilities\n .join(',')\n .slice(0, MAX_CAPABILITIES_LENGTH),\n }\n\n const label = name ? sanitizeLabel(name, MAX_SERVICE_NAME_LENGTH) : ''\n if (label) {\n headers[IDENTITY_HEADER_KEYS.name] = label\n }\n\n return headers\n}\n\n// `<language>` half of `<language>@<version>`, for the legacy label below. The\n// `@` is required: without it the string makes no language claim at all, and\n// inventing one from a bare token would put a made-up word in the UI.\nfunction libVersionLanguage(libVersion: string): string | null {\n const match = /^([a-z]+)@/i.exec(libVersion.trim())\n return match ? match[1].toLowerCase() : null\n}\n\n// Parses the identity a service stamped on its begin message. Returns null when\n// the message carried none at all — a reference/or node's NODE_START, or the\n// operator's own loopback.\n//\n// THE LEGACY CASE: an SDK from before this existed still sends `libVersion`, but\n// never sent a name or capabilities. Since every current build declares at least\n// `wire:json1`, a MISSING capabilities header is a reliable \"predates this\" —\n// and the version header still names the language, so it reports as\n// `javascript@legacy` / `python@legacy`. That says \"reported before we asked for\n// more\", which is a different thing from \"unknown\".\nexport function readServiceIdentity(raw: unknown): ServiceIdentity | null {\n if (typeof raw !== 'object' || raw === null) {\n return null\n }\n\n const table = raw as Record<string, unknown>\n const libVersion = readString(table, IDENTITY_HEADER_KEYS.libVersion)\n const rawCapabilities = readString(table, IDENTITY_HEADER_KEYS.capabilities)\n\n if (!rawCapabilities) {\n if (!libVersion) {\n return null\n }\n const language = libVersionLanguage(libVersion)\n return {\n libVersion: language ? `${language}@legacy` : 'legacy',\n name: null,\n capabilities: [],\n }\n }\n\n // Never trust the writer, exactly as on the client-properties read side.\n const rawName = readString(table, IDENTITY_HEADER_KEYS.name)\n const name = rawName ? sanitizeLabel(rawName, MAX_SERVICE_NAME_LENGTH) : ''\n\n return {\n libVersion,\n name: name || null,\n capabilities: parseCapabilityList(rawCapabilities),\n }\n}\n",
|
|
6
|
+
"// AMQP connection client properties: how a service SDK announces itself to the\n// broker at connect time, and how `ui/backend` reads that announcement back.\n//\n// `connection.start-ok` carries a free-form `client-properties` table that the\n// broker keeps for the life of the connection. That makes it the one metadata\n// channel a wire-format change cannot break: it is present BEFORE the first\n// dispatch, it is broker state rather than an event (a `ui/backend` restart just\n// re-reads it), and old SDKs already send amqplib/pika defaults — so a MISSING\n// `requence_*` field means \"too old\", with nothing to negotiate.\n//\n// Read side: `GET /api/connections?columns=name,user,client_properties`. The\n// join key already exists: a service connects with its own AMQP username, and\n// that username IS `service-<internalName>`, so `user` → service and\n// `requence_service_version` → version.\n//\n// THIS FILE IS THE CONTRACT. The Python SDK mirrors it in\n// `python/requence/client_properties.py`, and `python/tests/\n// test_client_properties.py` asserts the key set against this source. Changing\n// a key is a wire change: both SDKs ship it together.\n\n// The pinned, namespaced property set. Flat strings on purpose: a nested field\n// table inside a broker event header is more decode surface than it is worth.\nexport const CLIENT_PROPERTY_KEYS = {\n libVersion: 'requence_lib_version',\n serviceVersion: 'requence_service_version',\n capabilities: 'requence_capabilities',\n // Author-chosen debugging label. Optional, non-unique, unvalidated —\n // NOTHING may key off or branch on it.\n name: 'requence_name',\n // Marks a developer's local dev-overlay connection. Only the marker travels,\n // never the devKey (which is an access-token value).\n devOverlay: 'requence_dev_overlay',\n} as const\n\n// The name is author-controlled text and the whole client-properties table\n// travels inside the connection frame, so an unbounded string is a\n// connection-level failure. Capped in both SDKs and truncated AGAIN on read.\nexport const MAX_SERVICE_NAME_LENGTH = 64\nexport const MAX_CAPABILITIES_LENGTH = 512\n\n// Wire capabilities. `wire:json1` is the JSON body encoding every shipped SDK\n// speaks and is the floor that never goes away; each additional codec joins this\n// list as its own token, and the fleet fold below is what tells a dispatch whether\n// it may use it.\nexport const WIRE_JSON_1 = 'wire:json1'\n// The portable msgpack subset in `@requence/helpers/msgpack` (`packWire`). Claimed\n// only by an SDK that can DECODE it on the dispatch wire — a service echoes the\n// codec it was addressed in, so claiming this is a promise about reading, and the\n// reply direction needs no capability of its own.\n//\n// Both SDKs claim it now; the Python counterpart is `requence/wire_codec.py`. The\n// two lists are still per-language on purpose — the fleet fold intersects across\n// replicas, so a language that lags simply pulls its fleets back to JSON instead\n// of needing a special case.\nexport const WIRE_MSGPACK_1 = 'wire:msgpack1'\nexport const SERVICE_WIRE_CAPABILITIES: ReadonlyArray<string> = [\n WIRE_JSON_1,\n WIRE_MSGPACK_1,\n]\n\n// oxlint-disable-next-line no-control-regex\nconst CONTROL_CHARACTERS = /[\\u0000-\\u001f\\u007f]/g\n\nfunction sanitizeLabel(value: string, maxLength: number) {\n return value.replace(CONTROL_CHARACTERS, '').trim().slice(0, maxLength)\n}\n\nexport interface BuildServiceClientPropertiesParams {\n /** `<language>@<version>`, e.g. `javascript@1.2.3`. */\n libVersion: string\n /** The service version this connection consumes, e.g. `v1`. */\n serviceVersion: string\n /** Optional author-chosen debugging label. */\n name?: string\n devOverlay?: boolean\n capabilities?: ReadonlyArray<string>\n}\n\n// Builds the properties a service SDK passes to its AMQP client on connect (and\n// therefore on every reconnect, since both clients reuse their connection\n// parameters). Absent optional fields are OMITTED, never sent blank.\nexport function buildServiceClientProperties({\n libVersion,\n serviceVersion,\n name,\n devOverlay = false,\n capabilities = SERVICE_WIRE_CAPABILITIES,\n}: BuildServiceClientPropertiesParams): Record<string, string> {\n const properties: Record<string, string> = {\n [CLIENT_PROPERTY_KEYS.libVersion]: libVersion,\n [CLIENT_PROPERTY_KEYS.serviceVersion]: serviceVersion,\n [CLIENT_PROPERTY_KEYS.capabilities]: capabilities\n .join(',')\n .slice(0, MAX_CAPABILITIES_LENGTH),\n }\n\n const label = name ? sanitizeLabel(name, MAX_SERVICE_NAME_LENGTH) : ''\n if (label) {\n properties[CLIENT_PROPERTY_KEYS.name] = label\n }\n\n if (devOverlay) {\n properties[CLIENT_PROPERTY_KEYS.devOverlay] = '1'\n }\n\n return properties\n}\n\n// One attached replica, as read back off its connection. Every field is\n// nullable: an SDK too old to announce yields a blank replica, which is exactly\n// the signal the fold below needs.\nexport interface ServiceReplica {\n libVersion: string | null\n serviceVersion: string | null\n capabilities: string[]\n name: string | null\n devOverlay: boolean\n}\n\nconst BLANK_REPLICA: ServiceReplica = {\n libVersion: null,\n serviceVersion: null,\n capabilities: [],\n name: null,\n devOverlay: false,\n}\n\nfunction readString(\n table: Record<string, unknown>,\n key: string,\n): string | null {\n const value = table[key]\n return typeof value === 'string' && value.length > 0 ? value : null\n}\n\n// Parses a broker `client_properties` table. Never throws and never trusts the\n// writer: the name and the capability string are re-capped here, so a\n// misbehaving (or malicious) SDK cannot push an unbounded string into the UI.\nexport function readServiceClientProperties(raw: unknown): ServiceReplica {\n if (typeof raw !== 'object' || raw === null) {\n return { ...BLANK_REPLICA }\n }\n\n const table = raw as Record<string, unknown>\n const rawName = readString(table, CLIENT_PROPERTY_KEYS.name)\n const name = rawName ? sanitizeLabel(rawName, MAX_SERVICE_NAME_LENGTH) : null\n\n return {\n libVersion: readString(table, CLIENT_PROPERTY_KEYS.libVersion),\n serviceVersion: readString(table, CLIENT_PROPERTY_KEYS.serviceVersion),\n capabilities: parseCapabilityList(\n readString(table, CLIENT_PROPERTY_KEYS.capabilities),\n ),\n name: name || null,\n devOverlay: readString(table, CLIENT_PROPERTY_KEYS.devOverlay) === '1',\n }\n}\n\n// Caps the whole string BEFORE splitting, so an unbounded writer cannot push an\n// unbounded list through. A token cut in half by that cap simply matches no\n// known capability, which can only ever UNDER-claim — the safe direction.\nfunction parseCapabilityList(raw: string | null): string[] {\n if (!raw) {\n return []\n }\n return [\n ...new Set(\n raw\n .slice(0, MAX_CAPABILITIES_LENGTH)\n .split(',')\n .map((token) => token.trim())\n .filter(Boolean),\n ),\n ]\n}\n\n// The fleet verdict. `libVersion`/`capabilities` are the MINIMUM across every\n// attached replica, because replicas are mixed during a rolling deploy and a\n// verdict that over-claims breaks the one box that cannot honour it.\nexport interface FleetVerdict {\n libVersion: string | null\n capabilities: string[]\n // True when we hold a row for every replica attached to the queue. False\n // means either nothing is attached, or some attached replica is unaccounted\n // for — in both cases the verdict above is deliberately empty.\n complete: boolean\n}\n\n// Leading `major.minor.patch` of the version half of `<language>@<version>`.\n// Null for anything else (`python@dev`, a garbage string), which sorts LOWEST:\n// an unknown build must never win a minimum fold.\nfunction parseLibVersion(libVersion: string): [number, number, number] | null {\n const match = /@(\\d+)\\.(\\d+)\\.(\\d+)/.exec(libVersion)\n if (!match) {\n return null\n }\n return [Number(match[1]), Number(match[2]), Number(match[3])]\n}\n\n// Both SDKs are released from this monorepo at the same version, so comparing\n// only the numeric half is meaningful even across languages — the question is\n// \"what is the oldest build attached\", not \"which language\".\nfunction isLower(candidate: string, current: string) {\n const parsedCandidate = parseLibVersion(candidate)\n const parsedCurrent = parseLibVersion(current)\n\n if (!parsedCandidate) {\n // Two unknowns: pick deterministically so the verdict never flaps.\n return !parsedCurrent ? candidate < current : true\n }\n if (!parsedCurrent) {\n return false\n }\n\n for (let index = 0; index < 3; index++) {\n if (parsedCandidate[index] !== parsedCurrent[index]) {\n return parsedCandidate[index] < parsedCurrent[index]\n }\n }\n return false\n}\n\n// Folds the announced replicas of ONE service version into a single verdict.\n// `attachedCount` is the queue's consumer count (from the queue count monitor):\n// it is what makes a MISSING announcement visible. Fewer rows than consumers\n// means some attached box never announced itself, and the honest answer is\n// \"unknown\" — a wrong fold is worse than no data.\nexport function foldServiceFleet(\n replicas: ReadonlyArray<ServiceReplica>,\n attachedCount: number,\n): FleetVerdict {\n const complete = replicas.length > 0 && replicas.length >= attachedCount\n if (!complete) {\n return { libVersion: null, capabilities: [], complete }\n }\n\n let libVersion: string | null = null\n for (const replica of replicas) {\n if (!replica.libVersion) {\n // One replica too old to announce ⇒ nothing can be claimed for the fleet.\n return { libVersion: null, capabilities: [], complete }\n }\n if (libVersion === null || isLower(replica.libVersion, libVersion)) {\n libVersion = replica.libVersion\n }\n }\n\n const intersection = new Set(replicas[0].capabilities)\n for (const replica of replicas.slice(1)) {\n const declared = new Set(replica.capabilities)\n for (const capability of intersection) {\n if (!declared.has(capability)) {\n intersection.delete(capability)\n }\n }\n }\n\n return {\n libVersion,\n capabilities: [...intersection].sort(),\n complete,\n }\n}\n\n// THE ONE PLACE A CODEC IS CHOSEN, for the whole system.\n//\n// `ui/backend` calls this at task creation and bakes the answer into the compiled\n// tree, so the operator never decides and holds no presence state: it encodes what\n// the tree tells it to, and every receiver reads the content type off the message.\n//\n// Two ways to answer `json`, and both are the safe direction:\n// - the verdict is incomplete (nothing attached, or an attached replica never\n// announced itself) — an unknown fleet is never given a new codec;\n// - the intersection lacks the token — at least one attached replica cannot\n// decode msgpack, and `foldServiceFleet` has already reduced the fleet to what\n// its weakest member can do.\n//\n// The cost of this being frozen at creation is that a long-running continuous task\n// keeps its codec until it is recreated, so the migration completes only as tasks\n// turn over. That is slow, not unsafe.\nexport function wireCodecForFleet(verdict: FleetVerdict): 'json' | 'msgpack' {\n return verdict.complete && verdict.capabilities.includes(WIRE_MSGPACK_1)\n ? 'msgpack'\n : 'json'\n}\n\n// ─── The dispatch direction: what a message REQUIRES of its consumer ────────\n//\n// The fleet fold above answers \"may this dispatch use a capability?\" BEFORE the\n// message is built. `requires` answers the mirror question at the other end:\n// \"did the replica that actually picked this up have it?\" — because a fold is a\n// verdict about the fleet as it was, and a rollback, a scale-up or a wrong\n// verdict can put an incapable box in front of the message anyway.\n//\n// IT IS A HEADER, NEVER A BODY FIELD. The body is precisely the thing an\n// incapable consumer may be unable to decode, so a requirement stated inside it\n// is unreadable exactly when it matters — the same reasoning that put the codec\n// in `content-type`.\n//\n// An SDK too old to know the header ignores it, as it always has: that is a\n// bare unknown header, not an error. So this is insurance for the NEXT\n// capability, not a fix for a rollback under the current one.\nexport const CAPABILITY_HEADER_KEYS = {\n // dispatch → service: the tokens this message needs. Absent when it needs\n // nothing beyond the floor every SDK speaks.\n requires: 'requires',\n // service → operator: this replica cannot satisfy `requires`. Sent by\n // REPUBLISHING to `<exchange>-retry`, never by nacking — a nack cannot modify\n // the message, these are classic queues (so there is no `x-delivery-count`\n // either), and with no counter anywhere the message would requeue forever.\n mismatch: 'capabilityMismatch',\n // operator → service, on a reroute: how many reroutes are left. Named for\n // reroutes and NOT for retries on purpose — it is its own allowance, never the\n // node's `retry` budget, which the template author set aside for real errors.\n // The operator owns the count; see `MAX_CAPABILITY_REROUTES` in its error\n // consumer.\n reroutes: 'capabilityReroutes',\n} as const\n\n// What a dispatch under `codec` needs of the replica that picks it up. `json` is\n// the floor no SDK has ever lacked, so it requires nothing and the header is\n// omitted entirely.\n//\n// For `wire:msgpack1` this buys nothing on its own — `content-type` already\n// carries that requirement and any SDK new enough to read `requires` has the\n// codec. It is stated anyway so the mechanism has exactly one producer, ready\n// for the first capability that is NOT self-describing.\nexport function requiredCapabilitiesForCodec(\n codec: 'json' | 'msgpack',\n): string[] {\n return codec === 'msgpack' ? [WIRE_MSGPACK_1] : []\n}\n\n// The header table for a dispatch, or `{}` when there is nothing to require —\n// spread into the publish, so an empty requirement sends no header at all\n// rather than a blank one.\nexport function buildRequiresHeader(\n capabilities: ReadonlyArray<string>,\n): Record<string, string> {\n if (capabilities.length === 0) {\n return {}\n }\n return {\n [CAPABILITY_HEADER_KEYS.requires]: capabilities\n .join(',')\n .slice(0, MAX_CAPABILITIES_LENGTH),\n }\n}\n\n// Reads `requires` off a message's header table. Never throws and never trusts\n// the writer, exactly like the client-properties read side: an absent, blank or\n// non-string header means \"requires nothing\", which is how every message\n// published before this existed reads.\nexport function readRequiredCapabilities(headers: unknown): string[] {\n if (typeof headers !== 'object' || headers === null) {\n return []\n }\n return parseCapabilityList(\n readString(\n headers as Record<string, unknown>,\n CAPABILITY_HEADER_KEYS.requires,\n ),\n )\n}\n\n// The tokens this consumer cannot satisfy. Anything unrecognised counts as\n// unsupported — an unknown token is a capability from a newer operator, and\n// guessing it is harmless would defeat the whole point of declaring it.\nexport function unsupportedCapabilities(\n required: ReadonlyArray<string>,\n supported: ReadonlyArray<string> = SERVICE_WIRE_CAPABILITIES,\n): string[] {\n const known = new Set(supported)\n return required.filter((token) => !known.has(token))\n}\n\n// The one diagnostic string, so both SDKs report a mismatch identically and the\n// operator can surface it verbatim. Named and deliberate — the point of the\n// whole mechanism is that the failure is this message and never whatever\n// incidental exception the undecodable payload would have produced.\nexport function unsupportedCapabilityMessage(\n unsupported: ReadonlyArray<string>,\n): string {\n return `unsupported wire capability: ${unsupported.join(', ')}`\n}\n\n// ─── The second announcement: per-run identity on the begin message ─────────\n//\n// The same three values as above, sent again — deliberately, because they answer\n// a DIFFERENT question at a different time:\n//\n// - Client properties (above) say \"can this fleet decode msgpack?\". Live broker\n// state, folded to the MINIMUM across replicas, and the only answer available\n// BEFORE dispatch — which is where it must be, since a codec break fails\n// inside the service's own decoder and no reply could warn us.\n// - These headers say \"which build ran THIS node?\". The service stamps them on\n// its `begin` publish, the operator freezes them into the `NODE_START` update,\n// and that row is written once and never re-derived. Exact, not folded: at\n// dispatch time nobody knows which replica will pick the message up, but once\n// it has, only that replica can say who it is.\n//\n// The two can never disagree — both come from the same constants in the same\n// process, through this one file — and neither is ever read to answer the\n// other's question.\n//\n// Sent on `begin` ONLY, not on every reply: one stamp per node execution.\n\n// Bare, un-namespaced names, matching the message headers that already ride\n// alongside them (`taskId`, `index`, `connectionId`, `version`, `epoch`).\n// `libVersion` keeps its historical name — it is the same value it always was.\nexport const IDENTITY_HEADER_KEYS = {\n libVersion: 'libVersion',\n name: 'serviceName',\n capabilities: 'capabilities',\n} as const\n\n// What ran one node execution. `libVersion` is DISPLAY-ONLY: it may read\n// `javascript@legacy` (see below), so nothing may parse or branch on it — the\n// pre-dispatch capability answer is the fleet fold, never this.\nexport interface ServiceIdentity {\n libVersion: string | null\n name: string | null\n capabilities: string[]\n}\n\nexport interface BuildServiceIdentityHeadersParams {\n libVersion: string\n name?: string\n capabilities?: ReadonlyArray<string>\n}\n\n// Built by the service, from its own build-time constants. Nothing is looked up,\n// so nothing can be stale or race a lookup.\nexport function buildServiceIdentityHeaders({\n libVersion,\n name,\n capabilities = SERVICE_WIRE_CAPABILITIES,\n}: BuildServiceIdentityHeadersParams): Record<string, string> {\n const headers: Record<string, string> = {\n [IDENTITY_HEADER_KEYS.libVersion]: libVersion,\n [IDENTITY_HEADER_KEYS.capabilities]: capabilities\n .join(',')\n .slice(0, MAX_CAPABILITIES_LENGTH),\n }\n\n const label = name ? sanitizeLabel(name, MAX_SERVICE_NAME_LENGTH) : ''\n if (label) {\n headers[IDENTITY_HEADER_KEYS.name] = label\n }\n\n return headers\n}\n\n// `<language>` half of `<language>@<version>`, for the legacy label below. The\n// `@` is required: without it the string makes no language claim at all, and\n// inventing one from a bare token would put a made-up word in the UI.\nfunction libVersionLanguage(libVersion: string): string | null {\n const match = /^([a-z]+)@/i.exec(libVersion.trim())\n return match ? match[1].toLowerCase() : null\n}\n\n// Parses the identity a service stamped on its begin message. Returns null when\n// the message carried none at all — a reference/or node's NODE_START, or the\n// operator's own loopback.\n//\n// THE LEGACY CASE: an SDK from before this existed still sends `libVersion`, but\n// never sent a name or capabilities. Since every current build declares at least\n// `wire:json1`, a MISSING capabilities header is a reliable \"predates this\" —\n// and the version header still names the language, so it reports as\n// `javascript@legacy` / `python@legacy`. That says \"reported before we asked for\n// more\", which is a different thing from \"unknown\".\nexport function readServiceIdentity(raw: unknown): ServiceIdentity | null {\n if (typeof raw !== 'object' || raw === null) {\n return null\n }\n\n const table = raw as Record<string, unknown>\n const libVersion = readString(table, IDENTITY_HEADER_KEYS.libVersion)\n const rawCapabilities = readString(table, IDENTITY_HEADER_KEYS.capabilities)\n\n if (!rawCapabilities) {\n if (!libVersion) {\n return null\n }\n const language = libVersionLanguage(libVersion)\n return {\n libVersion: language ? `${language}@legacy` : 'legacy',\n name: null,\n capabilities: [],\n }\n }\n\n // Never trust the writer, exactly as on the client-properties read side.\n const rawName = readString(table, IDENTITY_HEADER_KEYS.name)\n const name = rawName ? sanitizeLabel(rawName, MAX_SERVICE_NAME_LENGTH) : ''\n\n return {\n libVersion,\n name: name || null,\n capabilities: parseCapabilityList(rawCapabilities),\n }\n}\n\n/**\n * WHY a service node got the codec it got.\n *\n * `wireCodecForFleet` answers `json` for several distinct situations that matter\n * very differently in an incident: a service that is simply offline looks nothing\n * like a management API that is down, which in turn looks nothing like a genuine\n * mixed fleet. Recording only the codec makes \"why is this json?\" unanswerable\n * without shell access to the box, so the reason travels beside it.\n *\n * A compact token rather than prose: it is baked into every service node of every\n * task, and the wording belongs to the UI, which can then change without touching\n * the tree or the operator.\n */\n// A literal tuple, so the protocol schemas can build a `z.enum` straight from it\n// and the vocabulary exists in exactly one place.\nexport const WIRE_CODEC_REASON_VALUES = [\n /** msgpack: every attached replica claimed the capability. */\n 'fleet-capable',\n /** The broker's management API is unreachable, so no fleet can be judged. */\n 'presence-unavailable',\n /** Nothing is attached to this service version's queue at all. */\n 'no-replicas',\n /**\n * Something IS consuming the queue that never announced itself. An SDK too old\n * to announce is also too old to decode, so this folds to json — and it is the\n * one reason that looks like a bug but is the design working.\n */\n 'replicas-unaccounted',\n /** A complete fleet, but at least one replica cannot decode msgpack. */\n 'missing-capability',\n] as const\n\nexport type WireCodecReason = (typeof WIRE_CODEC_REASON_VALUES)[number]\n\n/** Named accessors, so call sites read as intent rather than as string literals. */\nexport const WIRE_CODEC_REASONS = {\n fleetCapable: 'fleet-capable',\n presenceUnavailable: 'presence-unavailable',\n noReplicas: 'no-replicas',\n replicasUnaccounted: 'replicas-unaccounted',\n missingCapability: 'missing-capability',\n} as const satisfies Record<string, WireCodecReason>\n\n/**\n * Explains a `json` verdict from the facts the fleet monitor holds.\n *\n * Split from `wireCodecForFleet` rather than folded into it because the codec\n * decision needs only the verdict, while the explanation needs the counts behind\n * it — and the codec must stay trivially checkable.\n */\nexport function wireCodecReason({\n codec,\n presenceAvailable,\n replicaCount,\n consumerCount,\n}: {\n codec: 'json' | 'msgpack'\n presenceAvailable: boolean\n replicaCount: number\n consumerCount: number\n}): WireCodecReason {\n if (codec === 'msgpack') {\n return WIRE_CODEC_REASONS.fleetCapable\n }\n if (!presenceAvailable) {\n return WIRE_CODEC_REASONS.presenceUnavailable\n }\n // Checked before `no-replicas`, so \"nothing announced but something IS\n // consuming\" reports the consumer rather than claiming the service is offline.\n if (replicaCount < consumerCount) {\n return WIRE_CODEC_REASONS.replicasUnaccounted\n }\n if (replicaCount === 0) {\n return WIRE_CODEC_REASONS.noReplicas\n }\n return WIRE_CODEC_REASONS.missingCapability\n}\n",
|
|
7
7
|
"import { unsupportedCapabilityMessage } from '@requence/helpers/protocol'\n\nexport class RequenceConnectionError extends Error {}\n\n// Gateway statuses an ingress/load balancer emits when no healthy backend is\n// available (maintenance window, deploy, cutover). The backend endpoints never\n// return these themselves, so treating them as \"unreachable\" is unambiguous.\nconst UNREACHABLE_STATUS = new Set([502, 503, 504])\n\n/**\n * Signals that the requence system could not be reached — e.g. during a\n * maintenance window or deploy, when the backend is unreachable (connection\n * refused / timeout / DNS failure) or an ingress returns a gateway error\n * (502/503/504). Callers should treat this as transient and retry later.\n */\nexport class RequenceUnreachableError extends Error {\n constructor(\n public readonly status?: number,\n options?: { cause?: unknown },\n ) {\n super(\n 'The requence system is currently not reachable. Please retry later.',\n options,\n )\n this.name = 'RequenceUnreachableError'\n }\n}\n\nexport function isUnreachableStatus(status: number): boolean {\n return UNREACHABLE_STATUS.has(status)\n}\n\n/**\n * Throws a {@link RequenceUnreachableError} when the response carries a gateway\n * status indicating the system is unreachable. Call right after a fetch, before\n * inspecting `response.ok`.\n */\nexport function assertReachable(response: Response): void {\n if (isUnreachableStatus(response.status)) {\n throw new RequenceUnreachableError(response.status)\n }\n}\n\n/**\n * Wraps `fetch` so a transport-level failure (connection refused, DNS failure,\n * timeout) surfaces as a {@link RequenceUnreachableError} instead of a raw\n * TypeError, and gateway statuses (502/503/504) do the same. The returned\n * response is guaranteed not to be a gateway-error response.\n */\nexport async function reachableFetch(\n input: Parameters<typeof fetch>[0],\n init?: Parameters<typeof fetch>[1],\n): Promise<Response> {\n let response: Response\n try {\n response = await fetch(input, init)\n } catch (error) {\n throw new RequenceUnreachableError(undefined, { cause: error })\n }\n assertReachable(response)\n return response\n}\n\n/**\n * The dispatch declared a capability (`requires` header) this build cannot\n * satisfy, so it was refused before its body was ever decoded.\n *\n * A NAMED error on purpose: the point of the `requires` header is that a\n * mismatch reports the missing capability, instead of whatever incidental\n * exception the undecodable payload would otherwise have produced — a bare\n * `SyntaxError` from `JSON.parse` says nothing about why this box was the wrong\n * one. The message travels to the operator, which surfaces it on the node.\n */\nexport class UnsupportedCapabilityError extends Error {\n readonly capabilities: string[]\n\n constructor(unsupported: ReadonlyArray<string>) {\n super(unsupportedCapabilityMessage(unsupported))\n this.name = 'UnsupportedCapabilityError'\n this.capabilities = [...unsupported]\n }\n}\n\nexport class PayloadTooLargeError extends Error {\n readonly size: number\n readonly maxSize: number\n\n constructor(size: number, maxSize: number) {\n super(\n `Message payload is ${size} bytes, which exceeds the maximum message ` +\n `size of ${maxSize} bytes. Reduce the returned value, or offload large ` +\n `data (files/streams) so it travels by reference instead of inline.`,\n )\n this.name = 'PayloadTooLargeError'\n this.size = size\n this.maxSize = maxSize\n }\n}\n"
|
|
8
8
|
],
|
|
9
9
|
"mappings": "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",
|
package/build/index.js
CHANGED
|
@@ -790,6 +790,25 @@ function jsonByteLength(value) {
|
|
|
790
790
|
const json = JSON.stringify(value);
|
|
791
791
|
return json === undefined ? 0 : Buffer3.byteLength(json);
|
|
792
792
|
}
|
|
793
|
+
|
|
794
|
+
class UnserializableValue extends Error {
|
|
795
|
+
}
|
|
796
|
+
function toOffloadJson(value) {
|
|
797
|
+
try {
|
|
798
|
+
return JSON.stringify(value, function(key, encoded) {
|
|
799
|
+
const raw = this[key];
|
|
800
|
+
if (ArrayBuffer.isView(raw) || raw instanceof ArrayBuffer) {
|
|
801
|
+
throw new UnserializableValue;
|
|
802
|
+
}
|
|
803
|
+
return encoded;
|
|
804
|
+
});
|
|
805
|
+
} catch (error) {
|
|
806
|
+
if (error instanceof UnserializableValue) {
|
|
807
|
+
return;
|
|
808
|
+
}
|
|
809
|
+
throw error;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
793
812
|
function createMessageHandler() {
|
|
794
813
|
return {
|
|
795
814
|
async wrapOutbound(body, ctx) {
|
|
@@ -807,7 +826,7 @@ function createMessageHandler() {
|
|
|
807
826
|
return body;
|
|
808
827
|
}
|
|
809
828
|
if (!isRecord2(body)) {
|
|
810
|
-
const json =
|
|
829
|
+
const json = toOffloadJson(body);
|
|
811
830
|
if (json === undefined) {
|
|
812
831
|
return body;
|
|
813
832
|
}
|
|
@@ -815,15 +834,18 @@ function createMessageHandler() {
|
|
|
815
834
|
}
|
|
816
835
|
const entries = Object.entries(body).map(([key, value]) => ({
|
|
817
836
|
key,
|
|
818
|
-
valueJson:
|
|
837
|
+
valueJson: toOffloadJson(value),
|
|
819
838
|
size: measure(value)
|
|
820
839
|
})).sort((a, b) => b.size - a.size);
|
|
821
840
|
const wrapped = { ...body };
|
|
822
841
|
let total = measure(body);
|
|
823
842
|
for (const entry of entries) {
|
|
824
|
-
if (total <= maxBytes || entry.
|
|
843
|
+
if (total <= maxBytes || entry.size <= 256) {
|
|
825
844
|
break;
|
|
826
845
|
}
|
|
846
|
+
if (entry.valueJson === undefined) {
|
|
847
|
+
continue;
|
|
848
|
+
}
|
|
827
849
|
const ref = await offload(ctx, uploadUrl, entry.valueJson);
|
|
828
850
|
wrapped[entry.key] = ref;
|
|
829
851
|
total += measure(ref) - entry.size;
|
|
@@ -1371,7 +1393,7 @@ function createConnection({
|
|
|
1371
1393
|
clientProperties: {
|
|
1372
1394
|
...connectionOptions?.clientProperties,
|
|
1373
1395
|
...buildServiceClientProperties({
|
|
1374
|
-
libVersion: "javascript@0.8.2-edge.
|
|
1396
|
+
libVersion: "javascript@0.8.2-edge.1151",
|
|
1375
1397
|
serviceVersion: version,
|
|
1376
1398
|
name,
|
|
1377
1399
|
devOverlay: Boolean(devOverlay)
|
|
@@ -1679,7 +1701,7 @@ function createConnection({
|
|
|
1679
1701
|
begin: true,
|
|
1680
1702
|
epoch,
|
|
1681
1703
|
...buildServiceIdentityHeaders({
|
|
1682
|
-
libVersion: "javascript@0.8.2-edge.
|
|
1704
|
+
libVersion: "javascript@0.8.2-edge.1151",
|
|
1683
1705
|
name
|
|
1684
1706
|
})
|
|
1685
1707
|
});
|
|
@@ -2189,5 +2211,5 @@ export {
|
|
|
2189
2211
|
PayloadTooLargeError
|
|
2190
2212
|
};
|
|
2191
2213
|
|
|
2192
|
-
//# debugId=
|
|
2214
|
+
//# debugId=886A241C6AA974E564756E2164756E21
|
|
2193
2215
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"import type { FileObject } from '@requence/helpers'\nimport { isFileObject, toFileObject } from '@requence/helpers'\nimport type { TransformContext, ValueHandler } from '@requence/transformer'\n\nimport type { FileEgressContext } from './context.ts'\nimport { assertOk } from './transport.ts'\nimport { RequenceFile } from '../RequenceFile.ts'\n\nasync function upload(\n ctx: TransformContext,\n uploadUrl: string,\n body: BodyInit | null,\n contentType?: string | null,\n maxFileSize?: number,\n): Promise<FileObject> {\n const uploadResponse = await ctx.fetch(uploadUrl, {\n method: 'POST',\n signal: ctx.signal,\n headers: {\n ...(contentType ? { 'Content-Type': contentType } : {}),\n // Per-task cap transmitted via task options; the files service\n // enforces it (absent ⇒ its hardcoded fallback cap).\n ...(maxFileSize !== undefined\n ? { 'file-size': String(maxFileSize) }\n : {}),\n },\n body,\n })\n\n await assertOk(uploadResponse, uploadUrl, 'upload')\n\n const data = await uploadResponse.json()\n // Explicit field checks rather than `isFileObject`: the FileObject schema\n // requires a positive size, but a legitimate 0-byte file is valid here.\n if (\n !data ||\n typeof data !== 'object' ||\n typeof (data as { url?: unknown }).url !== 'string' ||\n !(data as { url: string }).url ||\n typeof (data as { mime?: unknown }).mime !== 'string' ||\n typeof (data as { size?: unknown }).size !== 'number'\n ) {\n throw new Error(`malformed upload response (${uploadUrl})`)\n }\n\n return toFileObject(data as { size: number; mime: string; url: string })\n}\n\n/**\n * Value handler owning `RequenceFile` — and, through it, raw `Blob`s (a Blob\n * adapts through RequenceFile; no separate Blob branch exists anywhere else).\n *\n * Egress uploads the bytes via the injected transport and returns the\n * `FileObject` reference (idempotent for an already-remote file). Ingress\n * reconstructs the lazy remote instance.\n */\nexport function createRequenceFileHandler(): ValueHandler<\n RequenceFile | Blob,\n FileObject | null,\n FileEgressContext\n> {\n return {\n tag: 'RequenceFile',\n\n canHandle: (value) => RequenceFile.canHandle(value),\n\n async serialize(value, ctx) {\n // Idempotent: an already-remote file keeps its existing reference.\n if (value instanceof RequenceFile && value.fileObject) {\n return value.fileObject\n }\n\n if (!ctx.uploadUrl) {\n ctx.onOffloadSkip?.()\n return null\n }\n\n try {\n if (value instanceof RequenceFile) {\n return await upload(\n ctx,\n ctx.uploadUrl,\n await value.blob(),\n value.mimeType,\n ctx.maxFileSize,\n )\n }\n return await upload(\n ctx,\n ctx.uploadUrl,\n value,\n value.type,\n ctx.maxFileSize,\n )\n } catch (error) {\n if (!(error instanceof Error)) {\n throw error\n }\n // Fail-hard by default: only swallow (to null) when a caller opts in\n // with `onOffloadFail`. Otherwise propagate so the node/task fails loudly.\n if (ctx.onOffloadFail) {\n ctx.onOffloadFail(error)\n return null\n }\n throw error\n }\n },\n\n isReference: (value): value is FileObject => isFileObject(value),\n\n deserialize(ref, ctx) {\n return RequenceFile.fromFileObject(ref as FileObject, ctx.signal)\n },\n }\n}\n",
|
|
22
22
|
"import { AsyncLocalStorage } from 'node:async_hooks'\n\n/**\n * Ambient collection scope for background stream-body uploads.\n *\n * A `RequenceStream` serializes in two beats: the reference (`StreamObject`) is\n * known right after registration, but the body keeps uploading in the\n * background — that is what lets a consumer join the stream *while* the\n * producer is still pushing. The caller, however, must not treat the transform\n * as durably complete (ack the task, mark it done) until every background body\n * upload has settled.\n *\n * `withRequenceStreams` is that collection point: the stream handler registers\n * its background upload into the ambient store, and the caller receives a\n * single `done` promise to feed its completion gate.\n */\nconst pendingUploads = new AsyncLocalStorage<Array<Promise<void>>>()\n\n/**\n * Run `fn` (typically a `transformOutbound` call) collecting every background\n * stream-body upload started within it. Returns the function's result together\n * with a `done` promise that resolves when all collected uploads settle and\n * rejects on the first failure. `value` is available immediately — publish it\n * while the bodies still stream; await `done` before acking.\n */\nexport async function withRequenceStreams<T>(\n fn: () => Promise<T> | T,\n): Promise<{ value: T; done: Promise<void> }> {\n const uploads: Array<Promise<void>> = []\n const value = await pendingUploads.run(uploads, fn)\n return { value, done: Promise.all(uploads).then(() => undefined) }\n}\n\n/**\n * Hand a background upload to the ambient scope. Returns false when no scope\n * is active — the caller (the stream handler) must then await the work inline:\n * still correct, just not live. Never fire-and-forget.\n *\n * @internal\n */\nexport function registerPendingUpload(work: Promise<void>): boolean {\n const store = pendingUploads.getStore()\n if (!store) {\n return false\n }\n store.push(work)\n return true\n}\n",
|
|
23
23
|
"import type { StreamObject } from '@requence/helpers'\nimport { isStreamObject, toStreamObject } from '@requence/helpers'\nimport type { TransformContext, ValueHandler } from '@requence/transformer'\n\nimport type { StreamEgressContext } from './context.ts'\nimport { assertOk } from './transport.ts'\nimport { RequenceStream } from '../RequenceStream.ts'\nimport { registerPendingUpload } from '../withRequenceStreams.ts'\n\nasync function registerAndUpload(\n ctx: TransformContext,\n streamUrl: string,\n stream: ReadableStream,\n contentType?: string | null,\n maxFileSize?: number,\n): Promise<{ ref: StreamObject; bodyUpload?: Promise<void> }> {\n const [testStream, dataStream] = stream.tee()\n\n // Read the first chunk before firing the body upload: nodejs closes an empty\n // duplex `half` body before the fetch executes, so we must know whether any\n // data exists. `dataStream` keeps the buffered chunk (tee), so no bytes are\n // lost. (Obsolete once we move to bun.)\n const reader = testStream.getReader()\n const { done: isEmpty } = await reader.read()\n reader.cancel()\n\n const streamResponse = await ctx.fetch(streamUrl, {\n method: 'POST',\n signal: ctx.signal,\n headers: {\n ...(contentType ? { 'Content-Type': contentType } : {}),\n // Per-task cap transmitted via task options; the files service stores\n // it with the stream and enforces it during the body upload (absent ⇒\n // its hardcoded fallback cap).\n ...(maxFileSize !== undefined\n ? { 'file-size': String(maxFileSize) }\n : {}),\n },\n })\n\n await assertOk(streamResponse, streamUrl, 'stream registration')\n\n const data = await streamResponse.json()\n if (!isStreamObject(toStreamObject(data as { mime: string; url: string }))) {\n throw new Error(`malformed stream registration response (${streamUrl})`)\n }\n\n const { mime, url } = data as { mime: string; url: string }\n\n if (isEmpty) {\n // Legitimate zero-byte stream: POST a static empty body. The duplex\n // \"wait for first byte\" workaround only applies to a streaming body.\n const emptyResponse = await ctx.fetch(url, {\n method: 'POST',\n signal: ctx.signal,\n headers: contentType ? { 'Content-Type': contentType } : {},\n body: new Uint8Array(0),\n })\n await assertOk(emptyResponse, url, 'stream body upload')\n await emptyResponse.body?.cancel()\n return { ref: toStreamObject({ mime, url }) }\n }\n\n // Not awaited here: the body streams in the background so the reference can\n // be published while data still flows. Completion/failure surfaces through\n // the returned promise, collected by `withRequenceStreams`.\n const bodyUpload = (async () => {\n const bodyResponse = await ctx.fetch(url, {\n method: 'POST',\n signal: ctx.signal,\n duplex: 'half', // not typed but needed for nodejs to handle readable streams\n body: dataStream,\n } as RequestInit)\n await assertOk(bodyResponse, url, 'stream body upload')\n await bodyResponse.body?.cancel()\n })()\n\n return { ref: toStreamObject({ mime, url }), bodyUpload }\n}\n\n/**\n * Value handler owning `RequenceStream` — and, through it, raw `Response`s (a\n * Response body adapts through RequenceStream; no separate Response branch\n * exists anywhere else).\n *\n * Egress registers the stream, returns the `StreamObject` reference\n * immediately, and pushes the body in the background (collected by the ambient\n * `withRequenceStreams` scope; without a scope the upload is awaited inline —\n * still correct, just not live). Ingress reconstructs a lazy stream that reads\n * live-or-durable.\n */\nexport function createRequenceStreamHandler(): ValueHandler<\n RequenceStream | Response,\n StreamObject | null,\n StreamEgressContext\n> {\n return {\n tag: 'RequenceStream',\n\n canHandle: (value) => RequenceStream.canHandle(value),\n\n async serialize(value, ctx) {\n // Idempotent: an already-remote stream keeps its existing reference.\n if (value instanceof RequenceStream && value.streamObject) {\n return value.streamObject\n }\n\n if (!ctx.streamUrl) {\n ctx.onOffloadSkip?.()\n return null\n }\n\n const body =\n value instanceof Response\n ? // A body-less Response is a legitimate empty stream.\n (value.body ??\n new ReadableStream({\n start(controller) {\n controller.close()\n },\n }))\n : value.stream()\n const contentType =\n value instanceof Response\n ? value.headers.get('Content-Type')\n : value.mimeType\n\n try {\n const { ref, bodyUpload } = await registerAndUpload(\n ctx,\n ctx.streamUrl,\n body,\n contentType,\n ctx.maxFileSize,\n )\n if (bodyUpload && !registerPendingUpload(bodyUpload)) {\n // No ambient scope collecting background work: await inline. Correct,\n // just not live — never fire-and-forget.\n await bodyUpload\n }\n return ref\n } catch (error) {\n if (!(error instanceof Error)) {\n throw error\n }\n // Fail-hard by default: only swallow (to null) when a caller opts in\n // with `onOffloadFail`. Otherwise propagate so the node/task fails loudly.\n if (ctx.onOffloadFail) {\n ctx.onOffloadFail(error)\n return null\n }\n throw error\n }\n },\n\n isReference: (value): value is StreamObject => isStreamObject(value),\n\n deserialize(ref, ctx) {\n return RequenceStream.fromStreamObject(ref as StreamObject, ctx.signal)\n },\n }\n}\n",
|
|
24
|
-
"import { Buffer } from 'node:buffer'\n\nimport type { ClaimCheckObject } from '@requence/helpers'\nimport { isClaimCheckObject, toClaimCheckObject } from '@requence/helpers'\nimport type {\n HandlerBundle,\n MessageHandler,\n TransformContext,\n ValueHandler,\n} from '@requence/transformer'\n\nimport type { ClaimCheckEgressContext } from './context.ts'\nimport { assertOk } from './transport.ts'\n\n/**\n * Oversized-message claim-check — one `withHandler` bundle carrying both\n * contract halves:\n *\n * - **Egress** is the bundle's `messageHandler`: it size-checks the already\n * value-serialized body and offloads oversized top-level values to the\n * files service, preserving a record body's top-level keys (the transformer\n * asserts this). A non-record body is offloaded wholesale.\n * - **Ingress** is the bundle's `valueHandler`: a reference can resurface at\n * any depth of a later message once a forwarding hop merged it into other\n * data — only the value walk finds it there.\n *\n * Offload failure always **throws** — deliberately ignoring the\n * `onOffloadFail` swallow-to-null contract, which means \"null *reference*\n * for one value\": a silently nulled body part would corrupt the message, and\n * an oversized body that cannot be offloaded fails at the broker anyway.\n * Without an `uploadUrl` on the ctx the handler skips (status quo: the broker\n * rejects the message exactly as it does today).\n */\n\n/**\n * Fallback offload threshold in bytes when the ctx carries no\n * `maxPayloadSize` (safe headroom under RabbitMQ's 16 MiB default\n * `max_message_size`). The per-task value is minted by the ui backend and\n * arrives via task options, like the upload URL.\n */\nconst DEFAULT_MAX_PAYLOAD_SIZE = 4 * 1024 * 1024\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nasync function offload(\n ctx: TransformContext,\n uploadUrl: string,\n json: string,\n): Promise<ClaimCheckObject> {\n const response = await ctx.fetch(uploadUrl, {\n method: 'POST',\n signal: ctx.signal,\n headers: { 'Content-Type': 'application/json' },\n body: json,\n })\n await assertOk(response, uploadUrl, 'claim-check offload')\n\n const data = (await response.json()) as { url?: unknown; size?: unknown }\n if (\n !data ||\n typeof data !== 'object' ||\n typeof data.url !== 'string' ||\n !data.url ||\n typeof data.size !== 'number'\n ) {\n throw new Error(`malformed claim-check offload response (${uploadUrl})`)\n }\n return toClaimCheckObject({ url: data.url, size: data.size })\n}\n\n/** The historical sizer: correct for any caller still publishing JSON. */\nfunction jsonByteLength(value: unknown) {\n const json = JSON.stringify(value)\n return json === undefined ? 0 : Buffer.byteLength(json)\n}\n\nfunction createMessageHandler(): MessageHandler<ClaimCheckEgressContext> {\n return {\n async wrapOutbound(body, ctx) {\n const maxBytes = ctx.maxPayloadSize ?? DEFAULT_MAX_PAYLOAD_SIZE\n if (maxBytes <= 0 || body === undefined) {\n return body\n }\n\n // Two different questions about the same value, and they no longer have the\n // same answer:\n // - how big will this be ON THE WIRE → `measure`, the publisher's codec;\n // - what bytes do we PUT in the offloaded object → JSON, always.\n // The stored object is an HTTP/S3 payload read back by `JSON.parse` in the\n // ingress half below, so it stays JSON regardless of the wire codec. Only\n // the threshold arithmetic follows the codec.\n const measure = ctx.measure ?? jsonByteLength\n\n if (measure(body) <= maxBytes) {\n return body\n }\n const { uploadUrl } = ctx\n if (!uploadUrl) {\n ctx.onOffloadSkip?.()\n return body\n }\n\n if (!isRecord(body)) {\n const json =
|
|
24
|
+
"import { Buffer } from 'node:buffer'\n\nimport type { ClaimCheckObject } from '@requence/helpers'\nimport { isClaimCheckObject, toClaimCheckObject } from '@requence/helpers'\nimport type {\n HandlerBundle,\n MessageHandler,\n TransformContext,\n ValueHandler,\n} from '@requence/transformer'\n\nimport type { ClaimCheckEgressContext } from './context.ts'\nimport { assertOk } from './transport.ts'\n\n/**\n * Oversized-message claim-check — one `withHandler` bundle carrying both\n * contract halves:\n *\n * - **Egress** is the bundle's `messageHandler`: it size-checks the already\n * value-serialized body and offloads oversized top-level values to the\n * files service, preserving a record body's top-level keys (the transformer\n * asserts this). A non-record body is offloaded wholesale.\n * - **Ingress** is the bundle's `valueHandler`: a reference can resurface at\n * any depth of a later message once a forwarding hop merged it into other\n * data — only the value walk finds it there.\n *\n * Offload failure always **throws** — deliberately ignoring the\n * `onOffloadFail` swallow-to-null contract, which means \"null *reference*\n * for one value\": a silently nulled body part would corrupt the message, and\n * an oversized body that cannot be offloaded fails at the broker anyway.\n * Without an `uploadUrl` on the ctx the handler skips (status quo: the broker\n * rejects the message exactly as it does today).\n */\n\n/**\n * Fallback offload threshold in bytes when the ctx carries no\n * `maxPayloadSize` (safe headroom under RabbitMQ's 16 MiB default\n * `max_message_size`). The per-task value is minted by the ui backend and\n * arrives via task options, like the upload URL.\n */\nconst DEFAULT_MAX_PAYLOAD_SIZE = 4 * 1024 * 1024\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nasync function offload(\n ctx: TransformContext,\n uploadUrl: string,\n json: string,\n): Promise<ClaimCheckObject> {\n const response = await ctx.fetch(uploadUrl, {\n method: 'POST',\n signal: ctx.signal,\n headers: { 'Content-Type': 'application/json' },\n body: json,\n })\n await assertOk(response, uploadUrl, 'claim-check offload')\n\n const data = (await response.json()) as { url?: unknown; size?: unknown }\n if (\n !data ||\n typeof data !== 'object' ||\n typeof data.url !== 'string' ||\n !data.url ||\n typeof data.size !== 'number'\n ) {\n throw new Error(`malformed claim-check offload response (${uploadUrl})`)\n }\n return toClaimCheckObject({ url: data.url, size: data.size })\n}\n\n/** The historical sizer: correct for any caller still publishing JSON. */\nfunction jsonByteLength(value: unknown) {\n const json = JSON.stringify(value)\n return json === undefined ? 0 : Buffer.byteLength(json)\n}\n\n/** Thrown by the replacer below, caught by its own `toOffloadJson`, never escapes. */\nclass UnserializableValue extends Error {}\n\n/**\n * The bytes PUT in an offloaded object — always JSON, whatever the wire codec,\n * because the ingress half reads them back with `JSON.parse`. `undefined` means\n * JSON cannot carry this value, so it must not be offloaded at all.\n *\n * The msgpack wire made that case reachable: it carries a `Uint8Array` as\n * msgpack `bin`, and the value walk does not claim binary (`RequenceFile`\n * handles only `RequenceFile | Blob`). `JSON.stringify` does not refuse it\n * either — it renders a `Uint8Array` as `{\"0\":1,…}` and a `Buffer` as\n * `{\"type\":\"Buffer\",\"data\":[…]}`. Offloading either is silent corruption (the\n * consumer gets a plain object where bytes were) on top of a ~4x size increase,\n * so binary is rejected at any depth instead. The Python handler gets this for\n * free — `json.dumps` refuses `bytes`.\n *\n * The replacer reads `this[key]` rather than its own second argument because\n * `toJSON` runs BEFORE the replacer: a `Buffer` has already become that plain\n * object by the time the replacer is called. At the root, the holder is\n * `{ '': value }` and the key is `''`, so one expression covers both.\n */\nfunction toOffloadJson(value: unknown) {\n try {\n return JSON.stringify(\n value,\n function (this: Record<string, unknown>, key: string, encoded: unknown) {\n const raw = this[key]\n if (ArrayBuffer.isView(raw) || raw instanceof ArrayBuffer) {\n throw new UnserializableValue()\n }\n return encoded\n },\n )\n } catch (error) {\n if (error instanceof UnserializableValue) {\n return undefined\n }\n throw error\n }\n}\n\nfunction createMessageHandler(): MessageHandler<ClaimCheckEgressContext> {\n return {\n async wrapOutbound(body, ctx) {\n const maxBytes = ctx.maxPayloadSize ?? DEFAULT_MAX_PAYLOAD_SIZE\n if (maxBytes <= 0 || body === undefined) {\n return body\n }\n\n // Two different questions about the same value, and they no longer have the\n // same answer:\n // - how big will this be ON THE WIRE → `measure`, the publisher's codec;\n // - what bytes do we PUT in the offloaded object → JSON, always.\n // The stored object is an HTTP/S3 payload read back by `JSON.parse` in the\n // ingress half below, so it stays JSON regardless of the wire codec. Only\n // the threshold arithmetic follows the codec.\n const measure = ctx.measure ?? jsonByteLength\n\n if (measure(body) <= maxBytes) {\n return body\n }\n const { uploadUrl } = ctx\n if (!uploadUrl) {\n ctx.onOffloadSkip?.()\n return body\n }\n\n if (!isRecord(body)) {\n const json = toOffloadJson(body)\n if (json === undefined) {\n return body\n }\n return offload(ctx, uploadUrl, json)\n }\n\n // Record body: offload oversized top-level values largest-first until\n // the body fits, keys preserved. If every value is offloaded and the\n // body still exceeds the threshold there is nothing more a\n // key-preserving wrap can do — return it and let the broker decide.\n const entries = Object.entries(body)\n .map(([key, value]) => ({\n key,\n valueJson: toOffloadJson(value),\n size: measure(value),\n }))\n .sort((a, b) => b.size - a.size)\n\n const wrapped: Record<string, unknown> = { ...body }\n let total = measure(body)\n for (const entry of entries) {\n // A reference is ~100–150 bytes; offloading a value that small can\n // only grow the body. Entries are sorted largest-first, so stop.\n if (total <= maxBytes || entry.size <= 256) {\n break\n }\n if (entry.valueJson === undefined) {\n // A value JSON cannot carry cannot be offloaded (see `toOffloadJson`).\n // SKIP it rather than stop: entries are largest-first, so stopping here\n // would strand every smaller value that CAN be offloaded — and the whole\n // oversized body would reach the broker.\n continue\n }\n const ref = await offload(ctx, uploadUrl, entry.valueJson)\n wrapped[entry.key] = ref\n total += measure(ref) - entry.size\n }\n return wrapped\n },\n }\n}\n\n/**\n * Ingress half: fetch the offloaded value back and hand it to the walk. The\n * result is re-walked to a fixpoint, so references nested *inside* the\n * offloaded value (files, streams, callbacks) rehydrate as usual.\n * Reconstruction needs only `ctx.fetch`, so transport-less consumers (task\n * watchers, ui) can always unwrap.\n */\nfunction createValueHandler(): ValueHandler<unknown, ClaimCheckObject> {\n return {\n tag: 'ClaimCheck',\n\n canHandle: () => false, // egress happens at message level, never per value\n\n serialize() {\n throw new Error(\n 'ClaimCheck egress is the bundled MessageHandler (wrapOutbound); it never reaches the value walk',\n )\n },\n\n isReference: (value): value is ClaimCheckObject =>\n isClaimCheckObject(value),\n\n async deserialize(ref, ctx) {\n const response = await ctx.fetch(ref.url, { signal: ctx.signal })\n await assertOk(response, ref.url, 'claim-check fetch')\n const text = await response.text()\n try {\n return JSON.parse(text)\n } catch {\n throw new Error(`malformed claim-check payload (${ref.url})`)\n }\n },\n }\n}\n\n/** The claim-check as one composable bundle: message-wrap egress + value-walk ingress. */\nexport function createClaimCheckHandler(): HandlerBundle<\n object,\n object,\n ClaimCheckEgressContext\n> & {\n valueHandler: ValueHandler<unknown, ClaimCheckObject>\n messageHandler: MessageHandler<ClaimCheckEgressContext>\n} {\n return {\n valueHandler: createValueHandler(),\n messageHandler: createMessageHandler(),\n }\n}\n",
|
|
25
25
|
"import { mapData } from '@requence/helpers'\n\nimport { RequenceFile } from './RequenceFile.ts'\nimport { RequenceStream } from './RequenceStream.ts'\n\n/**\n * Best-effort pre-pass for log/console payloads: a log must never fail the\n * task/node or mint a live callback registration, so everything the\n * transformer would loudly reject is rendered to a readable label instead.\n * Requence types pass through untouched (the handlers offload them), plain\n * data and toJSON-serializable instances pass through (JSON parity),\n * everything else becomes a string.\n */\nexport function sanitizeLogData(data: unknown) {\n return mapData(data, {\n Function: () => '[Function]',\n Symbol: (sym) => String(sym),\n Object(obj) {\n if (RequenceFile.canHandle(obj) || RequenceStream.canHandle(obj)) {\n return undefined\n }\n const proto = Object.getPrototypeOf(obj)\n if (proto === null || proto === Object.prototype) {\n return undefined\n }\n if (typeof (obj as { toJSON?: unknown }).toJSON === 'function') {\n return undefined\n }\n return String(obj)\n },\n })\n}\n",
|
|
26
26
|
"import type { CallbackObject } from '@requence/helpers'\nimport { isCallbackObject } from '@requence/helpers'\nimport type { ValueHandler } from '@requence/transformer'\n\nimport type {\n CallbackEgressContext,\n CallbackIngressContext,\n} from './context.ts'\n\ntype ReconstructedCallback = (arg: unknown) => void\n\n/**\n * Bidirectional handler owning the `RequenceCallback` reference tag.\n *\n * Egress serializes any function into a full callback reference: identity\n * (`callbackId`/`sourceId`) comes from `ctx.onCallback`, the emission from\n * `ctx.outputName`, and the position from the walk's `path` — the reference's\n * public identity (the operator validates invocation args against the output\n * schema at `propertyPath`). A boundary that cannot register callbacks (no\n * `ctx.onCallback`) fails loud.\n *\n * Ingress reconstructs the reference into a callable function that dispatches\n * through `ctx.onCallbackInvoke` — with no `onCallbackInvoke` provided,\n * invoking the callback is a no-op; callers that forbid callbacks pass a\n * throwing implementation.\n */\nexport function createRequenceCallbackHandler(): ValueHandler<\n ReconstructedCallback,\n CallbackObject,\n CallbackEgressContext,\n CallbackIngressContext\n> {\n return {\n tag: 'RequenceCallback',\n\n canHandle: (value) => typeof value === 'function',\n\n serialize(callback, ctx, path) {\n if (!ctx.onCallback) {\n // handler throws are not path-wrapped by the transformer — carry the\n // position in the message ourselves\n throw new Error(\n `functions are not serializable on this boundary (no ctx.onCallback) at path \"${path.join('.')}\"`,\n )\n }\n return {\n ...ctx.onCallback(callback),\n outputName: ctx.outputName ?? null,\n propertyPath: [...path],\n __REQUENCE_type: 'RequenceCallback',\n }\n },\n\n isReference: (value): value is CallbackObject => isCallbackObject(value),\n\n deserialize(ref, ctx) {\n return (arg: unknown) => {\n ctx.onCallbackInvoke?.({ ...(ref as CallbackObject), arg })\n }\n },\n }\n}\n",
|
|
27
27
|
"/** A position in the message tree, as visited by the walk. */\nexport type TransformPath = ReadonlyArray<string | number>\n\n/** Render a path as a readable dotted/indexed accessor, e.g. `data.items[2].file`. */\nexport function formatPath(path: TransformPath): string {\n if (path.length === 0) {\n return '<root>'\n }\n let out = ''\n for (const segment of path) {\n out +=\n typeof segment === 'number'\n ? `[${segment}]`\n : out\n ? `.${segment}`\n : segment\n }\n return out\n}\n\n/**\n * Thrown when the transformer cannot fully resolve a message: a complex value\n * on egress that no registered `ValueHandler` claims, or a reference tag on\n * ingress that no handler owns. The message names the offending type/tag and\n * its path so the failure is diagnosable rather than a silent pass-through.\n */\nexport class TransformError extends Error {\n readonly path: TransformPath\n readonly detail: string\n\n constructor(detail: string, path: TransformPath) {\n super(`${detail} at ${formatPath(path)}`)\n this.name = 'TransformError'\n this.path = path\n this.detail = detail\n }\n}\n",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"import { AsyncLocalStorage } from 'node:async_hooks'\n\nimport type { CallbackObject } from '@requence/helpers'\n\nimport { createInboundBoundary } from './boundary.ts'\nimport { passthroughInboundTransformer } from './transformer.ts'\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\n/**\n * Unwrap the `context.toOutput(...)` symbol wrapper into its raw value and\n * output name. Pure — serialization happens at the component's outbound\n * boundary (`createOutboundBoundary`), not here.\n */\nexport function unwrapOutputValue(result: unknown): {\n value: unknown\n outputName: string | null\n} {\n if (isOutputValue(result)) {\n return { value: result.value, outputName: result[OUTPUT_VALUE] }\n }\n return { value: result, outputName: null }\n}\n\n// The privileged send API (unit 05 headers, main-path variant). Runtime-attached\n// to every handler context but deliberately absent from the inferred\n// `ContextHelper` type — ordinary services must not discover it via typing.\n// Privileged consumers (the reserved requence-logic runtime) cast their context\n// to `PrivilegedContext`.\nexport interface PrivilegedSends {\n send(data: unknown, options?: { overwrite?: boolean }): void\n sendToOutput(\n name: string,\n data: unknown,\n options?: { overwrite?: boolean },\n ): void\n sendState(state: unknown): void\n // Fire-and-forget invocation of a raw RequenceCallback wire ref (todo/11):\n // passthrough consumers receive callback refs un-rehydrated, so this is\n // their dispatch path. The arg goes through the message's outbound boundary\n // like any callback invocation; failures surface at the settle gate, not\n // here.\n invokeCallback(ref: CallbackObject, arg: unknown): void\n // The dispatch's transport options (payload.options, verbatim) so a\n // privileged consumer can forward upload targets across its own boundary.\n options: {\n uploadUrl?: string\n streamUrl?: string\n maxPayloadSize?: number\n maxFileSize?: number\n }\n}\n\nexport default async function createContextHelper(options: {\n taskId: string\n input: unknown\n configuration: unknown\n // Hoisted per-message controller (shared with the outbound boundary);\n // created here when the caller does not provide one.\n abortController?: AbortController\n // Skip file/stream/callback rehydration on ingress (claim-checks still\n // resolve): byte references reach the handler as their raw JSON-safe\n // `__REQUENCE_type` wire objects. Used by consumers that forward values\n // across a JSON process boundary (the logic runtime's guest channel).\n passthroughByteReferences?: boolean\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 sends: PrivilegedSends\n}) {\n const terminatePromise = Promise.withResolvers<string>()\n const abortController = options.abortController ?? new AbortController()\n terminatePromise.promise.then(() => abortController.abort())\n\n const terminated = Object.assign(terminatePromise.promise, {\n signal: abortController.signal,\n })\n\n // Rehydration (FileObject/StreamObject → RequenceFile/RequenceStream,\n // RequenceCallback → function) — the component's single signal-aware\n // inbound boundary, called once per inbound sub-path. Passthrough mode swaps\n // in the chain that resolves claim-checks but keeps byte references raw.\n const inbound = createInboundBoundary({\n signal: abortController.signal,\n ...(options.passthroughByteReferences\n ? { transformer: passthroughInboundTransformer }\n : {}),\n })\n const [input, configuration] = await Promise.all([\n inbound(options.input, { onCallbackInvoke: options.onCallback }),\n inbound(options.configuration, {\n onCallbackInvoke: () => {\n throw new Error('configuration may not have callbacks')\n },\n }),\n ])\n\n const context = {\n taskId: options.taskId,\n input,\n configuration,\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\n // Attached at runtime only: `context`'s inferred type (and therefore the\n // public `ContextHelper`) must not include the privileged send API.\n Object.assign(context, options.sends)\n\n return [context, terminatePromise] as const\n}\n\nexport type ContextHelper = Awaited<ReturnType<typeof createContextHelper>>[0]\n\n// Undocumented — the context shape privileged consumers (requence-logic) cast\n// to. The send methods are present at runtime on every handler context but\n// hidden from `ContextHelper`; the operator honors their `state`/`overwrite`\n// headers only for privileged nodes.\nexport type PrivilegedContext = ContextHelper & PrivilegedSends\n\nexport const handlerStorage = new AsyncLocalStorage<ContextHelper>()\n",
|
|
34
34
|
"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"
|
|
35
35
|
],
|
|
36
|
-
"mappings": "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",
|
|
37
|
-
"debugId": "
|
|
36
|
+
"mappings": "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",
|
|
37
|
+
"debugId": "886A241C6AA974E564756E2164756E21",
|
|
38
38
|
"names": []
|
|
39
39
|
}
|
|
@@ -96,6 +96,7 @@ export declare class NodeTree {
|
|
|
96
96
|
mode: "CONTINUOUS" | "LINEAR";
|
|
97
97
|
privileged: boolean;
|
|
98
98
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
99
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
99
100
|
configurationServices?: {
|
|
100
101
|
outputs: {
|
|
101
102
|
name: string | null;
|
|
@@ -129,6 +130,7 @@ export declare class NodeTree {
|
|
|
129
130
|
mode: "CONTINUOUS" | "LINEAR";
|
|
130
131
|
privileged: boolean;
|
|
131
132
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
133
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
132
134
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
133
135
|
}[] | undefined;
|
|
134
136
|
} | {
|
|
@@ -257,6 +259,7 @@ export declare class NodeTree {
|
|
|
257
259
|
mode: "CONTINUOUS" | "LINEAR";
|
|
258
260
|
privileged: boolean;
|
|
259
261
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
262
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
260
263
|
configurationServices?: {
|
|
261
264
|
outputs: {
|
|
262
265
|
name: string | null;
|
|
@@ -290,6 +293,7 @@ export declare class NodeTree {
|
|
|
290
293
|
mode: "CONTINUOUS" | "LINEAR";
|
|
291
294
|
privileged: boolean;
|
|
292
295
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
296
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
293
297
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
294
298
|
}[] | undefined;
|
|
295
299
|
} | {
|
|
@@ -383,6 +387,7 @@ export declare class NodeTree {
|
|
|
383
387
|
mode: "CONTINUOUS" | "LINEAR";
|
|
384
388
|
privileged: boolean;
|
|
385
389
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
390
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
386
391
|
configurationServices?: {
|
|
387
392
|
outputs: {
|
|
388
393
|
name: string | null;
|
|
@@ -416,6 +421,7 @@ export declare class NodeTree {
|
|
|
416
421
|
mode: "CONTINUOUS" | "LINEAR";
|
|
417
422
|
privileged: boolean;
|
|
418
423
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
424
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
419
425
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
420
426
|
}[] | undefined;
|
|
421
427
|
} | {
|
|
@@ -509,6 +515,7 @@ export declare class NodeTree {
|
|
|
509
515
|
mode: "CONTINUOUS" | "LINEAR";
|
|
510
516
|
privileged: boolean;
|
|
511
517
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
518
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
512
519
|
configurationServices?: {
|
|
513
520
|
outputs: {
|
|
514
521
|
name: string | null;
|
|
@@ -542,6 +549,7 @@ export declare class NodeTree {
|
|
|
542
549
|
mode: "CONTINUOUS" | "LINEAR";
|
|
543
550
|
privileged: boolean;
|
|
544
551
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
552
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
545
553
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
546
554
|
}[] | undefined;
|
|
547
555
|
} | {
|
|
@@ -634,6 +642,7 @@ export declare class NodeTree {
|
|
|
634
642
|
mode: "CONTINUOUS" | "LINEAR";
|
|
635
643
|
privileged: boolean;
|
|
636
644
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
645
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
637
646
|
configurationServices?: {
|
|
638
647
|
outputs: {
|
|
639
648
|
name: string | null;
|
|
@@ -667,6 +676,7 @@ export declare class NodeTree {
|
|
|
667
676
|
mode: "CONTINUOUS" | "LINEAR";
|
|
668
677
|
privileged: boolean;
|
|
669
678
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
679
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
670
680
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
671
681
|
}[] | undefined;
|
|
672
682
|
} | {
|
|
@@ -772,6 +782,7 @@ export declare class NodeTree {
|
|
|
772
782
|
mode: "CONTINUOUS" | "LINEAR";
|
|
773
783
|
privileged: boolean;
|
|
774
784
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
785
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
775
786
|
configurationServices?: {
|
|
776
787
|
outputs: {
|
|
777
788
|
name: string | null;
|
|
@@ -805,6 +816,7 @@ export declare class NodeTree {
|
|
|
805
816
|
mode: "CONTINUOUS" | "LINEAR";
|
|
806
817
|
privileged: boolean;
|
|
807
818
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
819
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
808
820
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
809
821
|
}[] | undefined;
|
|
810
822
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTree.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/NodeTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAA;AAEtC,KAAK,YAAY,GAAG,IAAI,GAAG;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAMD,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,EAAE,CAAA;AAqG/C,KAAK,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,EAAE,CAAA;AAyC3D,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzE,UAAU,eAAe;IACvB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAA;CAC/B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,kBAAkB,CAAsC;IAChE;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAoB;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAoB;IAC3C,SAAgB,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,EAAE,EAAE,CAAA;IAC5D,SAAgB,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAE3D,YACE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,eAAe,EACjC,OAAO,GAAE,KAAK,EAAE,GAAG,IAAW,EAC9B,mBAAmB,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa,EAqBtE;IAED;;;;;;;;OAQG;IACH,IAAI
|
|
1
|
+
{"version":3,"file":"NodeTree.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/NodeTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,4 +63,54 @@ export interface BuildServiceIdentityHeadersParams {
|
|
|
63
63
|
}
|
|
64
64
|
export declare function buildServiceIdentityHeaders({ libVersion, name, capabilities, }: BuildServiceIdentityHeadersParams): Record<string, string>;
|
|
65
65
|
export declare function readServiceIdentity(raw: unknown): ServiceIdentity | null;
|
|
66
|
+
/**
|
|
67
|
+
* WHY a service node got the codec it got.
|
|
68
|
+
*
|
|
69
|
+
* `wireCodecForFleet` answers `json` for several distinct situations that matter
|
|
70
|
+
* very differently in an incident: a service that is simply offline looks nothing
|
|
71
|
+
* like a management API that is down, which in turn looks nothing like a genuine
|
|
72
|
+
* mixed fleet. Recording only the codec makes "why is this json?" unanswerable
|
|
73
|
+
* without shell access to the box, so the reason travels beside it.
|
|
74
|
+
*
|
|
75
|
+
* A compact token rather than prose: it is baked into every service node of every
|
|
76
|
+
* task, and the wording belongs to the UI, which can then change without touching
|
|
77
|
+
* the tree or the operator.
|
|
78
|
+
*/
|
|
79
|
+
export declare const WIRE_CODEC_REASON_VALUES: readonly [
|
|
80
|
+
/** msgpack: every attached replica claimed the capability. */
|
|
81
|
+
'fleet-capable',
|
|
82
|
+
/** The broker's management API is unreachable, so no fleet can be judged. */
|
|
83
|
+
'presence-unavailable',
|
|
84
|
+
/** Nothing is attached to this service version's queue at all. */
|
|
85
|
+
'no-replicas',
|
|
86
|
+
/**
|
|
87
|
+
* Something IS consuming the queue that never announced itself. An SDK too old
|
|
88
|
+
* to announce is also too old to decode, so this folds to json — and it is the
|
|
89
|
+
* one reason that looks like a bug but is the design working.
|
|
90
|
+
*/
|
|
91
|
+
'replicas-unaccounted',
|
|
92
|
+
/** A complete fleet, but at least one replica cannot decode msgpack. */
|
|
93
|
+
'missing-capability'];
|
|
94
|
+
export type WireCodecReason = (typeof WIRE_CODEC_REASON_VALUES)[number];
|
|
95
|
+
/** Named accessors, so call sites read as intent rather than as string literals. */
|
|
96
|
+
export declare const WIRE_CODEC_REASONS: {
|
|
97
|
+
readonly fleetCapable: 'fleet-capable';
|
|
98
|
+
readonly presenceUnavailable: 'presence-unavailable';
|
|
99
|
+
readonly noReplicas: 'no-replicas';
|
|
100
|
+
readonly replicasUnaccounted: 'replicas-unaccounted';
|
|
101
|
+
readonly missingCapability: 'missing-capability';
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Explains a `json` verdict from the facts the fleet monitor holds.
|
|
105
|
+
*
|
|
106
|
+
* Split from `wireCodecForFleet` rather than folded into it because the codec
|
|
107
|
+
* decision needs only the verdict, while the explanation needs the counts behind
|
|
108
|
+
* it — and the codec must stay trivially checkable.
|
|
109
|
+
*/
|
|
110
|
+
export declare function wireCodecReason({ codec, presenceAvailable, replicaCount, consumerCount, }: {
|
|
111
|
+
codec: 'json' | 'msgpack';
|
|
112
|
+
presenceAvailable: boolean;
|
|
113
|
+
replicaCount: number;
|
|
114
|
+
consumerCount: number;
|
|
115
|
+
}): WireCodecReason;
|
|
66
116
|
//# sourceMappingURL=clientProperties.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientProperties.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/clientProperties.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clientProperties.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/clientProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,7 @@ export declare const createCommandSchema: z.ZodPipe<z.ZodObject<{
|
|
|
99
99
|
mode: "CONTINUOUS" | "LINEAR";
|
|
100
100
|
privileged: boolean;
|
|
101
101
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
102
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
102
103
|
configurationServices?: {
|
|
103
104
|
outputs: {
|
|
104
105
|
name: string | null;
|
|
@@ -132,6 +133,7 @@ export declare const createCommandSchema: z.ZodPipe<z.ZodObject<{
|
|
|
132
133
|
mode: "CONTINUOUS" | "LINEAR";
|
|
133
134
|
privileged: boolean;
|
|
134
135
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
136
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
135
137
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
136
138
|
}[] | undefined;
|
|
137
139
|
} | {
|
|
@@ -238,6 +240,7 @@ export declare const createCommandSchema: z.ZodPipe<z.ZodObject<{
|
|
|
238
240
|
mode: "CONTINUOUS" | "LINEAR";
|
|
239
241
|
privileged: boolean;
|
|
240
242
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
243
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
241
244
|
configurationServices?: {
|
|
242
245
|
outputs: {
|
|
243
246
|
name: string | null;
|
|
@@ -271,6 +274,7 @@ export declare const createCommandSchema: z.ZodPipe<z.ZodObject<{
|
|
|
271
274
|
mode: "CONTINUOUS" | "LINEAR";
|
|
272
275
|
privileged: boolean;
|
|
273
276
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
277
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
274
278
|
configurationServices?: any[] | undefined;
|
|
275
279
|
}[] | undefined;
|
|
276
280
|
} | {
|
|
@@ -465,6 +469,7 @@ export declare const commandSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
465
469
|
mode: "CONTINUOUS" | "LINEAR";
|
|
466
470
|
privileged: boolean;
|
|
467
471
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
472
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
468
473
|
configurationServices?: {
|
|
469
474
|
outputs: {
|
|
470
475
|
name: string | null;
|
|
@@ -498,6 +503,7 @@ export declare const commandSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
498
503
|
mode: "CONTINUOUS" | "LINEAR";
|
|
499
504
|
privileged: boolean;
|
|
500
505
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
506
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
501
507
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
502
508
|
}[] | undefined;
|
|
503
509
|
} | {
|
|
@@ -604,6 +610,7 @@ export declare const commandSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
604
610
|
mode: "CONTINUOUS" | "LINEAR";
|
|
605
611
|
privileged: boolean;
|
|
606
612
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
613
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
607
614
|
configurationServices?: {
|
|
608
615
|
outputs: {
|
|
609
616
|
name: string | null;
|
|
@@ -637,6 +644,7 @@ export declare const commandSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
637
644
|
mode: "CONTINUOUS" | "LINEAR";
|
|
638
645
|
privileged: boolean;
|
|
639
646
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
647
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
640
648
|
configurationServices?: any[] | undefined;
|
|
641
649
|
}[] | undefined;
|
|
642
650
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAK1B,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAK1B,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6B3B,CAAA;AAEL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAqD,CAAA;AAC/E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACnD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA"}
|
|
@@ -55,6 +55,13 @@ export declare const serviceNodeSchema: z.ZodObject<{
|
|
|
55
55
|
json: "json";
|
|
56
56
|
msgpack: "msgpack";
|
|
57
57
|
}>>;
|
|
58
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
59
|
+
"fleet-capable": "fleet-capable";
|
|
60
|
+
"missing-capability": "missing-capability";
|
|
61
|
+
"no-replicas": "no-replicas";
|
|
62
|
+
"presence-unavailable": "presence-unavailable";
|
|
63
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
64
|
+
}>>;
|
|
58
65
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
59
66
|
}, z.core.$strict>;
|
|
60
67
|
export type ServiceNode = z.output<typeof serviceNodeSchema>;
|
|
@@ -173,6 +180,13 @@ export declare const nodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
173
180
|
json: "json";
|
|
174
181
|
msgpack: "msgpack";
|
|
175
182
|
}>>;
|
|
183
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
184
|
+
"fleet-capable": "fleet-capable";
|
|
185
|
+
"missing-capability": "missing-capability";
|
|
186
|
+
"no-replicas": "no-replicas";
|
|
187
|
+
"presence-unavailable": "presence-unavailable";
|
|
188
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
189
|
+
}>>;
|
|
176
190
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
177
191
|
}, z.core.$strict>, z.ZodObject<{
|
|
178
192
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeType.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/nodeType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"nodeType.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/nodeType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAoC1B,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAGvD,CAAA;AA4BD,eAAO,MAAM,eAAe;;;;;kBAS1B,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAA;AAUxD,eAAO,MAAM,4BAA4B;;;;;;;mBAQxC,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC3C,OAAO,4BAA4B,CACpC,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiEF,CAAA;AAC5B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE5D,2DAA2D;AAC3D,eAAO,MAAM,gCAAgC;aAC3C,KAAK,EAAE,CAAC;aACR,UAAU,EAAE,KAAM;aAClB,GAAG;CACK,CAAA;AAEV,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;kBAUA,CAAA;AAC5B,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAA;AAExD,eAAO,MAAM,YAAY;;;;kBAIvB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAA;AAElD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;kBASJ,CAAA;AAC5B,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAEhE,eAAO,MAAM,cAAc;;;;;kBAOzB,CAAA;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAA;AAEtD,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAG5D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAQrB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;iBAKrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAC9C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateNodeTypes.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/templateNodeTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AA4B1B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAEP,CAAA;AAC7B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAExE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"templateNodeTypes.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/templateNodeTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AA4B1B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAEP,CAAA;AAC7B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAExE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoCT,CAAA;AAC7B,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;iBAEP,CAAA;AAC7B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAEJ,CAAA;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAElE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;iBAMX,CAAA;AAC7B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAEhF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAEN,CAAA;AAC7B,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEtE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAET,CAAA;AAC7B,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5E,eAAO,MAAM,YAAY;;;;;;;;;iBAQvB,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
|
|
@@ -44,6 +44,13 @@ export declare const treeSchema: z.ZodObject<{
|
|
|
44
44
|
json: "json";
|
|
45
45
|
msgpack: "msgpack";
|
|
46
46
|
}>>;
|
|
47
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
48
|
+
"fleet-capable": "fleet-capable";
|
|
49
|
+
"missing-capability": "missing-capability";
|
|
50
|
+
"no-replicas": "no-replicas";
|
|
51
|
+
"presence-unavailable": "presence-unavailable";
|
|
52
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
53
|
+
}>>;
|
|
47
54
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
48
55
|
}, z.core.$strict>, z.ZodObject<{
|
|
49
56
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -154,6 +161,13 @@ declare const extendedTreeSchema: z.ZodObject<{
|
|
|
154
161
|
json: "json";
|
|
155
162
|
msgpack: "msgpack";
|
|
156
163
|
}>>;
|
|
164
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
165
|
+
"fleet-capable": "fleet-capable";
|
|
166
|
+
"missing-capability": "missing-capability";
|
|
167
|
+
"no-replicas": "no-replicas";
|
|
168
|
+
"presence-unavailable": "presence-unavailable";
|
|
169
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
170
|
+
}>>;
|
|
157
171
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
158
172
|
}, z.core.$strict>, z.ZodObject<{
|
|
159
173
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -265,6 +279,13 @@ export declare const validatedTreeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
265
279
|
json: "json";
|
|
266
280
|
msgpack: "msgpack";
|
|
267
281
|
}>>;
|
|
282
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
283
|
+
"fleet-capable": "fleet-capable";
|
|
284
|
+
"missing-capability": "missing-capability";
|
|
285
|
+
"no-replicas": "no-replicas";
|
|
286
|
+
"presence-unavailable": "presence-unavailable";
|
|
287
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
288
|
+
}>>;
|
|
268
289
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
269
290
|
}, z.core.$strict>, z.ZodObject<{
|
|
270
291
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -368,6 +389,7 @@ export declare const validatedTreeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
368
389
|
mode: "CONTINUOUS" | "LINEAR";
|
|
369
390
|
privileged: boolean;
|
|
370
391
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
392
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
371
393
|
configurationServices?: {
|
|
372
394
|
outputs: {
|
|
373
395
|
name: string | null;
|
|
@@ -401,6 +423,7 @@ export declare const validatedTreeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
401
423
|
mode: "CONTINUOUS" | "LINEAR";
|
|
402
424
|
privileged: boolean;
|
|
403
425
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
426
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
404
427
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
405
428
|
}[] | undefined;
|
|
406
429
|
} | {
|
|
@@ -500,6 +523,7 @@ export declare const validatedTreeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
500
523
|
mode: "CONTINUOUS" | "LINEAR";
|
|
501
524
|
privileged: boolean;
|
|
502
525
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
526
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
503
527
|
configurationServices?: {
|
|
504
528
|
outputs: {
|
|
505
529
|
name: string | null;
|
|
@@ -533,6 +557,7 @@ export declare const validatedTreeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
533
557
|
mode: "CONTINUOUS" | "LINEAR";
|
|
534
558
|
privileged: boolean;
|
|
535
559
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
560
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
536
561
|
configurationServices?: any[] | undefined;
|
|
537
562
|
}[] | undefined;
|
|
538
563
|
} | {
|
|
@@ -649,6 +674,13 @@ export declare const treeReferenceSchema: z.ZodObject<{
|
|
|
649
674
|
json: "json";
|
|
650
675
|
msgpack: "msgpack";
|
|
651
676
|
}>>;
|
|
677
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
678
|
+
"fleet-capable": "fleet-capable";
|
|
679
|
+
"missing-capability": "missing-capability";
|
|
680
|
+
"no-replicas": "no-replicas";
|
|
681
|
+
"presence-unavailable": "presence-unavailable";
|
|
682
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
683
|
+
}>>;
|
|
652
684
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
653
685
|
}, z.core.$strict>, z.ZodObject<{
|
|
654
686
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -761,6 +793,13 @@ export declare const treeListSchema: z.ZodObject<{
|
|
|
761
793
|
json: "json";
|
|
762
794
|
msgpack: "msgpack";
|
|
763
795
|
}>>;
|
|
796
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
797
|
+
"fleet-capable": "fleet-capable";
|
|
798
|
+
"missing-capability": "missing-capability";
|
|
799
|
+
"no-replicas": "no-replicas";
|
|
800
|
+
"presence-unavailable": "presence-unavailable";
|
|
801
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
802
|
+
}>>;
|
|
764
803
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject</*elided*/ any, z.core.$strict>>>;
|
|
765
804
|
}, z.core.$strict>, z.ZodObject<{
|
|
766
805
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -864,6 +903,7 @@ export declare const treeListSchema: z.ZodObject<{
|
|
|
864
903
|
mode: "CONTINUOUS" | "LINEAR";
|
|
865
904
|
privileged: boolean;
|
|
866
905
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
906
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
867
907
|
configurationServices?: {
|
|
868
908
|
outputs: {
|
|
869
909
|
name: string | null;
|
|
@@ -897,6 +937,7 @@ export declare const treeListSchema: z.ZodObject<{
|
|
|
897
937
|
mode: "CONTINUOUS" | "LINEAR";
|
|
898
938
|
privileged: boolean;
|
|
899
939
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
940
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
900
941
|
configurationServices?: /*elided*/ any[] | undefined;
|
|
901
942
|
}[] | undefined;
|
|
902
943
|
} | {
|
|
@@ -996,6 +1037,7 @@ export declare const treeListSchema: z.ZodObject<{
|
|
|
996
1037
|
mode: "CONTINUOUS" | "LINEAR";
|
|
997
1038
|
privileged: boolean;
|
|
998
1039
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
1040
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
999
1041
|
configurationServices?: {
|
|
1000
1042
|
outputs: {
|
|
1001
1043
|
name: string | null;
|
|
@@ -1029,6 +1071,7 @@ export declare const treeListSchema: z.ZodObject<{
|
|
|
1029
1071
|
mode: "CONTINUOUS" | "LINEAR";
|
|
1030
1072
|
privileged: boolean;
|
|
1031
1073
|
wireCodec?: "json" | "msgpack" | undefined;
|
|
1074
|
+
wireCodecReason?: "fleet-capable" | "missing-capability" | "no-replicas" | "presence-unavailable" | "replicas-unaccounted" | undefined;
|
|
1032
1075
|
configurationServices?: any[] | undefined;
|
|
1033
1076
|
}[] | undefined;
|
|
1034
1077
|
} | {
|
|
@@ -1145,6 +1188,13 @@ export declare const treeListSchema: z.ZodObject<{
|
|
|
1145
1188
|
json: "json";
|
|
1146
1189
|
msgpack: "msgpack";
|
|
1147
1190
|
}>>;
|
|
1191
|
+
wireCodecReason: z.ZodOptional<z.ZodEnum<{
|
|
1192
|
+
"fleet-capable": "fleet-capable";
|
|
1193
|
+
"missing-capability": "missing-capability";
|
|
1194
|
+
"no-replicas": "no-replicas";
|
|
1195
|
+
"presence-unavailable": "presence-unavailable";
|
|
1196
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
1197
|
+
}>>;
|
|
1148
1198
|
configurationServices: z.ZodOptional<z.ZodArray<z.ZodObject<any, z.core.$strict>>>;
|
|
1149
1199
|
}, z.core.$strict>, z.ZodObject<{
|
|
1150
1200
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeNodes.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/treeNodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAmB1B,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"treeNodes.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/treeNodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAmB1B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAE9C,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEtB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE/D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0O/B,CAAA;AACD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU9B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAEhE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBvB,CAAA;AAEJ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAA;AACtD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
|
|
@@ -44,6 +44,13 @@ declare const nodeStartUpdateSchema: z.ZodObject<{
|
|
|
44
44
|
json: "json";
|
|
45
45
|
msgpack: "msgpack";
|
|
46
46
|
}>>>;
|
|
47
|
+
wireCodecReason: z.ZodDefault<z.ZodNullable<z.ZodEnum<{
|
|
48
|
+
"fleet-capable": "fleet-capable";
|
|
49
|
+
"missing-capability": "missing-capability";
|
|
50
|
+
"no-replicas": "no-replicas";
|
|
51
|
+
"presence-unavailable": "presence-unavailable";
|
|
52
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
53
|
+
}>>>;
|
|
47
54
|
triggers: z.ZodArray<z.ZodString>;
|
|
48
55
|
}, z.core.$strip>;
|
|
49
56
|
export type NodeStartUpdate = z.infer<typeof nodeStartUpdateSchema>;
|
|
@@ -258,6 +265,13 @@ export declare const updateSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
258
265
|
json: "json";
|
|
259
266
|
msgpack: "msgpack";
|
|
260
267
|
}>>>;
|
|
268
|
+
wireCodecReason: z.ZodDefault<z.ZodNullable<z.ZodEnum<{
|
|
269
|
+
"fleet-capable": "fleet-capable";
|
|
270
|
+
"missing-capability": "missing-capability";
|
|
271
|
+
"no-replicas": "no-replicas";
|
|
272
|
+
"presence-unavailable": "presence-unavailable";
|
|
273
|
+
"replicas-unaccounted": "replicas-unaccounted";
|
|
274
|
+
}>>>;
|
|
261
275
|
triggers: z.ZodArray<z.ZodString>;
|
|
262
276
|
}, z.core.$strip>, z.ZodObject<{
|
|
263
277
|
timestamp: z.ZodPipe<z.ZodNumber, z.ZodTransform<Date, number>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../../../helpers/src/protocol/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAsB1B,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;iBAIxB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAYjE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAezB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;iBAGzB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;iBAKpB,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMtB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAEvB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;iBAIzB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;iBAGzB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;iBAYzB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,qBAAqB;;;;;;;iBAGzB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,mBAAmB;;;;;;;;iBAIvB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAO/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAavB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
|