@repost/client 0.2.0 → 0.4.0
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/README.md +15 -85
- package/dist/cjs/index-e0zw7VDH.cjs +2987 -0
- package/dist/cjs/index-e0zw7VDH.cjs.map +1 -0
- package/dist/cjs/index.cjs +23 -1046
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/node-Dd92VNS7.cjs +841 -0
- package/dist/cjs/node-Dd92VNS7.cjs.map +1 -0
- package/dist/cjs/observer-dykSFHYi.cjs +69 -0
- package/dist/cjs/observer-dykSFHYi.cjs.map +1 -0
- package/dist/cjs/otel/index.cjs +99 -0
- package/dist/cjs/otel/index.cjs.map +1 -0
- package/dist/cjs/testing/index.cjs +257 -0
- package/dist/cjs/testing/index.cjs.map +1 -0
- package/dist/cjs/types/config.d.ts +28 -0
- package/dist/cjs/types/errors.d.ts +83 -0
- package/dist/cjs/types/index.d.ts +8 -3
- package/dist/cjs/types/observer.d.ts +44 -0
- package/dist/cjs/types/operation-events.d.ts +8 -0
- package/dist/cjs/types/operation-input.d.ts +5 -0
- package/dist/cjs/types/operation-policy.d.ts +23 -0
- package/dist/cjs/types/operation.d.ts +14 -0
- package/dist/cjs/types/otel/index.d.ts +2 -0
- package/dist/cjs/types/otel/metrics.d.ts +5 -0
- package/dist/cjs/types/otel/telemetry.d.ts +5 -0
- package/dist/cjs/types/runtime-state.d.ts +45 -0
- package/dist/cjs/types/serialize.d.ts +9 -3
- package/dist/cjs/types/telemetry.d.ts +43 -0
- package/dist/cjs/types/testing/deterministic.d.ts +19 -0
- package/dist/cjs/types/testing/index.d.ts +16 -0
- package/dist/cjs/types/testing/manual-clock.d.ts +12 -0
- package/dist/cjs/types/testing/recording-observer.d.ts +11 -0
- package/dist/cjs/types/testing/stub-transport.d.ts +35 -0
- package/dist/cjs/types/transport/connect-proxy.d.ts +30 -0
- package/dist/cjs/types/transport/failure.d.ts +7 -0
- package/dist/cjs/types/transport/framing.d.ts +8 -0
- package/dist/cjs/types/transport/h2.d.ts +3 -0
- package/dist/cjs/types/transport/node.d.ts +3 -0
- package/dist/cjs/types/transport/response-reader.d.ts +6 -0
- package/dist/cjs/types/transport/strict-json.d.ts +5 -0
- package/dist/cjs/types/transport/tls.d.ts +14 -0
- package/dist/cjs/types/transport/undici-compat.d.ts +47 -0
- package/dist/cjs/types/transport.d.ts +42 -19
- package/dist/cjs/types/types.d.ts +146 -23
- package/dist/cjs/types/version.d.ts +2 -0
- package/dist/cjs/types/webhooks.d.ts +15 -0
- package/dist/cjs/version-CGqSWJir.cjs +7 -0
- package/dist/cjs/version-CGqSWJir.cjs.map +1 -0
- package/dist/esm/index-DRD5FBax.mjs +2967 -0
- package/dist/esm/index-DRD5FBax.mjs.map +1 -0
- package/dist/esm/index.mjs +3 -1041
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/node-BAJt_qhB.mjs +839 -0
- package/dist/esm/node-BAJt_qhB.mjs.map +1 -0
- package/dist/esm/observer-Dns2X4wE.mjs +66 -0
- package/dist/esm/observer-Dns2X4wE.mjs.map +1 -0
- package/dist/esm/otel/index.mjs +96 -0
- package/dist/esm/otel/index.mjs.map +1 -0
- package/dist/esm/testing/index.mjs +248 -0
- package/dist/esm/testing/index.mjs.map +1 -0
- package/dist/esm/version-Dp5vd2nu.mjs +5 -0
- package/dist/esm/version-Dp5vd2nu.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +3 -4
- package/index.mjs +1 -1
- package/otel/index.d.ts +1 -0
- package/otel/index.js +3 -0
- package/otel/index.mjs +1 -0
- package/package.json +38 -9
- package/runtime/index.d.ts +1 -1
- package/runtime/index.js +2 -2
- package/runtime/index.mjs +1 -1
- package/scripts/postinstall.js +2 -2
- package/testing/index.d.ts +1 -0
- package/testing/index.js +3 -0
- package/testing/index.mjs +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DRD5FBax.mjs","sources":["../../../../repost-js/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/_u64.js","../../../../repost-js/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/crypto.js","../../../../repost-js/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/utils.js","../../../../repost-js/node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/sha3.js","../../../../repost-js/node_modules/.pnpm/@paralleldrive+cuid2@2.3.1/node_modules/@paralleldrive/cuid2/src/index.js","../../../../repost-js/node_modules/.pnpm/@paralleldrive+cuid2@2.3.1/node_modules/@paralleldrive/cuid2/index.js","../../../src/errors.ts","../../../src/serialize.ts","../../../src/transport/failure.ts","../../../src/transport.ts","../../../src/config.ts","../../../src/operation-events.ts","../../../src/operation-input.ts","../../../src/transport/strict-json.ts","../../../src/operation-policy.ts","../../../src/telemetry.ts","../../../src/operation.ts","../../../src/runtime-state.ts","../../../src/webhooks.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBig = exports.shrSL = exports.shrSH = exports.rotrSL = exports.rotrSH = exports.rotrBL = exports.rotrBH = exports.rotr32L = exports.rotr32H = exports.rotlSL = exports.rotlSH = exports.rotlBL = exports.rotlBH = exports.add5L = exports.add5H = exports.add4L = exports.add4H = exports.add3L = exports.add3H = void 0;\nexports.add = add;\nexports.fromBig = fromBig;\nexports.split = split;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.Hash = exports.nextTick = exports.swap32IfBE = exports.byteSwapIfBE = exports.swap8IfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.clean = clean;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.toBytes = toBytes;\nexports.kdfInputToBytes = kdfInputToBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.createHasher = createHasher;\nexports.createOptHasher = createOptHasher;\nexports.createXOFer = createXOFer;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nfunction u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nfunction byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.swap8IfBE = exports.isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexports.byteSwapIfBE = exports.swap8IfBE;\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexports.swap32IfBE = exports.isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nfunction bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nfunction kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n}\nexports.Hash = Hash;\n/** Wraps hash function, creating an interface on top of it */\nfunction createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructor = createHasher;\nexports.wrapConstructorWithOpts = createOptHasher;\nexports.wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = void 0;\nexports.keccakP = keccakP;\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nconst _u64_ts_1 = require(\"./_u64.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n (0, utils_ts_1.clean)(B);\n}\n/** Keccak sponge function. */\nclass Keccak extends utils_ts_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n (0, utils_ts_1.anumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_ts_1.u32)(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n (0, utils_ts_1.swap32IfBE)(this.state32);\n keccakP(this.state32, this.rounds);\n (0, utils_ts_1.swap32IfBE)(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n (0, utils_ts_1.aexists)(this, false);\n (0, utils_ts_1.abytes)(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_ts_1.anumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n (0, utils_ts_1.aoutput)(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.state);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexports.sha3_224 = (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexports.sha3_256 = (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexports.sha3_384 = (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexports.sha3_512 = (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexports.keccak_224 = (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexports.keccak_256 = (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexports.keccak_384 = (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexports.keccak_512 = (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexports.shake128 = (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexports.shake256 = (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","/* global global, window, module */\nconst { sha3_512: sha3 } = require(\"@noble/hashes/sha3\");\n\nconst defaultLength = 24;\nconst bigLength = 32;\n\nconst createEntropy = (length = 4, random = Math.random) => {\n let entropy = \"\";\n\n while (entropy.length < length) {\n entropy = entropy + Math.floor(random() * 36).toString(36);\n }\n return entropy;\n};\n\n/*\n * Adapted from https://github.com/juanelas/bigint-conversion\n * MIT License Copyright (c) 2018 Juan Hernández Serrano\n */\nfunction bufToBigInt(buf) {\n let bits = 8n;\n\n let value = 0n;\n for (const i of buf.values()) {\n const bi = BigInt(i);\n value = (value << bits) + bi;\n }\n return value;\n}\n\nconst hash = (input = \"\") => {\n // Drop the first character because it will bias the histogram\n // to the left.\n return bufToBigInt(sha3(input)).toString(36).slice(1);\n};\n\nconst alphabet = Array.from({ length: 26 }, (x, i) =>\n String.fromCharCode(i + 97)\n);\n\nconst randomLetter = (random) =>\n alphabet[Math.floor(random() * alphabet.length)];\n\n/*\nThis is a fingerprint of the host environment. It is used to help\nprevent collisions when generating ids in a distributed system.\nIf no global object is available, you can pass in your own, or fall back\non a random string.\n*/\nconst createFingerprint = ({\n globalObj = typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : {},\n random = Math.random,\n} = {}) => {\n const globals = Object.keys(globalObj).toString();\n const sourceString = globals.length\n ? globals + createEntropy(bigLength, random)\n : createEntropy(bigLength, random);\n\n return hash(sourceString).substring(0, bigLength);\n};\n\nconst createCounter = (count) => () => {\n return count++;\n};\n\n// ~22k hosts before 50% chance of initial counter collision\n// with a remaining counter range of 9.0e+15 in JavaScript.\nconst initialCountMax = 476782367;\n\nconst init = ({\n // Fallback if the user does not pass in a CSPRNG. This should be OK\n // because we don't rely solely on the random number generator for entropy.\n // We also use the host fingerprint, current time, and a session counter.\n random = Math.random,\n counter = createCounter(Math.floor(random() * initialCountMax)),\n length = defaultLength,\n fingerprint = createFingerprint({ random }),\n} = {}) => {\n return function cuid2() {\n const firstLetter = randomLetter(random);\n\n // If we're lucky, the `.toString(36)` calls may reduce hashing rounds\n // by shortening the input to the hash function a little.\n const time = Date.now().toString(36);\n const count = counter().toString(36);\n\n // The salt should be long enough to be globally unique across the full\n // length of the hash. For simplicity, we use the same length as the\n // intended id output.\n const salt = createEntropy(length, random);\n const hashInput = `${time + salt + count + fingerprint}`;\n\n return `${firstLetter + hash(hashInput).substring(1, length)}`;\n };\n};\n\nconst createId = init();\n\nconst isCuid = (id, { minLength = 2, maxLength = bigLength } = {}) => {\n const length = id.length;\n const regex = /^[0-9a-z]+$/;\n\n try {\n if (\n typeof id === \"string\" &&\n length >= minLength &&\n length <= maxLength &&\n regex.test(id)\n )\n return true;\n } finally {\n }\n\n return false;\n};\n\nmodule.exports.getConstants = () => ({ defaultLength, bigLength });\nmodule.exports.init = init;\nmodule.exports.createId = createId;\nmodule.exports.bufToBigInt = bufToBigInt;\nmodule.exports.createCounter = createCounter;\nmodule.exports.createFingerprint = createFingerprint;\nmodule.exports.isCuid = isCuid;\n","const { createId, init, getConstants, isCuid } = require(\"./src/index\");\n\nmodule.exports.createId = createId;\nmodule.exports.init = init;\nmodule.exports.getConstants = getConstants;\nmodule.exports.isCuid = isCuid;\n","export type RepostErrorCode =\n | \"CONFIGURATION\" | \"CLOSED\" | \"VALIDATION\" | \"SERIALIZATION\" | \"REQUEST_TOO_LARGE\"\n | \"DNS\" | \"CONNECT\" | \"PROXY\" | \"TLS\" | \"IO\" | \"ATTEMPT_TIMEOUT\"\n | \"OPERATION_DEADLINE\" | \"CANCELLED\" | \"OVERLOADED\" | \"RATE_LIMITED\"\n | \"HTTP_REJECTED\" | \"SERVER_FAILURE\" | \"RESPONSE_TOO_LARGE\"\n | \"RESPONSE_PROTOCOL\" | \"DESCRIPTOR_VERSION\";\n\nexport type DeliveryState = \"NOT_SENT\" | \"POSSIBLY_SENT\" | \"ACCEPTED\" | \"REJECTED\" | \"CANCELLED_UNKNOWN\";\nexport type HttpStatusClass = \"INFORMATIONAL\" | \"SUCCESS\" | \"REDIRECT\" | \"CLIENT_ERROR\" | \"SERVER_ERROR\";\nexport type RepostFailureReason =\n | \"DNS_NOT_FOUND\" | \"DNS_TIMEOUT\" | \"CONNECT_REFUSED\" | \"CONNECT_TIMEOUT\"\n | \"CONNECTION_RESET\" | \"CONNECTION_CLOSED\" | \"TLS_UNTRUSTED\"\n | \"TLS_CERTIFICATE_EXPIRED\" | \"TLS_CERTIFICATE_NOT_YET_VALID\"\n | \"TLS_HOSTNAME_MISMATCH\" | \"TLS_NEGOTIATION\" | \"PROXY_AUTH_REQUIRED\"\n | \"PROXY_CONNECT_FAILED\" | \"UNKNOWN\";\nexport type RepostCauseCategory =\n | \"API_KEY_PROVIDER\" | \"DEFAULT_GENERATOR\" | \"IDEMPOTENCY_GENERATOR\" | \"RETRY_ENTROPY\"\n | \"DNS_RESOLVER\" | \"PROXY_CREDENTIAL_PROVIDER\" | \"TLS_PROVIDER\" | \"CUSTOM_TRANSPORT\"\n | \"RESPONSE_BODY\" | \"OBSERVER\" | \"HTTP_RUNTIME\" | \"TRANSPORT_CLOSE\"\n | \"SCHEDULER_CLOSE\" | \"OPERATION_EXECUTOR_CLOSE\" | \"DNS_EXECUTOR_CLOSE\"\n | \"PROXY_CREDENTIAL_EXECUTOR_CLOSE\" | \"TLS_EXECUTOR_CLOSE\" | \"TERMINAL_SETTLEMENT_CLOSE\"\n | \"OBSERVER_CLOSE\" | \"UNKNOWN\";\nexport type ValidationIssueCode =\n | \"REQUIRED\" | \"NULL_NOT_ALLOWED\" | \"TYPE_MISMATCH\" | \"OUT_OF_RANGE\" | \"NON_FINITE\"\n | \"INVALID_DATETIME\" | \"INVALID_ENUM\" | \"INVALID_JSON\" | \"INVALID_UNICODE\"\n | \"COLLECTION_LIMIT\" | \"CYCLE\";\nexport type ConfigurationIssueCode = \"MISSING\" | \"CONFLICT\" | \"INVALID_VALUE\" | \"OUT_OF_RANGE\" | \"UNSUPPORTED\" | \"RESOURCE_MISMATCH\";\nexport type ClientOptionKey =\n | \"API_KEY\" | \"API_KEY_PROVIDER\" | \"BASE_URI\" | \"CONNECT_TIMEOUT\" | \"ATTEMPT_TIMEOUT\"\n | \"OPERATION_TIMEOUT\" | \"MAX_ATTEMPTS\" | \"MAX_IN_FLIGHT_OPERATIONS\" | \"MAX_BUFFERED_BYTES\"\n | \"RETRY_BASE_DELAY\" | \"RETRY_MAX_DELAY\" | \"HTTP_TRANSPORT_OPTIONS\" | \"TRANSPORT\"\n | \"EXECUTOR\" | \"SCHEDULER\" | \"OBSERVER\" | \"OBSERVER_EXECUTOR\" | \"TELEMETRY\"\n | \"DEFAULT_VALUE_GENERATORS\" | \"IDEMPOTENCY_KEY_GENERATOR\" | \"MONOTONIC_CLOCK\"\n | \"WALL_CLOCK\" | \"RETRY_ENTROPY\" | \"USER_AGENT_SUFFIX\";\n\nexport interface ValidationIssue {\n readonly code: ValidationIssueCode;\n readonly path: string;\n readonly message: string;\n}\n\nexport interface ConfigurationIssue {\n readonly code: ConfigurationIssueCode;\n readonly optionKeys: readonly ClientOptionKey[];\n}\n\nexport const errorCatalog: Readonly<Record<RepostErrorCode, string>> = Object.freeze({\n CONFIGURATION: \"Invalid transport configuration\",\n CLOSED: \"Client is closed\",\n VALIDATION: \"Message validation failed\",\n SERIALIZATION: \"Message serialization failed\",\n REQUEST_TOO_LARGE: \"Request exceeds the size limit\",\n DNS: \"DNS resolution failed\",\n CONNECT: \"Connection failed\",\n PROXY: \"Proxy connection failed\",\n TLS: \"TLS negotiation failed\",\n IO: \"Transport I/O failed\",\n ATTEMPT_TIMEOUT: \"Transport attempt timed out\",\n OPERATION_DEADLINE: \"Operation deadline exceeded\",\n CANCELLED: \"Operation cancelled\",\n OVERLOADED: \"Transport is at capacity\",\n RATE_LIMITED: \"Request was rate limited\",\n HTTP_REJECTED: \"Request was rejected\",\n SERVER_FAILURE: \"Server failed to process the request\",\n RESPONSE_TOO_LARGE: \"Response exceeds the size limit\",\n RESPONSE_PROTOCOL: \"Response protocol is invalid\",\n DESCRIPTOR_VERSION: \"Descriptor version is not supported\",\n});\n\nconst REMEDIATION_ERROR_CODES = new Set<RepostErrorCode>([\n \"DNS\",\n \"CONNECT\",\n \"PROXY\",\n \"TLS\",\n \"IO\",\n \"ATTEMPT_TIMEOUT\",\n]);\n\nexport interface RepostErrorDetails {\n readonly errorCode: RepostErrorCode;\n readonly deliveryState: DeliveryState;\n readonly retryable?: boolean;\n readonly operationId?: string | null;\n readonly idempotencyKey?: string | null;\n readonly attemptCount?: number;\n readonly httpStatus?: number | null;\n readonly failureReason?: RepostFailureReason | null;\n readonly causeCategory?: RepostCauseCategory | null;\n readonly compressedBytes?: number;\n readonly decompressedBytes?: number;\n readonly responseHeaderFields?: number;\n readonly responseHeaderBytes?: number;\n readonly truncated?: boolean;\n readonly validationIssues?: readonly ValidationIssue[];\n readonly configurationIssues?: readonly ConfigurationIssue[];\n readonly body?: unknown;\n readonly closeFailureCount?: number;\n readonly closeFailureCategories?: readonly RepostCauseCategory[];\n readonly issueCount?: number;\n readonly issuesTruncated?: boolean;\n readonly remediationKey?: string | null;\n}\n\nexport class RepostError extends Error {\n readonly errorCode: RepostErrorCode;\n readonly deliveryState: DeliveryState;\n readonly retryable: boolean;\n readonly operationId: string | null;\n readonly idempotencyKey: string | null;\n readonly attemptCount: number;\n readonly httpStatus: number | null;\n readonly failureReason: RepostFailureReason | null;\n readonly causeCategory: RepostCauseCategory | null;\n readonly compressedBytes: number;\n readonly decompressedBytes: number;\n readonly responseHeaderFields: number;\n readonly responseHeaderBytes: number;\n readonly truncated: boolean;\n readonly validationIssues: readonly ValidationIssue[];\n readonly configurationIssues: readonly ConfigurationIssue[];\n readonly closeFailureCount: number;\n readonly closeFailureCategories: readonly RepostCauseCategory[];\n readonly issueCount: number;\n readonly issuesTruncated: boolean;\n readonly remediationKey: string | null;\n\n constructor(details: RepostErrorDetails) {\n super(errorCatalog[details.errorCode]);\n this.name = new.target.name;\n this.errorCode = details.errorCode;\n this.deliveryState = details.deliveryState;\n this.retryable = details.retryable ?? false;\n this.operationId = details.operationId ?? null;\n this.idempotencyKey = details.idempotencyKey ?? null;\n this.attemptCount = details.attemptCount ?? 0;\n this.httpStatus = details.httpStatus ?? null;\n this.failureReason = details.failureReason ?? null;\n this.causeCategory = details.causeCategory ?? null;\n this.compressedBytes = details.compressedBytes ?? 0;\n this.decompressedBytes = details.decompressedBytes ?? 0;\n this.responseHeaderFields = details.responseHeaderFields ?? 0;\n this.responseHeaderBytes = details.responseHeaderBytes ?? 0;\n this.truncated = details.truncated ?? false;\n this.validationIssues = Object.freeze([...(details.validationIssues ?? [])]);\n this.configurationIssues = Object.freeze([...(details.configurationIssues ?? [])]);\n this.closeFailureCount = details.closeFailureCount ?? 0;\n this.closeFailureCategories = Object.freeze([...(details.closeFailureCategories ?? [])]);\n this.issueCount = details.issueCount ?? this.validationIssues.length + this.configurationIssues.length;\n this.issuesTruncated = details.issuesTruncated ?? false;\n this.remediationKey = details.remediationKey ?? remediationKey(details.errorCode, this.failureReason);\n }\n\n isRetryable(): boolean { return this.retryable; }\n}\n\nfunction remediationKey(code: RepostErrorCode, reason: RepostFailureReason | null): string | null {\n if (!REMEDIATION_ERROR_CODES.has(code)) return null;\n if (reason === \"CONNECTION_RESET\") return \"network.connection.reset\";\n if (reason === \"TLS_UNTRUSTED\") return \"network.tls.untrusted\";\n if (reason === \"TLS_HOSTNAME_MISMATCH\") return \"network.tls.hostname-mismatch\";\n if (reason === \"TLS_NEGOTIATION\") return \"network.tls.negotiation\";\n if (reason === \"PROXY_AUTH_REQUIRED\") return \"network.proxy.auth-required\";\n return reason === \"UNKNOWN\" ? \"network.unknown\" : null;\n}\n\nexport class RepostConfigurationError extends RepostError {}\nexport class RepostValidationError extends RepostError {}\nexport class RepostSerializationError extends RepostError {}\nexport class RepostTransportError extends RepostError {}\n\nexport class RepostPublishError extends RepostError {\n readonly status?: number;\n readonly body?: unknown;\n\n constructor(details: RepostErrorDetails);\n constructor(_legacyMessage: string, status?: number, body?: unknown);\n constructor(detailsOrMessage: RepostErrorDetails | string, status?: number, body?: unknown) {\n const details = typeof detailsOrMessage === \"string\"\n ? legacyPublishDetails(status, body)\n : detailsOrMessage;\n super(details);\n this.status = this.httpStatus ?? undefined;\n this.body = details.body;\n }\n}\n\nexport class RepostDescriptorVersionError extends RepostError {}\n\nfunction legacyPublishDetails(status: number | undefined, body: unknown): RepostErrorDetails {\n let errorCode: RepostErrorCode = \"HTTP_REJECTED\";\n if (status === undefined) errorCode = \"IO\";\n else if (status === 429) errorCode = \"RATE_LIMITED\";\n else if (status >= 500) errorCode = \"SERVER_FAILURE\";\n\n let deliveryState: DeliveryState = \"POSSIBLY_SENT\";\n if (status === undefined) deliveryState = \"NOT_SENT\";\n else if (status >= 400 && status < 500 && status !== 409 && status !== 429) deliveryState = \"REJECTED\";\n return {\n errorCode,\n deliveryState,\n retryable: status === undefined || status === 409 || status === 429 || status >= 500,\n httpStatus: status,\n body,\n };\n}\n","import { createId } from \"@paralleldrive/cuid2\";\n\nimport { RepostValidationError, type ValidationIssue, type ValidationIssueCode } from \"./errors\";\nimport type { DefaultSpec, EnumDescriptors, FieldDescriptor, Generators, ModelDescriptor } from \"./types\";\n\nconst encoder = new TextEncoder();\nconst MAX_ISSUES = 32;\nconst MAX_ISSUE_COUNT = 2_147_483_647;\nconst MAX_ISSUE_PATH_BYTES = 1_024;\nconst MAX_TOTAL_ISSUE_PATH_BYTES = 16_384;\nconst TRUNCATION_MARKER = \".<truncated>\";\n\n/** Fill the runtime's injectable clock and ID generators with real defaults. */\nexport function resolveGenerators(generators?: Generators): Required<Generators> {\n return {\n now: generators?.now ?? (() => new Date().toISOString()),\n uuid: generators?.uuid ?? (() => crypto.randomUUID()),\n cuid: generators?.cuid ?? (() => createId()),\n };\n}\n\n/**\n * Serialize a send input into its wire payload, driven by the generated model\n * descriptors: fields are emitted in declaration order under their `@map`'d\n * wire names, absent fields with an `@default` are injected (literals\n * verbatim, `now()`/`uuid()`/`cuid()` generated at send time), absent optional\n * fields are omitted, nested models recurse, and enum members serialize to\n * their (possibly `@map`'d) wire values. `generators` overrides the clock and\n * id sources for deterministic tests (the conformance suite's seam).\n */\nexport function serializeModel(\n models: Record<string, ModelDescriptor>,\n modelName: string,\n data: unknown,\n generators?: Generators,\n enums: EnumDescriptors = {},\n): Record<string, unknown> {\n validateModelDescriptors(models, enums);\n const collector = new ValidationCollector();\n let payload: Record<string, unknown> = {};\n try {\n payload = serializeModelAt(models, modelName, data, generators, enums, \"$\", collector);\n } catch (error) {\n if (!(error instanceof ValidationFault)) throw error;\n collector.add(error);\n }\n collector.throwIfAny();\n return payload;\n}\n\nfunction serializeModelAt(\n models: Record<string, ModelDescriptor>,\n modelName: string,\n data: unknown,\n generators: Generators | undefined,\n enums: EnumDescriptors,\n path: string,\n collector: ValidationCollector,\n): Record<string, unknown> {\n const descriptor = models[modelName];\n if (!descriptor) {\n throw new Error(`@repost/client: no serialization descriptor for model \\`${modelName}\\`.`);\n }\n if (typeof data !== \"object\" || data === null || Array.isArray(data)) {\n if (typeof data === \"bigint\" || typeof data === \"symbol\" || typeof data === \"function\") {\n validationError(\"INVALID_JSON\", path, \"value is not representable as JSON\");\n }\n let got: string = typeof data;\n if (data === null) got = \"null\";\n else if (Array.isArray(data)) got = \"an array\";\n throw new Error(`@repost/client: expected an object for model \\`${modelName}\\`, got ${got}.`);\n }\n const input = data as Record<string, unknown>;\n\n const payload: Record<string, unknown> = {};\n for (const field of descriptor.fields) {\n try {\n const schemaName = \"schemaName\" in field ? field.schemaName : field.name;\n const fieldPath = appendPath(path, schemaName);\n let value = input[schemaName];\n if (value === undefined) {\n if (field.default) {\n value = resolveDefault(field.default, generators);\n } else if (\"requiredInInput\" in field && field.requiredInInput) {\n validationError(\"REQUIRED\", fieldPath, \"required field is absent\");\n } else {\n continue;\n }\n }\n if (value === null && \"nullableInInput\" in field && !field.nullableInInput) {\n validationError(\"NULL_NOT_ALLOWED\", fieldPath, \"null is not allowed\");\n }\n const wireName = \"wireName\" in field ? field.wireName : field.wire ?? field.name;\n payload[wireName] = serializeValue(models, field, value, generators, enums, fieldPath, collector);\n } catch (error) {\n if (!(error instanceof ValidationFault)) throw error;\n collector.add(error);\n }\n }\n return payload;\n}\n\nfunction serializeValue(\n models: Record<string, ModelDescriptor>,\n field: FieldDescriptor,\n value: unknown,\n generators: Generators | undefined,\n enums: EnumDescriptors,\n path: string,\n collector: ValidationCollector,\n): unknown {\n if (value === null) return null;\n if (field.list) {\n if (Array.isArray(value)) {\n return value.map((item, index) => {\n const itemPath = `${path}[${index}]`;\n try {\n if (item === undefined) validationError(\"REQUIRED\", itemPath, \"required list element is absent\");\n if (item === null && \"scalarKind\" in field) {\n validationError(\"NULL_NOT_ALLOWED\", itemPath, \"null list elements are not allowed\");\n }\n return serializeItem(models, field, item, generators, enums, itemPath, collector);\n } catch (error) {\n if (!(error instanceof ValidationFault)) throw error;\n collector.add(error);\n return undefined;\n }\n });\n }\n if (\"scalarKind\" in field) {\n validationError(\"TYPE_MISMATCH\", path, \"expected a list\");\n }\n }\n return serializeItem(models, field, value, generators, enums, path, collector);\n}\n\nfunction serializeItem(\n models: Record<string, ModelDescriptor>,\n field: FieldDescriptor,\n value: unknown,\n generators: Generators | undefined,\n enums: EnumDescriptors,\n path: string,\n collector: ValidationCollector,\n): unknown {\n let model: string | undefined;\n if (\"scalarKind\" in field && field.scalarKind === \"model\") model = field.descriptorId;\n else if (\"model\" in field) model = field.model;\n if (model) {\n return serializeModelAt(models, model, value, generators, enums, path, collector);\n }\n let enumValues: Record<string, string> | undefined;\n if (\"scalarKind\" in field && field.scalarKind === \"enum\") {\n enumValues = enums[field.descriptorId ?? \"\"];\n } else if (\"enum\" in field) {\n enumValues = field.enum;\n }\n if (enumValues) {\n if (typeof value !== \"string\") validationError(\"TYPE_MISMATCH\", path, \"expected an enum member\");\n const wire = enumValues[value as string];\n if (wire === undefined) {\n if (!(\"scalarKind\" in field)) return value;\n validationError(\"INVALID_ENUM\", path, \"unknown enum member\");\n }\n return wire;\n }\n if (\"scalarKind\" in field) {\n return validateScalar(field.scalarKind, value, path);\n }\n return value;\n}\n\nfunction validateScalar(kind: string, value: unknown, path: string): unknown {\n switch (kind) {\n case \"string\":\n if (typeof value !== \"string\") validationError(\"TYPE_MISMATCH\", path, \"expected a string\");\n if (hasUnpairedSurrogate(value)) validationError(\"INVALID_UNICODE\", path, \"unpaired UTF-16 surrogates are not allowed\");\n return value;\n case \"boolean\":\n if (typeof value !== \"boolean\") validationError(\"TYPE_MISMATCH\", path, \"expected a boolean\");\n return value;\n case \"int64\":\n if (typeof value !== \"number\") validationError(\"TYPE_MISMATCH\", path, \"expected an integer\");\n if (!Number.isFinite(value)) validationError(\"NON_FINITE_NUMBER\", path, \"non-finite numbers are not allowed\");\n if (!Number.isSafeInteger(value)) validationError(\"OUT_OF_RANGE\", path, \"integer is outside the safe range\");\n return value;\n case \"float64\":\n if (typeof value !== \"number\") validationError(\"TYPE_MISMATCH\", path, \"expected a number\");\n if (!Number.isFinite(value)) validationError(\"NON_FINITE_NUMBER\", path, \"non-finite numbers are not allowed\");\n return value;\n case \"datetime\":\n if (typeof value !== \"string\") validationError(\"TYPE_MISMATCH\", path, \"expected a datetime string\");\n if (!/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/u.test(value)\n || Number.isNaN(Date.parse(value))\n || new Date(value).toISOString() !== value) {\n validationError(\"INVALID_DATETIME\", path, \"expected an ISO-8601 UTC datetime\");\n }\n return value;\n case \"json\":\n return canonicalJson(value, path, new Set<object>());\n default:\n return value;\n }\n}\n\nfunction canonicalJson(value: unknown, path: string, activeAncestors: Set<object>): unknown {\n if (typeof value === \"number\" && !Number.isFinite(value)) {\n validationError(\"NON_FINITE_NUMBER\", path, \"non-finite numbers are not allowed\");\n }\n if (typeof value === \"string\") {\n if (hasUnpairedSurrogate(value)) validationError(\"INVALID_UNICODE\", path, \"unpaired UTF-16 surrogates are not allowed\");\n return value;\n }\n if (value === null || typeof value === \"boolean\" || typeof value === \"number\") return value;\n if (typeof value !== \"object\") validationError(\"INVALID_JSON\", path, \"value is not representable as JSON\");\n if (activeAncestors.has(value)) {\n validationError(\"INVALID_JSON\", path, \"cyclic JSON values are not allowed\");\n }\n\n if (value instanceof Map) {\n activeAncestors.add(value);\n try {\n const entries = [...value.entries()];\n for (const [key] of entries) {\n if (typeof key !== \"string\") validationError(\"INVALID_JSON\", `${path}[{*}]`, \"map keys must be strings\");\n if (hasUnpairedSurrogate(key)) validationError(\"INVALID_UNICODE\", `${path}[{*}]`, \"map key contains an unpaired UTF-16 surrogate\");\n }\n const result: Record<string, unknown> = {};\n for (const [key, entry] of entries.sort(([left], [right]) => compareUtf8Bytes(left as string, right as string))) {\n result[key as string] = canonicalJson(entry, `${path}[{*}]`, activeAncestors);\n }\n return result;\n } finally {\n activeAncestors.delete(value);\n }\n }\n\n activeAncestors.add(value);\n try {\n if (Array.isArray(value)) {\n return value.map((item, index) => canonicalJson(item, `${path}[${index}]`, activeAncestors));\n }\n const record = value as Record<string, unknown>;\n const result: Record<string, unknown> = {};\n const keys = Object.keys(record);\n if (keys.some(hasUnpairedSurrogate)) validationError(\"INVALID_UNICODE\", `${path}[{*}]`, \"map key contains an unpaired UTF-16 surrogate\");\n for (const key of keys.sort(compareUtf8Bytes)) {\n result[key] = canonicalJson(record[key], `${path}[{*}]`, activeAncestors);\n }\n return result;\n } finally {\n activeAncestors.delete(value);\n }\n}\n\nfunction compareUtf8Bytes(left: string, right: string): number {\n const leftBytes = encoder.encode(left);\n const rightBytes = encoder.encode(right);\n const length = Math.min(leftBytes.length, rightBytes.length);\n for (let index = 0; index < length; index += 1) {\n const difference = (leftBytes[index] ?? 0) - (rightBytes[index] ?? 0);\n if (difference !== 0) return difference;\n }\n return leftBytes.length - rightBytes.length;\n}\n\nfunction hasUnpairedSurrogate(value: string): boolean {\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n if (code >= 0xd800 && code <= 0xdbff) {\n const next = value.charCodeAt(index + 1);\n if (!(next >= 0xdc00 && next <= 0xdfff)) return true;\n index += 1;\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n return true;\n }\n }\n return false;\n}\n\nexport function compareUnicodeScalarValues(left: string, right: string): number {\n const leftScalars = Array.from(left, (value) => value.codePointAt(0) ?? 0);\n const rightScalars = Array.from(right, (value) => value.codePointAt(0) ?? 0);\n const length = Math.min(leftScalars.length, rightScalars.length);\n for (let index = 0; index < length; index += 1) {\n const difference = (leftScalars[index] ?? 0) - (rightScalars[index] ?? 0);\n if (difference !== 0) return difference;\n }\n return leftScalars.length - rightScalars.length;\n}\n\nconst SCALAR_KINDS = new Set([\n \"string\",\n \"boolean\",\n \"int64\",\n \"float64\",\n \"datetime\",\n \"json\",\n \"enum\",\n \"model\",\n]);\n\nexport function validateModelDescriptors(\n models: Record<string, ModelDescriptor>,\n enums: EnumDescriptors,\n): void {\n for (const modelName of Object.keys(models).sort(compareUnicodeScalarValues)) {\n const model = models[modelName];\n if (!model) continue;\n model.fields.forEach((field, index) => {\n if (!(\"scalarKind\" in field)) return;\n const inputPath = appendPath(\"$\", field.schemaName);\n if (!SCALAR_KINDS.has(String(field.scalarKind))) {\n descriptorError(\"UNKNOWN_SCALAR_KIND\", inputPath, `unknown scalar kind '${String(field.scalarKind)}'`);\n }\n if (field.scalarKind !== \"enum\" && field.scalarKind !== \"model\") return;\n const referencePath = `${appendPath(\"$.models\", modelName)}.fields[${index}].descriptorId`;\n const registry = field.scalarKind === \"enum\" ? enums : models;\n if (!field.descriptorId || !Object.prototype.hasOwnProperty.call(registry, field.descriptorId)) {\n descriptorError(\n \"INVALID_DESCRIPTOR_REFERENCE\",\n referencePath,\n `${field.scalarKind} descriptor '${field.descriptorId ?? \"\"}' does not exist`,\n );\n }\n });\n }\n}\n\nfunction descriptorError(code: string, path: string, message: string): never {\n throw new Error(`@repost/client: [${code}] ${path}: ${message}.`);\n}\n\nexport function appendPath(path: string, key: string): string {\n return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)\n ? `${path}.${key}`\n : `${path}[${JSON.stringify(key)}]`;\n}\n\nfunction validationError(code: string, path: string, message: string): never {\n throw new ValidationFault(validationIssueCode(code), path, message);\n}\n\nclass ValidationFault extends Error {\n constructor(\n readonly code: ValidationIssueCode,\n readonly path: string,\n readonly detail: string,\n ) {\n super(`@repost/client: [${code}] ${path}: ${detail}.`);\n }\n}\n\nclass ValidationCollector {\n private readonly issues: ValidationIssue[] = [];\n private issueCount = 0;\n private retainedPathBytes = 0;\n\n add(fault: ValidationFault): void {\n this.issueCount = Math.min(this.issueCount + 1, MAX_ISSUE_COUNT);\n if (this.issues.length >= MAX_ISSUES) return;\n const path = truncateIssuePath(fault.path);\n const pathBytes = encoder.encode(path).length;\n if (this.retainedPathBytes + pathBytes > MAX_TOTAL_ISSUE_PATH_BYTES) return;\n this.retainedPathBytes += pathBytes;\n this.issues.push({ code: fault.code, path, message: fault.message });\n }\n\n throwIfAny(): void {\n if (this.issueCount === 0) return;\n throw new RepostValidationError({\n errorCode: \"VALIDATION\",\n deliveryState: \"NOT_SENT\",\n validationIssues: this.issues,\n issueCount: this.issueCount,\n issuesTruncated: this.issueCount !== this.issues.length,\n });\n }\n}\n\nfunction validationIssueCode(code: string): ValidationIssueCode {\n if (code === \"REQUIRED_FIELD\") return \"REQUIRED\";\n if (code === \"NULL_LIST_ELEMENT\") return \"NULL_NOT_ALLOWED\";\n if (code === \"NON_FINITE_NUMBER\") return \"NON_FINITE\";\n if (code === \"UNKNOWN_SCALAR_KIND\" || code === \"INVALID_DESCRIPTOR_REFERENCE\") return \"TYPE_MISMATCH\";\n return code as ValidationIssueCode;\n}\n\nfunction truncateIssuePath(path: string): string {\n if (encoder.encode(path).length <= MAX_ISSUE_PATH_BYTES) return path;\n let retained = \"$\";\n const segments = path.slice(1).match(/(?:\\.[A-Za-z_$][A-Za-z0-9_$]*|\\[(?:0|[1-9][0-9]*)\\]|\\[\\{\\*\\}\\])/gu) ?? [];\n for (const segment of segments) {\n if (encoder.encode(retained + segment + TRUNCATION_MARKER).length > MAX_ISSUE_PATH_BYTES) break;\n retained += segment;\n }\n return retained + TRUNCATION_MARKER;\n}\n\nfunction resolveDefault(spec: DefaultSpec, generators?: Generators): unknown {\n const resolved = resolveGenerators(generators);\n switch (spec.kind) {\n case \"literal\":\n return spec.value;\n case \"now\":\n return resolved.now();\n case \"uuid\":\n return resolved.uuid();\n case \"cuid\":\n return resolved.cuid();\n }\n}\n","import type { AttemptOutcome } from \"../types\";\n\ntype FailureOutcome = Extract<AttemptOutcome, { kind: \"failure\" }>;\n\nexport function classifyNetworkFailure(error: unknown, committed = false): FailureOutcome | null {\n const code = errorCode(error);\n if (code === \"ENOTFOUND\" || code === \"EAI_AGAIN\") {\n return { kind: \"failure\", code: \"DNS\", reason: code === \"ENOTFOUND\" ? \"DNS_NOT_FOUND\" : \"DNS_TIMEOUT\", committed: false };\n }\n if (code === \"ECONNREFUSED\" || code === \"UND_ERR_CONNECT_TIMEOUT\") {\n return { kind: \"failure\", code: \"CONNECT\", reason: code === \"ECONNREFUSED\" ? \"CONNECT_REFUSED\" : \"CONNECT_TIMEOUT\", committed: false };\n }\n if (code === \"CERT_HAS_EXPIRED\") return { kind: \"failure\", code: \"TLS\", reason: \"TLS_CERTIFICATE_EXPIRED\", committed };\n if (code === \"CERT_NOT_YET_VALID\") return { kind: \"failure\", code: \"TLS\", reason: \"TLS_CERTIFICATE_NOT_YET_VALID\", committed };\n if (code === \"ERR_TLS_CERT_ALTNAME_INVALID\") return { kind: \"failure\", code: \"TLS\", reason: \"TLS_HOSTNAME_MISMATCH\", committed };\n if (code === \"DEPTH_ZERO_SELF_SIGNED_CERT\" || code === \"UNABLE_TO_VERIFY_LEAF_SIGNATURE\" || code === \"SELF_SIGNED_CERT_IN_CHAIN\") {\n return { kind: \"failure\", code: \"TLS\", reason: \"TLS_UNTRUSTED\", committed };\n }\n if (code.startsWith(\"ERR_TLS\") || code.startsWith(\"ERR_SSL\")) {\n return { kind: \"failure\", code: \"TLS\", reason: \"TLS_NEGOTIATION\", committed };\n }\n if (code === \"REPOST_DNS_RESOLVER\") {\n return { kind: \"failure\", code: \"DNS\", reason: \"UNKNOWN\", committed: false, causeCategory: \"DNS_RESOLVER\", retryable: false };\n }\n if (code === \"REPOST_PROXY_AUTH_REQUIRED\") {\n return { kind: \"failure\", code: \"PROXY\", reason: \"PROXY_AUTH_REQUIRED\", committed: false, retryable: false };\n }\n if (code === \"REPOST_PROXY_CREDENTIAL_PROVIDER\") {\n return { kind: \"failure\", code: \"PROXY\", reason: \"PROXY_AUTH_REQUIRED\", committed: false, causeCategory: \"PROXY_CREDENTIAL_PROVIDER\", retryable: false };\n }\n if (code === \"REPOST_PROXY_CONNECT_FAILED\") {\n return { kind: \"failure\", code: \"PROXY\", reason: \"PROXY_CONNECT_FAILED\", committed: false };\n }\n return null;\n}\n\nexport function errorCode(error: unknown): string {\n if (!error || typeof error !== \"object\") return \"\";\n const direct = (error as { code?: unknown }).code;\n if (typeof direct === \"string\") return direct;\n const cause = (error as { cause?: unknown }).cause;\n return cause === error ? \"\" : errorCode(cause);\n}\n","import { RepostConfigurationError, type RepostFailureReason } from \"./errors\";\nimport { classifyNetworkFailure, errorCode } from \"./transport/failure\";\nimport type { AttemptOutcome, AttemptRequest, Transport } from \"./types\";\n\nconst RESPONSE_LIMIT_BYTES = 1_048_576;\n\nexport { RepostPublishError } from \"./errors\";\n\nexport interface HttpTransportOptions {\n /** Portable fetch implementation. Defaults to `globalThis.fetch` at attempt time. */\n fetch?: typeof fetch;\n /** @deprecated Runtime retries are configured with `RepostClientOptions.maxAttempts`. */\n maxRetries?: number;\n /** @deprecated Runtime backoff is configured with `RepostClientOptions.retryBaseDelayMs`. */\n baseDelayMs?: number;\n /** @deprecated Use `RepostClientOptions.attemptTimeoutMs`. */\n timeoutMs?: number;\n tls?: {\n caCertificates?: readonly string[];\n minVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n maxVersion?: \"TLSv1.2\" | \"TLSv1.3\";\n ciphers?: readonly string[];\n clientCertificate?: { certificate: string; key: string; passphrase?: string };\n };\n proxy?: {\n url: string;\n credentialsProvider?: () => { username: string; password: string } | Promise<{ username: string; password: string }>;\n };\n dnsResolver?: (host: string) => Promise<{ address: string; family: 4 | 6 }[]>;\n http2?: boolean;\n maxConnectionsPerOrigin?: number;\n connectionLifetimeMs?: number;\n connectionIdleTimeoutMs?: number;\n}\n\n/** Portable one-attempt fetch transport. Retry and deadlines belong to the runtime. */\nexport function createHttpTransport(options: HttpTransportOptions = {}): Transport {\n rejectRuntimeOptions(options);\n return {\n async send(request: AttemptRequest): Promise<AttemptOutcome> {\n const fetchImpl = options.fetch ?? ((input: string | URL | Request, init?: RequestInit) => globalThis.fetch(input, init));\n const requestHeaders = new Headers();\n for (const [name, value] of request.headers) requestHeaders.append(name, value);\n request.commitTracker.markCommitted();\n try {\n const response = await fetchImpl(request.url, {\n method: \"POST\",\n headers: requestHeaders,\n body: Uint8Array.from(request.bodyBytes).buffer,\n redirect: \"manual\",\n signal: request.signal,\n });\n const headers: Record<string, string[]> = {};\n response.headers.forEach((value, name) => {\n (headers[name.toLowerCase()] ??= []).push(value);\n });\n const { bytes, truncated } = await readBounded(response.body, RESPONSE_LIMIT_BYTES);\n return {\n kind: \"response\",\n status: response.status,\n headers,\n bodyBytes: bytes,\n compressedBytes: bytes.length,\n decompressedBytes: bytes.length,\n truncated,\n };\n } catch (error) {\n return classifyFetchFailure(error, request.commitTracker.committed);\n }\n },\n };\n}\n\n/** Explicit portable transport for edge/worker runtimes. */\nexport const createFetchTransport = createHttpTransport;\n\n/** Selects the production Node lane; the package supports Node 20 and newer. */\nexport function resolveDefaultTransport(options: HttpTransportOptions = {}): Transport {\n return createNodeTransport(options);\n}\n\n/** Production Node transport, loaded on first use so fetch-only bundles omit Undici. */\nexport function createNodeTransport(options: HttpTransportOptions = {}): Transport {\n rejectRuntimeOptions(options);\n let loaded: Promise<Transport> | undefined;\n const load = () => loaded ??= import(\"./transport/node\").then((module) => module.createNodeTransport(options));\n return {\n async send(request) {\n return (await load()).send(request);\n },\n async close() {\n if (loaded) await (await loaded).close?.();\n },\n };\n}\n\n/** @deprecated Prefer the runtime-selected transport. */\nexport const httpTransport: Transport = createHttpTransport();\n\nfunction rejectRuntimeOptions(options: HttpTransportOptions): void {\n if (options.maxRetries === undefined && options.baseDelayMs === undefined && options.timeoutMs === undefined) return;\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\",\n deliveryState: \"NOT_SENT\",\n configurationIssues: [{ code: \"UNSUPPORTED\", optionKeys: [\"HTTP_TRANSPORT_OPTIONS\"] }],\n });\n}\n\nasync function readBounded(stream: ReadableStream<Uint8Array> | null, limit: number): Promise<{ bytes: Uint8Array; truncated: boolean }> {\n if (!stream) return { bytes: new Uint8Array(), truncated: false };\n const reader = stream.getReader();\n const chunks: Uint8Array[] = [];\n let total = 0;\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (!value) continue;\n const room = limit - total;\n if (value.length > room) {\n if (room > 0) chunks.push(value.slice(0, room));\n total = limit;\n await reader.cancel();\n return { bytes: concatenate(chunks, total), truncated: true };\n }\n chunks.push(value);\n total += value.length;\n }\n return { bytes: concatenate(chunks, total), truncated: false };\n } finally {\n reader.releaseLock();\n }\n}\n\nfunction concatenate(chunks: Uint8Array[], total: number): Uint8Array {\n const bytes = new Uint8Array(total);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes;\n}\n\nfunction classifyFetchFailure(error: unknown, committed: boolean): AttemptOutcome {\n const classified = classifyNetworkFailure(error, committed);\n if (classified) return classified;\n if (error instanceof Error && (error.name === \"TimeoutError\" || error.name === \"AbortError\")) {\n return { kind: \"failure\", code: \"ATTEMPT_TIMEOUT\", reason: null, committed };\n }\n const code = errorCode(error);\n let reason: RepostFailureReason = \"UNKNOWN\";\n if (code === \"ECONNRESET\") reason = \"CONNECTION_RESET\";\n else if (code === \"UND_ERR_SOCKET\") reason = \"CONNECTION_CLOSED\";\n return { kind: \"failure\", code: \"IO\", reason, committed };\n}\n","import { createId } from \"@paralleldrive/cuid2\";\n\nimport { RepostConfigurationError } from \"./errors\";\nimport type { Generators, RepostClientOptions, RetryEntropy, Scheduler, Transport } from \"./types\";\nimport { PACKAGE_VERSION } from \"./version\";\n\nconst DEFAULT_API_URL = \"https://api.repost.sh\";\nconst MAX_DURATION_MS = 9_223_372_036_854;\nconst encoder = new TextEncoder();\n\nexport interface ResolvedClientOptions {\n readonly apiKey?: string;\n readonly apiKeyProvider?: () => string | Promise<string>;\n readonly apiUrl: string;\n readonly transport?: Transport;\n readonly httpTransportOptions?: import(\"./transport\").HttpTransportOptions;\n readonly generators?: Generators;\n readonly attemptTimeoutMs: number;\n readonly operationTimeoutMs: number;\n readonly connectTimeoutMs: number;\n readonly maxAttempts: number;\n readonly retryBaseDelayMs: number;\n readonly retryMaxDelayMs: number;\n readonly maxInFlightOperations: number;\n readonly maxBufferedBytes: number;\n readonly idempotencyKeyGenerator: (() => string) | false;\n readonly retryEntropy: RetryEntropy;\n readonly monotonicClock: () => number;\n readonly wallClock: () => number;\n readonly scheduler: Scheduler;\n readonly userAgent: string;\n readonly observer?: import(\"./observer\").RepostObserver;\n readonly telemetry?: import(\"./telemetry\").RepostTelemetry;\n}\n\nexport function snapshotOptions(options: RepostClientOptions): ResolvedClientOptions {\n if (options.apiKey !== undefined && options.apiKeyProvider !== undefined) {\n invalid(\"CONFLICT\", [\"API_KEY\", \"API_KEY_PROVIDER\"]);\n }\n if (options.transport !== undefined && options.httpTransportOptions !== undefined) {\n invalid(\"CONFLICT\", [\"HTTP_TRANSPORT_OPTIONS\", \"TRANSPORT\"]);\n }\n const attemptTimeoutMs = duration(options.attemptTimeoutMs ?? options.httpTransportOptions?.timeoutMs ?? 30_000, \"ATTEMPT_TIMEOUT\");\n const operationTimeoutMs = duration(options.operationTimeoutMs ?? 120_000, \"OPERATION_TIMEOUT\");\n const connectTimeoutMs = duration(options.connectTimeoutMs ?? 10_000, \"CONNECT_TIMEOUT\");\n const retryBaseDelayMs = duration(options.retryBaseDelayMs ?? options.httpTransportOptions?.baseDelayMs ?? 250, \"RETRY_BASE_DELAY\");\n const retryMaxDelayMs = duration(options.retryMaxDelayMs ?? 60_000, \"RETRY_MAX_DELAY\");\n if (options.retryBaseDelayMs !== undefined && options.retryMaxDelayMs !== undefined && retryBaseDelayMs > retryMaxDelayMs) {\n invalid(\"CONFLICT\", [\"RETRY_BASE_DELAY\", \"RETRY_MAX_DELAY\"]);\n }\n const maxAttempts = integerRange(options.maxAttempts ?? ((options.httpTransportOptions?.maxRetries ?? 3) + 1), 1, 10, \"MAX_ATTEMPTS\");\n const maxInFlightOperations = integerRange(options.maxInFlightOperations ?? 256, 1, 65_536, \"MAX_IN_FLIGHT_OPERATIONS\");\n const maxBufferedBytes = integerRange(options.maxBufferedBytes ?? 67_108_864, 4_194_304, 1_073_741_824, \"MAX_BUFFERED_BYTES\");\n if (options.userAgentSuffix !== undefined && !/^[\\x21-\\x7e](?:[\\x20-\\x7e]{0,254}[\\x21-\\x7e])?$/.test(options.userAgentSuffix)) {\n invalid(\"INVALID_VALUE\", [\"USER_AGENT_SUFFIX\"]);\n }\n const fixedApiKey = options.apiKey ?? options.token;\n if (fixedApiKey !== undefined && (!/^[\\x20-\\x7e]{1,4096}$/.test(fixedApiKey) || !/[^ ]/.test(fixedApiKey))) {\n invalid(\"INVALID_VALUE\", [\"API_KEY\"]);\n }\n const apiKey = fixedApiKey ?? process.env.REPOST_SEND_API_KEY ?? process.env.REPOST_TOKEN;\n\n return Object.freeze({\n apiKey,\n apiKeyProvider: options.apiKeyProvider,\n apiUrl: canonicalizeBaseUrl(options.apiUrl ?? process.env.REPOST_API_URL ?? DEFAULT_API_URL),\n transport: options.transport,\n httpTransportOptions: snapshotHttpTransportOptions(options.httpTransportOptions),\n generators: options.generators && Object.freeze({ ...options.generators }),\n attemptTimeoutMs,\n operationTimeoutMs,\n connectTimeoutMs,\n maxAttempts,\n retryBaseDelayMs,\n retryMaxDelayMs,\n maxInFlightOperations,\n maxBufferedBytes,\n idempotencyKeyGenerator: options.idempotencyKeyGenerator ?? (() => createId()),\n retryEntropy: options.retryEntropy ?? cryptoRetryEntropy,\n monotonicClock: options.monotonicClock ?? (() => performance.now()),\n wallClock: options.wallClock ?? (() => Date.now()),\n scheduler: options.scheduler ?? realScheduler,\n userAgent: `repost-client-typescript/${PACKAGE_VERSION}${options.userAgentSuffix ? ` ${options.userAgentSuffix}` : \"\"}`,\n observer: options.observer,\n telemetry: options.telemetry,\n });\n}\n\nfunction snapshotHttpTransportOptions(\n options: import(\"./transport\").HttpTransportOptions | undefined,\n): import(\"./transport\").HttpTransportOptions | undefined {\n if (!options) return undefined;\n const { maxRetries: _maxRetries, baseDelayMs: _baseDelayMs, timeoutMs: _timeoutMs, ...transportOptions } = options;\n return Object.freeze({\n ...transportOptions,\n tls: options.tls && Object.freeze({\n ...options.tls,\n caCertificates: options.tls.caCertificates && Object.freeze([...options.tls.caCertificates]),\n ciphers: options.tls.ciphers && Object.freeze([...options.tls.ciphers]),\n clientCertificate: options.tls.clientCertificate && Object.freeze({ ...options.tls.clientCertificate }),\n }),\n proxy: options.proxy && Object.freeze({ ...options.proxy }),\n });\n}\n\nexport function canonicalizeBaseUrl(raw: string): string {\n if (encoder.encode(raw).length > 2_048 || !/^[\\x00-\\x7f]+$/.test(raw)) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n const match = /^(https?):\\/\\/([^/?#]+)(\\/[^?#]*)?$/.exec(raw);\n if (!match) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n const [, scheme, authority, rawPath = \"\"] = match;\n if (authority.length === 0 || encoder.encode(authority).length > 512 || authority.includes(\"@\")) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n\n const { host, port } = parseAuthority(authority);\n if (host !== host.toLowerCase() || !validHost(scheme, host)) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n if (port !== undefined) {\n if (/^-?[0-9]+$/u.test(port) && (Number(port) < 1 || Number(port) > 65_535)) invalid(\"OUT_OF_RANGE\", [\"BASE_URI\"]);\n if (!/^[1-9][0-9]*$/u.test(port)) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n }\n if (encoder.encode(rawPath).length > 1_536 || !validPath(rawPath)) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n\n const path = rawPath.replace(/\\/+$/, \"\");\n const base = `${scheme}://${authority}${path}`;\n const endpoint = path.endsWith(\"/v1/messages\") ? base : `${base}/v1/messages`;\n if (encoder.encode(new URL(endpoint).pathname).length > 2_048 || encoder.encode(endpoint).length > 4_096) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n return base;\n}\n\nexport function endpointUrl(base: string): string {\n return base.endsWith(\"/v1/messages\") ? base : `${base}/v1/messages`;\n}\n\nfunction duration(value: number, key: \"CONNECT_TIMEOUT\" | \"ATTEMPT_TIMEOUT\" | \"OPERATION_TIMEOUT\" | \"RETRY_BASE_DELAY\" | \"RETRY_MAX_DELAY\"): number {\n if (!Number.isSafeInteger(value) || value < 1 || value > MAX_DURATION_MS) invalid(\"OUT_OF_RANGE\", [key]);\n return value;\n}\n\nfunction integerRange(\n value: number,\n min: number,\n max: number,\n key: \"MAX_ATTEMPTS\" | \"MAX_IN_FLIGHT_OPERATIONS\" | \"MAX_BUFFERED_BYTES\",\n): number {\n if (!Number.isSafeInteger(value) || value < min || value > max) invalid(\"OUT_OF_RANGE\", [key]);\n return value;\n}\n\nfunction parseAuthority(authority: string): { host: string; port?: string } {\n if (authority.startsWith(\"[\")) {\n const end = authority.indexOf(\"]\");\n if (end < 0) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n const suffix = authority.slice(end + 1);\n if (suffix !== \"\" && !suffix.startsWith(\":\")) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n return { host: authority.slice(0, end + 1), port: suffix === \"\" ? undefined : suffix.slice(1) };\n }\n const colon = authority.lastIndexOf(\":\");\n if (colon < 0) return { host: authority };\n if (authority.indexOf(\":\") !== colon) invalid(\"INVALID_VALUE\", [\"BASE_URI\"]);\n return { host: authority.slice(0, colon), port: authority.slice(colon + 1) };\n}\n\nfunction validHost(scheme: string, host: string): boolean {\n if (scheme === \"http\") {\n if (host === \"localhost\" || host === \"[::1]\") return true;\n const parts = host.split(\".\");\n return parts.length === 4\n && parts.every((part) => /^(0|[1-9][0-9]{0,2})$/.test(part) && Number(part) <= 255)\n && parts[0] === \"127\";\n }\n if (host.startsWith(\"[\")) {\n try {\n return new URL(`https://${host}`).hostname === host;\n } catch {\n return false;\n }\n }\n if (!/^[a-z0-9.-]+$/.test(host) || host.endsWith(\".\") || host.includes(\"..\")) return false;\n const parts = host.split(\".\");\n if (parts.every((part) => /^[0-9]+$/.test(part))) {\n return parts.length === 4\n && parts.every((part) => /^(0|[1-9][0-9]{0,2})$/.test(part) && Number(part) <= 255);\n }\n return parts.every((part) => /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(part));\n}\n\nfunction validPath(path: string): boolean {\n if (!/^(?:[A-Za-z0-9._~!$&'()*+,;=:@/-]|%[0-9A-F]{2})*$/.test(path)) return false;\n if (/%(?:2F|5C)/.test(path)) return false;\n return !path.split(\"/\").some((segment) => segment === \".\" || segment === \"..\");\n}\n\nfunction invalid(code: \"CONFLICT\" | \"INVALID_VALUE\" | \"OUT_OF_RANGE\", optionKeys: import(\"./errors\").ClientOptionKey[]): never {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\",\n deliveryState: \"NOT_SENT\",\n configurationIssues: [{ code, optionKeys }],\n });\n}\n\nconst cryptoRetryEntropy: RetryEntropy = {\n nextInt(exclusiveBound) {\n if (!Number.isSafeInteger(exclusiveBound) || exclusiveBound < 1 || exclusiveBound > 0x1_0000_0000) throw new RangeError(\"invalid entropy bound\");\n const limit = Math.floor(0x1_0000_0000 / exclusiveBound) * exclusiveBound;\n const sample = new Uint32Array(1);\n do crypto.getRandomValues(sample); while ((sample[0] ?? 0) >= limit);\n return (sample[0] ?? 0) % exclusiveBound;\n },\n};\n\nconst realScheduler: Scheduler = {\n sleep(ms, signal) {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) return reject(signal.reason);\n const timer = setTimeout(resolve, ms);\n signal?.addEventListener(\"abort\", () => {\n clearTimeout(timer);\n reject(signal.reason);\n }, { once: true });\n });\n },\n};\n","import type { RepostError } from \"./errors\";\nimport type { AttemptSummary, ObserverEvent, ObserverOutcome } from \"./observer\";\nimport type { TelemetryAttemptEnd } from \"./telemetry\";\nimport type { AttemptOutcome } from \"./types\";\n\nexport function observerEvent(\n kind: ObserverEvent[\"kind\"],\n operationId: string,\n timestampMs: number,\n values: Partial<ObserverEvent> = {},\n): ObserverEvent {\n return Object.freeze({\n schemaVersion: 1 as const,\n kind,\n operationId,\n timestampMs,\n attemptNumber: null,\n durationMs: null,\n outcome: null,\n errorCode: null,\n deliveryState: null,\n httpStatusClass: null,\n retryDelayMs: null,\n operationStartedAtMs: null,\n operationEndedAtMs: null,\n attemptSummaries: Object.freeze([]),\n ...values,\n });\n}\n\nexport function attemptSummary(\n attemptNumber: number,\n outcome: ObserverOutcome,\n error: RepostError | null,\n attempt: AttemptOutcome,\n durationMs: number,\n): AttemptSummary {\n let httpStatusClass: AttemptSummary[\"httpStatusClass\"] = null;\n if (attempt.kind === \"response\") httpStatusClass = statusClass(attempt.status);\n else if (attempt.httpStatus !== undefined && attempt.httpStatus !== null) {\n httpStatusClass = statusClass(attempt.httpStatus);\n }\n return Object.freeze({\n attemptNumber,\n outcome,\n errorCode: error?.errorCode ?? null,\n deliveryState: error?.deliveryState ?? (outcome === \"ACCEPTED\" ? \"ACCEPTED\" : null),\n httpStatusClass,\n durationMs: Math.max(0, durationMs),\n });\n}\n\nexport function statusClass(status: number): AttemptSummary[\"httpStatusClass\"] {\n if (status < 200) return \"INFORMATIONAL\";\n if (status < 300) return \"SUCCESS\";\n if (status < 400) return \"REDIRECT\";\n if (status < 500) return \"CLIENT_ERROR\";\n return \"SERVER_ERROR\";\n}\n\nexport function telemetryAttemptEnd(summary: AttemptSummary): TelemetryAttemptEnd {\n return {\n httpStatusClass: summary.httpStatusClass,\n outcome: summary.outcome,\n errorCode: summary.errorCode,\n durationMs: summary.durationMs,\n };\n}\n","import type { ResolvedClientOptions } from \"./config\";\nimport {\n RepostConfigurationError,\n RepostError,\n RepostValidationError,\n type ValidationIssueCode,\n} from \"./errors\";\nimport { serializeModel } from \"./serialize\";\nimport type { EventDescriptor, SchemaDescriptor } from \"./types\";\n\nconst encoder = new TextEncoder();\n\nexport async function resolveCredential(config: ResolvedClientOptions, operationId: string): Promise<string> {\n let credential = config.apiKey;\n if (config.apiKeyProvider) {\n try {\n credential = await config.apiKeyProvider();\n } catch {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\", deliveryState: \"NOT_SENT\", operationId,\n causeCategory: \"API_KEY_PROVIDER\",\n configurationIssues: [{ code: \"INVALID_VALUE\", optionKeys: [\"API_KEY_PROVIDER\"] }],\n });\n }\n }\n if (credential === undefined) {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\", deliveryState: \"NOT_SENT\", operationId,\n configurationIssues: [{ code: \"MISSING\", optionKeys: [\"API_KEY\"] }],\n });\n }\n if (typeof credential !== \"string\" || !/^[\\x20-\\x7e]{1,4096}$/.test(credential) || !/[^ ]/.test(credential)) {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\", deliveryState: \"NOT_SENT\", operationId,\n configurationIssues: [{ code: \"INVALID_VALUE\", optionKeys: [config.apiKeyProvider ? \"API_KEY_PROVIDER\" : \"API_KEY\"] }],\n });\n }\n return credential;\n}\n\nexport function resolveIdempotencyKey(\n config: ResolvedClientOptions,\n supplied: string | undefined,\n operationId: string,\n): string {\n let key = supplied;\n if (key === undefined) {\n if (config.idempotencyKeyGenerator === false) {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\", deliveryState: \"NOT_SENT\", operationId,\n configurationIssues: [{ code: \"CONFLICT\", optionKeys: [\"MAX_ATTEMPTS\", \"IDEMPOTENCY_KEY_GENERATOR\"] }],\n });\n }\n try {\n key = config.idempotencyKeyGenerator();\n } catch {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\", deliveryState: \"NOT_SENT\", operationId,\n causeCategory: \"IDEMPOTENCY_GENERATOR\",\n configurationIssues: [{ code: \"INVALID_VALUE\", optionKeys: [\"IDEMPOTENCY_KEY_GENERATOR\"] }],\n });\n }\n }\n if (typeof key !== \"string\" || !/^[\\x21-\\x7e](?:[\\x20-\\x7e]{0,253}[\\x21-\\x7e])?$/.test(key)) {\n if (supplied !== undefined) {\n throw new RepostValidationError({\n errorCode: \"VALIDATION\",\n deliveryState: \"NOT_SENT\",\n operationId,\n validationIssues: [{\n code: typeof key === \"string\" && encoder.encode(key).length > 255 ? \"COLLECTION_LIMIT\" : \"INVALID_UNICODE\",\n path: \"$\",\n message: \"@repost/client: invalid idempotency key.\",\n }],\n });\n }\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\", deliveryState: \"NOT_SENT\", operationId,\n configurationIssues: [{ code: \"INVALID_VALUE\", optionKeys: [\"IDEMPOTENCY_KEY_GENERATOR\"] }],\n });\n }\n return key;\n}\n\nexport function serializeForSend(\n schema: SchemaDescriptor,\n event: EventDescriptor,\n data: unknown,\n generators: Required<NonNullable<ResolvedClientOptions[\"generators\"]>>,\n operationId: string,\n idempotencyKey: string,\n): Record<string, unknown> {\n try {\n return serializeModel(schema.models, event.model, data, generators, schema.enums);\n } catch (error) {\n if (error instanceof RepostValidationError) {\n throw new RepostValidationError({\n errorCode: \"VALIDATION\",\n deliveryState: \"NOT_SENT\",\n operationId,\n idempotencyKey,\n validationIssues: error.validationIssues,\n issueCount: error.issueCount,\n issuesTruncated: error.issuesTruncated,\n });\n }\n if (error instanceof RepostError) throw error;\n const message = error instanceof Error ? error.message : \"@repost/client: [TYPE_MISMATCH] $: invalid input.\";\n const match = /\\[([A-Z_]+)] ([^:]+): (.+)/.exec(message);\n throw new RepostValidationError({\n errorCode: \"VALIDATION\", deliveryState: \"NOT_SENT\", operationId, idempotencyKey,\n validationIssues: [{\n code: validationCode(match?.[1]),\n path: match?.[2] ?? \"$\",\n message,\n }],\n });\n }\n}\n\nfunction validationCode(code: string | undefined): ValidationIssueCode {\n if (code === \"REQUIRED_FIELD\") return \"REQUIRED\";\n if (code === \"NULL_NOT_ALLOWED\" || code === \"NULL_LIST_ELEMENT\") return \"NULL_NOT_ALLOWED\";\n if (code === \"NON_FINITE_NUMBER\") return \"NON_FINITE\";\n if (code === \"OUT_OF_RANGE\") return \"OUT_OF_RANGE\";\n if (code === \"INVALID_DATETIME\") return \"INVALID_DATETIME\";\n if (code === \"INVALID_ENUM\") return \"INVALID_ENUM\";\n if (code === \"INVALID_JSON\") return \"INVALID_JSON\";\n if (code === \"INVALID_UNICODE\") return \"INVALID_UNICODE\";\n if (code === \"COLLECTION_LIMIT\") return \"COLLECTION_LIMIT\";\n if (code === \"CYCLE\") return \"CYCLE\";\n return \"TYPE_MISMATCH\";\n}\n","const MAX_DEPTH = 32;\nconst MAX_TOKENS = 10_000;\nconst MAX_FIELD_NAME_BYTES = 64;\nconst MAX_STRING_BYTES = 8_192;\nconst MAX_STRING_CHARS = 8_192;\nconst MAX_NUMBER_CHARS = 128;\nconst MAX_MEMBERS = 16;\nconst encoder = new TextEncoder();\n\nexport class StrictJsonSyntaxError extends Error {}\nexport class StrictJsonLimitError extends Error {}\n\nexport function parseStrictJson(bytes: Uint8Array): unknown {\n if (bytes.length >= 3 && bytes[0] === 0xef && bytes[1] === 0xbb && bytes[2] === 0xbf) {\n throw new StrictJsonSyntaxError(\"UTF-8 BOM is not allowed\");\n }\n let text: string;\n try {\n text = new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes);\n } catch {\n throw new StrictJsonSyntaxError(\"response is not scalar-valid UTF-8\");\n }\n new Scanner(text).parse();\n try {\n return JSON.parse(text);\n } catch {\n throw new StrictJsonSyntaxError(\"malformed JSON\");\n }\n}\n\nclass Scanner {\n private index = 0;\n private tokens = 0;\n\n constructor(private readonly text: string) {}\n\n parse(): void {\n this.whitespace();\n this.value(0);\n this.whitespace();\n if (this.index !== this.text.length) this.syntax();\n }\n\n private value(depth: number): void {\n this.whitespace();\n const char = this.text[this.index];\n if (char === \"{\") { this.object(depth + 1); return; }\n if (char === \"[\") { this.array(depth + 1); return; }\n if (char === '\"') { this.token(); this.string(false); return; }\n if (char === \"t\") { this.scalar(\"true\"); return; }\n if (char === \"f\") { this.scalar(\"false\"); return; }\n if (char === \"n\") { this.scalar(\"null\"); return; }\n this.number();\n }\n\n private object(depth: number): void {\n this.depth(depth);\n this.token();\n this.index += 1;\n this.whitespace();\n if (this.text[this.index] === \"}\") { this.index += 1; this.token(); return; }\n const keys = new Set<string>();\n let members = 0;\n while (this.index < this.text.length) {\n this.whitespace();\n if (this.text[this.index] !== '\"') this.syntax();\n this.token();\n const key = this.string(true);\n if (keys.has(key)) throw new StrictJsonSyntaxError(\"duplicate object key\");\n keys.add(key);\n members += 1;\n if (members > MAX_MEMBERS) this.limit(\"object members\");\n this.whitespace();\n if (this.text[this.index] !== \":\") this.syntax();\n this.index += 1;\n this.value(depth);\n this.whitespace();\n if (this.text[this.index] === \"}\") { this.index += 1; this.token(); return; }\n if (this.text[this.index] !== \",\") this.syntax();\n this.index += 1;\n }\n this.syntax();\n }\n\n private array(depth: number): void {\n this.depth(depth);\n this.token();\n this.index += 1;\n this.whitespace();\n if (this.text[this.index] === \"]\") { this.index += 1; this.token(); return; }\n while (this.index < this.text.length) {\n this.value(depth);\n this.whitespace();\n if (this.text[this.index] === \"]\") { this.index += 1; this.token(); return; }\n if (this.text[this.index] !== \",\") this.syntax();\n this.index += 1;\n }\n this.syntax();\n }\n\n private string(fieldName: boolean): string {\n const start = this.index;\n this.index += 1;\n while (this.index < this.text.length) {\n const char = this.text[this.index];\n if (char === \"\\\\\") this.index += 2;\n else if (char === '\"') {\n this.index += 1;\n let value: string;\n try { value = JSON.parse(this.text.slice(start, this.index)) as string; }\n catch { this.syntax(); }\n let chars = 0;\n for (let offset = 0; offset < value.length; offset += 1) {\n const unit = value.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = value.charCodeAt(offset + 1);\n if (!(next >= 0xdc00 && next <= 0xdfff)) this.syntax();\n offset += 1;\n } else if (unit >= 0xdc00 && unit <= 0xdfff) this.syntax();\n chars += 1;\n }\n const byteLength = encoder.encode(value).length;\n if (fieldName ? byteLength > MAX_FIELD_NAME_BYTES : byteLength > MAX_STRING_BYTES || chars > MAX_STRING_CHARS) {\n this.limit(fieldName ? \"field name\" : \"string scalar\");\n }\n return value;\n } else {\n if ((char?.charCodeAt(0) ?? 0) < 0x20) this.syntax();\n this.index += 1;\n }\n }\n this.syntax();\n }\n\n private scalar(value: \"true\" | \"false\" | \"null\"): void {\n this.token();\n if (!this.text.startsWith(value, this.index)) this.syntax();\n this.index += value.length;\n }\n\n private number(): void {\n const match = /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?/u.exec(this.text.slice(this.index));\n if (!match) this.syntax();\n this.token();\n if (match[0].length > MAX_NUMBER_CHARS) this.limit(\"number token\");\n this.index += match[0].length;\n }\n\n private whitespace(): void {\n while (/^[\\x20\\x09\\x0a\\x0d]$/u.test(this.text[this.index] ?? \"\")) this.index += 1;\n }\n\n private token(): void {\n this.tokens += 1;\n if (this.tokens > MAX_TOKENS) this.limit(\"tokens\");\n }\n\n private depth(depth: number): void {\n if (depth > MAX_DEPTH) this.limit(\"nesting depth\");\n }\n\n private syntax(): never { throw new StrictJsonSyntaxError(\"malformed JSON\"); }\n private limit(name: string): never { throw new StrictJsonLimitError(`JSON ${name} limit exceeded`); }\n}\n","import {\n RepostConfigurationError,\n RepostError,\n RepostPublishError,\n RepostTransportError,\n type DeliveryState,\n type RepostCauseCategory,\n type RepostErrorCode,\n type RepostErrorDetails,\n type RepostFailureReason,\n} from \"./errors\";\nimport { parseStrictJson, StrictJsonLimitError } from \"./transport/strict-json\";\nimport type { AttemptOutcome, BoundedHeaders, SendResult } from \"./types\";\n\nconst RESPONSE_LIMIT_BYTES = 1_048_576;\n\ninterface ClassifiedFailure {\n code: RepostErrorCode;\n retryable: boolean;\n deliveryState: DeliveryState;\n reason: RepostFailureReason | null;\n acceptancePossible: boolean;\n}\n\nexport function classifyOutcome(outcome: AttemptOutcome, priorPossible: boolean): ClassifiedFailure {\n if (outcome.kind === \"failure\") {\n const retryable = outcome.retryable\n ?? (outcome.code !== \"TLS\" && !(outcome.code === \"PROXY\" && outcome.reason === \"PROXY_AUTH_REQUIRED\"));\n const possible = priorPossible || outcome.committed;\n return { code: outcome.code, retryable, deliveryState: possible ? \"POSSIBLY_SENT\" : \"NOT_SENT\", reason: outcome.reason, acceptancePossible: possible };\n }\n if (outcome.protocolError) {\n return { code: \"RESPONSE_PROTOCOL\", retryable: false, deliveryState: \"POSSIBLY_SENT\", reason: null, acceptancePossible: true };\n }\n if (outcome.proxyError) {\n return { code: \"PROXY\", retryable: false, deliveryState: \"NOT_SENT\", reason: \"UNKNOWN\", acceptancePossible: false };\n }\n const status = outcome.status;\n if (status >= 200 && status <= 299) {\n if (outcome.truncated\n || (!outcome.transportLimitsApplied && outcome.compressedBytes > RESPONSE_LIMIT_BYTES)\n || (!outcome.transportLimitsApplied && outcome.decompressedBytes > RESPONSE_LIMIT_BYTES)\n || outcome.limitExceeded\n || (!outcome.transportLimitsApplied && outcome.compressedBytes > 0 && outcome.decompressedBytes > outcome.compressedBytes * 100)) {\n return { code: \"RESPONSE_TOO_LARGE\", retryable: false, deliveryState: \"POSSIBLY_SENT\", reason: null, acceptancePossible: true };\n }\n return { code: \"RESPONSE_PROTOCOL\", retryable: true, deliveryState: \"POSSIBLY_SENT\", reason: null, acceptancePossible: true };\n }\n if (status === 429) return { code: \"RATE_LIMITED\", retryable: !outcome.nonRetryable, deliveryState: priorPossible ? \"POSSIBLY_SENT\" : \"REJECTED\", reason: null, acceptancePossible: priorPossible };\n if (status === 409) return { code: \"HTTP_REJECTED\", retryable: !outcome.nonRetryable, deliveryState: \"POSSIBLY_SENT\", reason: null, acceptancePossible: true };\n if (status >= 300 && status < 400) return { code: \"HTTP_REJECTED\", retryable: false, deliveryState: \"REJECTED\", reason: null, acceptancePossible: priorPossible };\n if (status >= 500) return { code: \"SERVER_FAILURE\", retryable: !outcome.nonRetryable, deliveryState: \"POSSIBLY_SENT\", reason: null, acceptancePossible: true };\n if (status >= 400) return { code: \"HTTP_REJECTED\", retryable: false, deliveryState: \"REJECTED\", reason: null, acceptancePossible: priorPossible };\n return { code: \"RESPONSE_PROTOCOL\", retryable: false, deliveryState: \"POSSIBLY_SENT\", reason: null, acceptancePossible: true };\n}\n\nexport function validateAcceptedResponse(\n outcome: Extract<AttemptOutcome, { kind: \"response\" }>,\n envelope: { type: string; timestamp: string },\n customerId: string,\n): SendResult | \"LIMIT_EXCEEDED\" | null {\n if (outcome.bodyBytes.length > RESPONSE_LIMIT_BYTES\n || (!outcome.transportLimitsApplied && outcome.compressedBytes > RESPONSE_LIMIT_BYTES)\n || (!outcome.transportLimitsApplied && outcome.decompressedBytes > RESPONSE_LIMIT_BYTES)) return null;\n const contentTypes = headerValues(outcome.headers, \"content-type\");\n if (contentTypes.length !== 1\n || !/^[\\t ]*application\\/json[\\t ]*(?:;[\\t ]*charset[\\t ]*=[\\t ]*(?:utf-8|\"utf-8\")[\\t ]*)?$/i.test(contentTypes[0] ?? \"\")) return null;\n try {\n const value = parseStrictJson(outcome.bodyBytes) as Record<string, unknown>;\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n if (typeof value.id !== \"string\" || !/^msg_[A-Za-z0-9_-]{1,124}$/.test(value.id)) return null;\n if (value.type !== envelope.type || value.customerId !== customerId || value.timestamp !== envelope.timestamp) return null;\n return Object.freeze({ id: value.id, type: envelope.type, customerId, timestamp: envelope.timestamp });\n } catch (error) {\n if (error instanceof StrictJsonLimitError) return \"LIMIT_EXCEEDED\";\n return null;\n }\n}\n\nfunction headerValues(headers: BoundedHeaders, name: string): readonly string[] {\n const entry = Object.entries(headers).find(([key]) => key.toLowerCase() === name);\n return entry?.[1] ?? [];\n}\n\nexport function parseRetryAfter(headers: BoundedHeaders, wallNow: number): number | null {\n const values = headerValues(headers, \"retry-after\");\n if (values.length === 0 || values.some((value) => value !== values[0])) return null;\n const value = values[0] ?? \"\";\n if (/^[0-9]+$/.test(value)) {\n const ms = Number(value) * 1_000;\n return Number.isSafeInteger(ms) ? ms : null;\n }\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) && parsed > wallNow ? parsed - wallNow : null;\n}\n\nexport function publicError(\n code: RepostErrorCode,\n deliveryState: DeliveryState,\n retryable: boolean,\n operationId: string,\n idempotencyKey: string,\n attemptCount: number,\n outcome: AttemptOutcome,\n failureReason: RepostFailureReason | null,\n): RepostError {\n let causeCategory: RepostCauseCategory | null = null;\n if (outcome.kind === \"failure\") causeCategory = outcome.causeCategory ?? null;\n else if (outcome.proxyError) causeCategory = \"HTTP_RUNTIME\";\n const details = {\n errorCode: code,\n deliveryState,\n retryable,\n operationId,\n idempotencyKey,\n attemptCount,\n ...responseDetails(outcome),\n failureReason,\n causeCategory,\n body: publishBody(outcome),\n } as const;\n if (code === \"CONFIGURATION\") return new RepostConfigurationError(details);\n switch (code) {\n case \"DNS\":\n case \"CONNECT\":\n case \"PROXY\":\n case \"TLS\":\n case \"IO\":\n case \"ATTEMPT_TIMEOUT\":\n case \"OPERATION_DEADLINE\":\n case \"CANCELLED\":\n case \"OVERLOADED\":\n return new RepostTransportError(details);\n default:\n return new RepostPublishError(details);\n }\n}\n\nfunction publishBody(outcome: AttemptOutcome): unknown {\n if (outcome.kind !== \"response\" || outcome.bodyBytes.length === 0) return undefined;\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(outcome.bodyBytes));\n } catch {\n return undefined;\n }\n}\n\nexport function cancelled(\n operationId: string,\n idempotencyKey: string | null,\n attemptCount: number,\n committed: boolean,\n outcome: AttemptOutcome | null = null,\n): RepostTransportError {\n return new RepostTransportError({\n errorCode: \"CANCELLED\", deliveryState: committed ? \"CANCELLED_UNKNOWN\" : \"NOT_SENT\",\n operationId, idempotencyKey, attemptCount,\n ...responseDetails(outcome),\n });\n}\n\nexport function closed(\n operationId: string | null,\n idempotencyKey: string | null,\n attemptCount: number,\n committed: boolean,\n outcome: AttemptOutcome | null = null,\n): RepostTransportError {\n return new RepostTransportError({\n errorCode: \"CLOSED\", deliveryState: committed ? \"CANCELLED_UNKNOWN\" : \"NOT_SENT\",\n operationId, idempotencyKey, attemptCount,\n ...responseDetails(outcome),\n });\n}\n\nexport function deadlineError(\n operationId: string,\n idempotencyKey: string | null,\n attemptCount: number,\n committed: boolean,\n outcome: AttemptOutcome | null = null,\n): RepostTransportError {\n return new RepostTransportError({\n errorCode: \"OPERATION_DEADLINE\", deliveryState: committed ? \"POSSIBLY_SENT\" : \"NOT_SENT\",\n operationId, idempotencyKey, attemptCount,\n ...responseDetails(outcome),\n });\n}\n\nexport function responseDetails(outcome: AttemptOutcome | null): Pick<\n RepostErrorDetails,\n \"httpStatus\" | \"compressedBytes\" | \"decompressedBytes\" | \"truncated\" | \"responseHeaderFields\" | \"responseHeaderBytes\"\n> {\n if (!outcome) {\n return { httpStatus: null, compressedBytes: 0, decompressedBytes: 0, truncated: false, responseHeaderFields: 0, responseHeaderBytes: 0 };\n }\n const exposeHeaderLimit = outcome.kind === \"response\" && outcome.headerLimitExceeded;\n return {\n httpStatus: outcome.kind === \"response\" ? outcome.status : outcome.httpStatus ?? null,\n compressedBytes: outcome.compressedBytes ?? 0,\n decompressedBytes: outcome.decompressedBytes ?? 0,\n truncated: outcome.truncated ?? false,\n responseHeaderFields: exposeHeaderLimit ? outcome.responseHeaderFields ?? 0 : 0,\n responseHeaderBytes: exposeHeaderLimit ? outcome.responseHeaderBytes ?? 0 : 0,\n };\n}\n","import type { HttpStatusClass, RepostErrorCode } from \"./errors\";\nimport type { ObserverOutcome } from \"./observer\";\n\nexport type CapturedTelemetryContext = unknown;\nexport interface TelemetryOperationStart { readonly startedAtMs: number }\nexport interface TelemetryOperationEnd { readonly outcome: ObserverOutcome; readonly errorCode: RepostErrorCode | null; readonly durationMs: number }\nexport interface TelemetryAttemptStart { readonly startedAtMs: number; readonly attemptNumber: number }\nexport interface TelemetryAttemptEnd { readonly httpStatusClass: HttpStatusClass | null; readonly outcome: ObserverOutcome; readonly errorCode: RepostErrorCode | null; readonly durationMs: number }\nexport interface TelemetryAttempt {\n propagationHeaders(): Record<string, string> | null;\n end(end: TelemetryAttemptEnd): void;\n}\nexport interface TelemetryOperation {\n startAttempt(start: TelemetryAttemptStart): TelemetryAttempt;\n end(end: TelemetryOperationEnd): void;\n}\nexport interface RepostTelemetry {\n captureContext(): CapturedTelemetryContext;\n startOperation(parent: CapturedTelemetryContext, start: TelemetryOperationStart): TelemetryOperation;\n}\n\nexport class TelemetryInvoker {\n constructor(private readonly telemetry: RepostTelemetry | undefined) {}\n\n capture(): CapturedTelemetryContext | null {\n if (!this.telemetry) return null;\n try { return this.telemetry.captureContext(); }\n catch { return null; }\n }\n\n startOperation(parent: CapturedTelemetryContext | null, start: TelemetryOperationStart): TelemetryOperation | null {\n if (!this.telemetry || parent === null) return null;\n try { return this.telemetry.startOperation(parent, start); }\n catch { return null; }\n }\n\n startAttempt(operation: TelemetryOperation | null, start: TelemetryAttemptStart): TelemetryAttempt | null {\n if (!operation) return null;\n try { return operation.startAttempt(start); }\n catch { return null; }\n }\n\n headers(attempt: TelemetryAttempt | null): readonly (readonly [string, string])[] {\n if (!attempt) return [];\n try {\n const headers = attempt.propagationHeaders();\n if (!headers?.traceparent) return [];\n return Object.freeze([\n Object.freeze([\"traceparent\", headers.traceparent] as const),\n ...(headers.tracestate ? [Object.freeze([\"tracestate\", headers.tracestate] as const)] : []),\n ]);\n } catch { return []; }\n }\n\n endAttempt(attempt: TelemetryAttempt | null, end: TelemetryAttemptEnd): void {\n if (!attempt) return;\n try { attempt.end(end); }\n catch { /* Telemetry must not affect delivery. */ }\n }\n\n endOperation(operation: TelemetryOperation | null, end: TelemetryOperationEnd): void {\n if (!operation) return;\n try { operation.end(end); }\n catch { /* Telemetry must not affect delivery. */ }\n }\n}\n","import { endpointUrl, type ResolvedClientOptions } from \"./config\";\nimport {\n RepostConfigurationError,\n RepostError,\n RepostSerializationError,\n RepostTransportError,\n type DeliveryState,\n} from \"./errors\";\nimport { attemptSummary, observerEvent, statusClass, telemetryAttemptEnd } from \"./operation-events\";\nimport { resolveCredential, resolveIdempotencyKey, serializeForSend } from \"./operation-input\";\nimport {\n cancelled,\n classifyOutcome,\n closed,\n deadlineError,\n parseRetryAfter,\n publicError,\n responseDetails,\n validateAcceptedResponse,\n} from \"./operation-policy\";\nimport { resolveGenerators } from \"./serialize\";\nimport type {\n AttemptOutcome,\n AttemptRequest,\n EventDescriptor,\n SchemaDescriptor,\n SendOperation,\n SendOperationOutcome,\n SendResult,\n Transport,\n} from \"./types\";\nimport { RuntimeState } from \"./runtime-state\";\nimport { resolveDefaultTransport } from \"./transport\";\nimport { ObserverDispatcher, type AttemptSummary, type ObserverOutcome } from \"./observer\";\nimport { TelemetryInvoker, type TelemetryOperation } from \"./telemetry\";\n\nconst REQUEST_LIMIT_BYTES = 1_048_576;\nconst encoder = new TextEncoder();\n\nexport interface SendInput {\n readonly customerId: string;\n readonly data: unknown;\n readonly idempotencyKey?: string;\n readonly signal?: AbortSignal;\n}\n\nexport interface SendOperationRuntime {\n send(event: EventDescriptor, input: SendInput): SendOperation<SendResult>;\n close(): void;\n}\n\nexport function createSendOperation(\n config: ResolvedClientOptions,\n schema: SchemaDescriptor,\n state: RuntimeState,\n): SendOperationRuntime {\n const ownsTransport = config.transport === undefined;\n const transport = config.transport ?? resolveDefaultTransport(config.httpTransportOptions);\n const observers = new ObserverDispatcher(config.observer, state);\n const telemetry = new TelemetryInvoker(config.telemetry);\n let transportCloseStarted = false;\n return {\n send: (event, input) => createOperationPromise(\n config, schema, state, transport, observers, telemetry, event, input,\n ),\n close() {\n state.close();\n if (!ownsTransport || transportCloseStarted) return;\n transportCloseStarted = true;\n try {\n const closing = transport.close?.();\n if (closing) void Promise.resolve(closing).catch(() => undefined);\n } catch {\n // Runtime closure is final even when an owned transport cannot close cleanly.\n }\n },\n };\n}\n\nfunction createOperationPromise(\n config: ResolvedClientOptions,\n schema: SchemaDescriptor,\n state: RuntimeState,\n transport: Transport,\n observers: ObserverDispatcher,\n telemetry: TelemetryInvoker,\n event: EventDescriptor,\n input: SendInput,\n): SendOperation<SendResult> {\n const cancellation = new AbortController();\n const signal = input.signal ? AbortSignal.any([input.signal, cancellation.signal]) : cancellation.signal;\n const metadata: OperationMetadata = { operationId: null, idempotencyKey: null, attemptCount: 0, httpStatus: null };\n const execution = send(config, schema, state, transport, observers, telemetry, event, { ...input, signal }, metadata);\n const outcome: Promise<SendOperationOutcome<SendResult>> = execution.then(\n (result) => Object.freeze({\n operationId: metadata.operationId,\n code: \"OK\" as const,\n deliveryState: \"ACCEPTED\" as const,\n attemptCount: metadata.attemptCount,\n httpStatus: metadata.httpStatus,\n idempotencyKey: metadata.idempotencyKey,\n result,\n error: null,\n }),\n (error: unknown) => {\n const failure = error instanceof RepostError ? error : null;\n return Object.freeze({\n operationId: failure?.operationId ?? null,\n code: failure?.errorCode ?? \"IO\",\n deliveryState: failure?.deliveryState ?? \"NOT_SENT\",\n attemptCount: failure?.attemptCount ?? 0,\n httpStatus: failure?.httpStatus ?? metadata.httpStatus,\n idempotencyKey: failure?.idempotencyKey ?? null,\n result: null,\n error: failure,\n });\n },\n );\n const primary = execution.catch((error: unknown) => {\n if (error instanceof RepostError && error.errorCode === \"CANCELLED\" && signal.aborted) throw signal.reason;\n throw error;\n }) as SendOperation<SendResult>;\n Object.defineProperties(primary, {\n outcome: { value: outcome, enumerable: false, writable: false, configurable: false },\n cancel: {\n value: () => cancellation.abort(new DOMException(\"This operation was aborted\", \"AbortError\")),\n enumerable: false,\n writable: false,\n configurable: false,\n },\n });\n return primary;\n}\n\ninterface OperationMetadata {\n operationId: string | null;\n idempotencyKey: string | null;\n attemptCount: number;\n httpStatus: number | null;\n}\n\nasync function send(\n config: ResolvedClientOptions,\n schema: SchemaDescriptor,\n state: RuntimeState,\n transport: Transport,\n observers: ObserverDispatcher,\n telemetry: TelemetryInvoker,\n event: EventDescriptor,\n input: SendInput,\n metadata: OperationMetadata,\n): Promise<SendResult> {\n const startedAt = config.monotonicClock();\n const deadline = saturatingDeadline(startedAt, config.operationTimeoutMs);\n const deadlineAuthority = operationDeadline(config.operationTimeoutMs);\n if (state.isClosing()) throw closed(null, null, 0, false);\n const operationId = `op_${crypto.randomUUID()}`;\n metadata.operationId = operationId;\n observers.emit(observerEvent(\"operation.start\", operationId, startedAt));\n const admission = state.admit();\n if (!admission) {\n if (state.isClosing()) throw closed(null, null, 0, false);\n const error = new RepostTransportError({\n errorCode: \"OVERLOADED\", deliveryState: \"NOT_SENT\", operationId,\n });\n const endedAt = config.monotonicClock();\n observers.emit(observerEvent(\"operation.end\", operationId, endedAt, {\n durationMs: Math.max(0, endedAt - startedAt),\n outcome: \"FAILED\",\n errorCode: \"OVERLOADED\",\n deliveryState: \"NOT_SENT\",\n }));\n throw error;\n }\n\n let idempotencyKey: string | null = null;\n let attemptCount = 0;\n let acceptancePossible = false;\n let lastOutcome: AttemptOutcome | null = null;\n let terminal: { outcome: ObserverOutcome; error: RepostError | null; deliveryState: DeliveryState } | null = null;\n const summaries: AttemptSummary[] = [];\n let telemetryOperation: TelemetryOperation | null = null;\n try {\n const capturedContext = telemetry.capture();\n telemetryOperation = telemetry.startOperation(capturedContext, { startedAtMs: startedAt });\n let credential: string;\n try {\n credential = await interruptible(resolveCredential(config, operationId), [\n admission.signal,\n ...(input.signal && !input.signal.aborted ? [input.signal] : []),\n deadlineAuthority.signal,\n ]);\n } catch (error) {\n if (admission.signal.aborted) throw closed(operationId, null, 0, false);\n if (input.signal?.aborted) throw cancelled(operationId, null, 0, false);\n if (deadlineAuthority.signal.aborted) throw deadlineError(operationId, null, 0, false);\n throw error;\n }\n idempotencyKey = resolveIdempotencyKey(config, input.idempotencyKey, operationId);\n metadata.idempotencyKey = idempotencyKey;\n\n const resolved = resolveGenerators(config.generators);\n const operationNow = resolved.now();\n const envelope = {\n type: event.type,\n timestamp: operationNow,\n data: serializeForSend(schema, event, input.data, { ...resolved, now: () => operationNow }, operationId, idempotencyKey),\n };\n let bodyBytes: Uint8Array;\n try {\n bodyBytes = encoder.encode(JSON.stringify({\n type: envelope.type,\n customerId: input.customerId,\n timestamp: envelope.timestamp,\n data: envelope.data,\n }));\n } catch {\n throw new RepostSerializationError({\n errorCode: \"SERIALIZATION\", deliveryState: \"NOT_SENT\", operationId, idempotencyKey,\n });\n }\n if (bodyBytes.length > REQUEST_LIMIT_BYTES) {\n throw new RepostSerializationError({\n errorCode: \"REQUEST_TOO_LARGE\", deliveryState: \"NOT_SENT\", operationId, idempotencyKey,\n });\n }\n admission.retainSerializedRequest(bodyBytes.length);\n if (input.signal?.aborted) throw cancelled(operationId, idempotencyKey, 0, false);\n\n for (let attemptNumber = 1; attemptNumber <= config.maxAttempts; attemptNumber += 1) {\n const remaining = deadline - config.monotonicClock();\n if (remaining <= 0) throw deadlineError(operationId, idempotencyKey, attemptCount, acceptancePossible, lastOutcome);\n attemptCount = attemptNumber;\n metadata.attemptCount = attemptNumber;\n let committed = false;\n const attemptTimeoutMs = Math.min(config.attemptTimeoutMs, remaining);\n const timeoutSignal = AbortSignal.timeout(Math.max(1, Math.ceil(attemptTimeoutMs)));\n const signal = AbortSignal.any([\n admission.signal,\n deadlineAuthority.signal,\n timeoutSignal,\n ...(input.signal ? [input.signal] : []),\n ]);\n const headers: Array<readonly [string, string]> = [\n [\"authorization\", `Bearer ${credential}`],\n [\"content-type\", \"application/json\"],\n [\"accept-encoding\", \"gzip\"],\n [\"user-agent\", config.userAgent],\n [\"idempotency-key\", idempotencyKey],\n ];\n const attemptStartedAt = config.monotonicClock();\n const telemetryAttempt = telemetry.startAttempt(telemetryOperation, { startedAtMs: attemptStartedAt, attemptNumber });\n headers.push(...telemetry.headers(telemetryAttempt));\n const request: AttemptRequest = {\n url: endpointUrl(config.apiUrl),\n headers,\n bodyBytes,\n attemptNumber,\n connectTimeoutMs: Math.min(config.connectTimeoutMs, attemptTimeoutMs),\n attemptTimeoutMs,\n signal,\n commitTracker: {\n get committed() { return committed; },\n markCommitted() { committed = true; },\n },\n };\n\n observers.emit(observerEvent(\"attempt.start\", operationId, attemptStartedAt, { attemptNumber }));\n const outcome = await invokeTransport(transport, request, input.signal, timeoutSignal, config.transport !== undefined);\n lastOutcome = outcome;\n if (outcome.kind === \"response\") metadata.httpStatus = outcome.status;\n else if (outcome.httpStatus !== undefined && outcome.httpStatus !== null) metadata.httpStatus = outcome.httpStatus;\n if (outcome.kind === \"response\" && outcome.headerLimitExceeded) state.responseHeaderLimitFailed();\n if (admission.signal.aborted) {\n closeResponse(outcome, state);\n const error = closed(operationId, idempotencyKey, attemptCount, committed || acceptancePossible, outcome);\n const endedAt = config.monotonicClock();\n const summary = attemptSummary(attemptNumber, \"CLOSED\", error, outcome, endedAt - attemptStartedAt);\n telemetry.endAttempt(telemetryAttempt, telemetryAttemptEnd(summary));\n summaries.push(summary);\n observers.emit(observerEvent(\"attempt.end\", operationId, endedAt, summary));\n throw error;\n }\n if (input.signal?.aborted) {\n closeResponse(outcome, state);\n const error = cancelled(operationId, idempotencyKey, attemptCount, committed || acceptancePossible, outcome);\n const endedAt = config.monotonicClock();\n const summary = attemptSummary(attemptNumber, \"CANCELLED\", error, outcome, endedAt - attemptStartedAt);\n telemetry.endAttempt(telemetryAttempt, telemetryAttemptEnd(summary));\n summaries.push(summary);\n observers.emit(observerEvent(\"attempt.end\", operationId, endedAt, summary));\n throw error;\n }\n if (deadlineAuthority.signal.aborted || config.monotonicClock() >= deadline) {\n closeResponse(outcome, state);\n const error = deadlineError(operationId, idempotencyKey, attemptCount, committed || acceptancePossible, outcome);\n const endedAt = config.monotonicClock();\n const summary = attemptSummary(attemptNumber, \"FAILED\", error, outcome, endedAt - attemptStartedAt);\n telemetry.endAttempt(telemetryAttempt, telemetryAttemptEnd(summary));\n summaries.push(summary);\n observers.emit(observerEvent(\"attempt.end\", operationId, endedAt, summary));\n throw error;\n }\n let classifiedOutcome = outcome;\n if (outcome.kind === \"response\" && outcome.status >= 200 && outcome.status <= 299) {\n const result = validateAcceptedResponse(outcome, envelope, input.customerId);\n if (result === \"LIMIT_EXCEEDED\") {\n classifiedOutcome = { ...outcome, limitExceeded: true };\n } else if (result) {\n const endedAt = config.monotonicClock();\n const summary = attemptSummary(attemptNumber, \"ACCEPTED\", null, outcome, endedAt - attemptStartedAt);\n telemetry.endAttempt(telemetryAttempt, telemetryAttemptEnd(summary));\n summaries.push(summary);\n observers.emit(observerEvent(\"attempt.end\", operationId, endedAt, summary));\n closeResponse(outcome, state);\n terminal = { outcome: \"ACCEPTED\", error: null, deliveryState: \"ACCEPTED\" };\n return result;\n }\n }\n\n const failure = classifyOutcome(classifiedOutcome, acceptancePossible);\n acceptancePossible ||= failure.acceptancePossible;\n const attemptError = publicError(\n failure.code,\n failure.deliveryState,\n failure.retryable,\n operationId,\n idempotencyKey,\n attemptNumber,\n classifiedOutcome,\n failure.reason,\n );\n const attemptEndedAt = config.monotonicClock();\n let attemptObserverOutcome: ObserverOutcome = \"FAILED\";\n if (failure.retryable) attemptObserverOutcome = \"RETRYABLE_FAILURE\";\n else if (failure.deliveryState === \"REJECTED\") attemptObserverOutcome = \"REJECTED\";\n const summary = attemptSummary(\n attemptNumber,\n attemptObserverOutcome,\n attemptError,\n classifiedOutcome,\n attemptEndedAt - attemptStartedAt,\n );\n telemetry.endAttempt(telemetryAttempt, telemetryAttemptEnd(summary));\n summaries.push(summary);\n observers.emit(observerEvent(\"attempt.end\", operationId, attemptEndedAt, summary));\n closeResponse(classifiedOutcome, state);\n if (!failure.retryable || attemptNumber === config.maxAttempts) {\n if (failure.deliveryState === \"REJECTED\" && acceptancePossible) {\n throw publicError(\n failure.code, \"POSSIBLY_SENT\", failure.retryable, operationId, idempotencyKey, attemptNumber,\n classifiedOutcome, failure.reason,\n );\n }\n throw attemptError;\n }\n\n const now = config.monotonicClock();\n const retryRemaining = deadline - now;\n if (retryRemaining <= 0) throw deadlineError(operationId, idempotencyKey, attemptNumber, acceptancePossible, lastOutcome);\n const exponential = Math.min(config.retryMaxDelayMs, config.retryBaseDelayMs * 2 ** Math.min(attemptNumber - 1, 52));\n const cap = Math.max(0, Math.min(exponential, retryRemaining));\n let jitter: number;\n try {\n jitter = config.retryEntropy.nextInt(Math.floor(cap) + 1);\n } catch {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\",\n deliveryState: acceptancePossible ? \"POSSIBLY_SENT\" : \"NOT_SENT\",\n operationId,\n idempotencyKey,\n attemptCount,\n causeCategory: \"RETRY_ENTROPY\",\n configurationIssues: [{ code: \"INVALID_VALUE\", optionKeys: [\"RETRY_ENTROPY\"] }],\n ...responseDetails(lastOutcome),\n });\n }\n if (!Number.isInteger(jitter) || jitter < 0 || jitter > cap) {\n throw new RepostConfigurationError({\n errorCode: \"CONFIGURATION\",\n deliveryState: acceptancePossible ? \"POSSIBLY_SENT\" : \"NOT_SENT\",\n operationId,\n idempotencyKey,\n attemptCount,\n configurationIssues: [{ code: \"INVALID_VALUE\", optionKeys: [\"RETRY_ENTROPY\"] }],\n ...responseDetails(lastOutcome),\n });\n }\n let retryAfter: number | null = null;\n if (classifiedOutcome.kind === \"response\") {\n retryAfter = classifiedOutcome.retryAfterDelayMs\n ?? parseRetryAfter(classifiedOutcome.headers, config.wallClock());\n }\n const delay = retryAfter === null ? jitter : Math.max(jitter, Math.min(retryAfter, 60_000, retryRemaining));\n observers.emit(observerEvent(\"retry.delay\", operationId, config.monotonicClock(), {\n attemptNumber: attemptNumber + 1,\n retryDelayMs: delay,\n outcome: \"RETRYABLE_FAILURE\",\n errorCode: failure.code,\n deliveryState: failure.deliveryState,\n httpStatusClass: classifiedOutcome.kind === \"response\" ? statusClass(classifiedOutcome.status) : null,\n }));\n try {\n const sleepSignal = AbortSignal.any([\n admission.signal,\n deadlineAuthority.signal,\n ...(input.signal ? [input.signal] : []),\n ]);\n await config.scheduler.sleep(delay, sleepSignal);\n } catch {\n if (admission.signal.aborted) throw closed(operationId, idempotencyKey, attemptCount, acceptancePossible, lastOutcome);\n if (input.signal?.aborted) throw cancelled(operationId, idempotencyKey, attemptCount, acceptancePossible, lastOutcome);\n if (deadlineAuthority.signal.aborted || config.monotonicClock() >= deadline) {\n throw deadlineError(operationId, idempotencyKey, attemptCount, acceptancePossible, lastOutcome);\n }\n throw new RepostTransportError({\n errorCode: \"IO\",\n deliveryState: acceptancePossible ? \"POSSIBLY_SENT\" : \"NOT_SENT\",\n operationId,\n idempotencyKey,\n attemptCount,\n causeCategory: \"UNKNOWN\",\n ...responseDetails(lastOutcome),\n });\n }\n }\n throw deadlineError(operationId, idempotencyKey, attemptCount, acceptancePossible, lastOutcome);\n } catch (error) {\n const failure = error instanceof RepostError\n ? error\n : new RepostTransportError({\n errorCode: \"IO\", deliveryState: acceptancePossible ? \"POSSIBLY_SENT\" : \"NOT_SENT\",\n operationId, idempotencyKey, attemptCount, causeCategory: \"UNKNOWN\",\n });\n let terminalOutcome: ObserverOutcome = \"FAILED\";\n if (failure.errorCode === \"CANCELLED\") terminalOutcome = \"CANCELLED\";\n else if (failure.deliveryState === \"REJECTED\") terminalOutcome = \"REJECTED\";\n terminal = {\n outcome: terminalOutcome,\n error: failure,\n deliveryState: failure.deliveryState,\n };\n if (failure.errorCode === \"CANCELLED\") {\n observers.emit(observerEvent(\"operation.cancel\", operationId, config.monotonicClock(), {\n attemptNumber: attemptCount || null,\n outcome: \"CANCELLED\",\n errorCode: \"CANCELLED\",\n deliveryState: failure.deliveryState,\n }));\n }\n throw failure;\n } finally {\n deadlineAuthority.clear();\n admission.release();\n if (terminal) {\n const endedAt = config.monotonicClock();\n let terminalHttpStatusClass: AttemptSummary[\"httpStatusClass\"] = null;\n if (terminal.error?.httpStatus) terminalHttpStatusClass = statusClass(terminal.error.httpStatus);\n else if (terminal.outcome === \"ACCEPTED\") terminalHttpStatusClass = \"SUCCESS\";\n telemetry.endOperation(telemetryOperation, {\n outcome: terminal.outcome,\n errorCode: terminal.error?.errorCode ?? null,\n durationMs: Math.max(0, endedAt - startedAt),\n });\n observers.emit(observerEvent(\"operation.end\", operationId, endedAt, {\n durationMs: Math.max(0, endedAt - startedAt),\n outcome: terminal.outcome,\n errorCode: terminal.error?.errorCode ?? null,\n deliveryState: terminal.deliveryState,\n httpStatusClass: terminalHttpStatusClass,\n operationStartedAtMs: startedAt,\n operationEndedAtMs: endedAt,\n attemptSummaries: Object.freeze([...summaries]),\n }));\n }\n }\n}\n\nasync function invokeTransport(\n transport: Transport,\n request: AttemptRequest,\n callerSignal: AbortSignal | undefined,\n timeoutSignal: AbortSignal,\n customTransport: boolean,\n): Promise<AttemptOutcome> {\n try {\n const outcome = await Promise.race([\n transport.send(request),\n new Promise<never>((_, reject) => request.signal.addEventListener(\"abort\", () => reject(request.signal.reason), { once: true })),\n ]);\n if (!outcome || (outcome.kind !== \"response\" && outcome.kind !== \"failure\")) throw new TypeError(\"invalid custom transport outcome\");\n return outcome;\n } catch {\n if (callerSignal?.aborted) {\n return { kind: \"failure\", code: \"IO\", reason: \"UNKNOWN\", committed: request.commitTracker.committed };\n }\n if (timeoutSignal.aborted) {\n return { kind: \"failure\", code: \"ATTEMPT_TIMEOUT\", reason: \"UNKNOWN\", committed: request.commitTracker.committed, causeCategory: \"HTTP_RUNTIME\" };\n }\n return {\n kind: \"failure\",\n code: \"IO\",\n reason: \"UNKNOWN\",\n committed: customTransport || request.commitTracker.committed,\n causeCategory: customTransport ? \"CUSTOM_TRANSPORT\" : \"HTTP_RUNTIME\",\n retryable: false,\n };\n }\n}\n\nfunction closeResponse(outcome: AttemptOutcome, state: RuntimeState): void {\n if (outcome.kind !== \"response\" || !outcome.close) return;\n try {\n const closing = outcome.close();\n if (closing) void Promise.resolve(closing).catch(() => state.responseCloseFailed());\n } catch {\n state.responseCloseFailed();\n }\n}\n\nfunction saturatingDeadline(start: number, duration: number): number {\n const deadline = start + duration;\n return Number.isFinite(deadline) ? Math.min(Number.MAX_SAFE_INTEGER, deadline) : Number.MAX_SAFE_INTEGER;\n}\n\nfunction operationDeadline(durationMs: number): { signal: AbortSignal; clear(): void } {\n const controller = new AbortController();\n let timer: ReturnType<typeof setTimeout> | undefined;\n let remaining = durationMs;\n const arm = () => {\n const delay = Math.min(remaining, 2_147_483_647);\n timer = setTimeout(() => {\n remaining -= delay;\n if (remaining <= 0) controller.abort();\n else arm();\n }, delay);\n };\n arm();\n return { signal: controller.signal, clear: () => clearTimeout(timer) };\n}\n\nfunction interruptible<T>(work: Promise<T>, signals: readonly AbortSignal[]): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const abort = (signal: AbortSignal) => {\n cleanup();\n reject(signal.reason);\n };\n const listeners = signals.map((signal) => [signal, () => abort(signal)] as const);\n const cleanup = () => listeners.forEach(([signal, listener]) => signal.removeEventListener(\"abort\", listener));\n for (const [signal, listener] of listeners) {\n if (signal.aborted) return abort(signal);\n signal.addEventListener(\"abort\", listener, { once: true });\n }\n work.then(\n (value) => { cleanup(); resolve(value); },\n (error: unknown) => { cleanup(); reject(error); },\n );\n });\n}\n","export const PORTABLE_OPERATION_WORKSPACE_BYTES = 2_359_296;\nconst REQUEST_WORKSPACE_BYTES = 1_048_576;\n\nexport interface RuntimeDiagnostics {\n readonly inFlightOperations: number;\n readonly bufferedBytes: number;\n readonly concurrencyOverloadRejections: number;\n readonly requestByteOverloadRejections: number;\n readonly responseByteOverloadRejections: number;\n readonly responseHeaderLimitFailures: number;\n readonly executorOverloadRejections: number;\n readonly schedulerOverloadRejections: number;\n readonly responseCloseFailures: number;\n readonly droppedObserverEvents: number;\n readonly observerFailures: number;\n readonly closed: boolean;\n}\n\nexport class RuntimeState {\n private inFlightOperations = 0;\n private bufferedBytes = 0;\n private concurrencyOverloadRejections = 0;\n private requestByteOverloadRejections = 0;\n private responseHeaderLimitFailures = 0;\n private responseCloseFailures = 0;\n private droppedObserverEvents = 0;\n private observerFailures = 0;\n private closing = false;\n private closed = false;\n private readonly active = new Set<AbortController>();\n\n constructor(\n private readonly maxInFlightOperations: number,\n private readonly maxBufferedBytes: number,\n ) {}\n\n admit(): Admission | null {\n if (this.closing) return null;\n if (this.inFlightOperations >= this.maxInFlightOperations) {\n this.concurrencyOverloadRejections = saturatingAdd(this.concurrencyOverloadRejections);\n return null;\n }\n if (this.bufferedBytes + PORTABLE_OPERATION_WORKSPACE_BYTES > this.maxBufferedBytes) {\n this.requestByteOverloadRejections = saturatingAdd(this.requestByteOverloadRejections);\n return null;\n }\n const controller = new AbortController();\n this.active.add(controller);\n this.inFlightOperations += 1;\n this.bufferedBytes += PORTABLE_OPERATION_WORKSPACE_BYTES;\n let retained = PORTABLE_OPERATION_WORKSPACE_BYTES;\n let released = false;\n return {\n signal: controller.signal,\n retainSerializedRequest: (bodyBytes) => {\n const releasedBytes = REQUEST_WORKSPACE_BYTES - bodyBytes;\n if (releasedBytes > 0) {\n retained -= releasedBytes;\n this.bufferedBytes -= releasedBytes;\n }\n },\n release: () => {\n if (released) return;\n released = true;\n this.inFlightOperations -= 1;\n this.bufferedBytes -= retained;\n this.active.delete(controller);\n if (this.closing && this.inFlightOperations === 0) this.closed = true;\n },\n };\n }\n\n isClosing(): boolean { return this.closing; }\n\n close(): void {\n if (this.closing) return;\n this.closing = true;\n for (const controller of this.active) controller.abort();\n if (this.inFlightOperations === 0) this.closed = true;\n }\n\n diagnostics(): RuntimeDiagnostics {\n return Object.freeze({\n inFlightOperations: this.inFlightOperations,\n bufferedBytes: this.bufferedBytes,\n concurrencyOverloadRejections: this.concurrencyOverloadRejections,\n requestByteOverloadRejections: this.requestByteOverloadRejections,\n responseByteOverloadRejections: 0,\n responseHeaderLimitFailures: this.responseHeaderLimitFailures,\n executorOverloadRejections: 0,\n schedulerOverloadRejections: 0,\n responseCloseFailures: this.responseCloseFailures,\n droppedObserverEvents: this.droppedObserverEvents,\n observerFailures: this.observerFailures,\n closed: this.closed,\n });\n }\n\n observerDropped(): void { this.droppedObserverEvents = saturatingAdd(this.droppedObserverEvents); }\n observerFailed(): void { this.observerFailures = saturatingAdd(this.observerFailures); }\n responseHeaderLimitFailed(): void { this.responseHeaderLimitFailures = saturatingAdd(this.responseHeaderLimitFailures); }\n responseCloseFailed(): void { this.responseCloseFailures = saturatingAdd(this.responseCloseFailures); }\n\n seedDiagnosticCounter(counter: \"concurrencyOverloadRejections\", value: number): void {\n if (!Number.isSafeInteger(value) || value < 0) throw new TypeError(\"invalid diagnostics counter seed\");\n if (counter !== \"concurrencyOverloadRejections\") throw new TypeError(\"invalid diagnostics counter\");\n this.concurrencyOverloadRejections = value;\n }\n}\n\nexport interface Admission {\n readonly signal: AbortSignal;\n retainSerializedRequest(bodyBytes: number): void;\n release(): void;\n}\n\nfunction saturatingAdd(value: number): number {\n return Math.min(Number.MAX_SAFE_INTEGER, value + 1);\n}\n","import {\n appendPath,\n compareUnicodeScalarValues,\n validateModelDescriptors,\n} from \"./serialize\";\nimport { snapshotOptions } from \"./config\";\nimport { createSendOperation, type SendInput } from \"./operation\";\nimport { RuntimeState, type RuntimeDiagnostics } from \"./runtime-state\";\nimport { RepostDescriptorVersionError } from \"./errors\";\nimport type {\n RepostClientOptions,\n SchemaDescriptor,\n Transport,\n} from \"./types\";\n\n/**\n * The descriptor-format version this runtime implements. Generated clients\n * declare the version they were emitted for; [`buildWebhooks`] refuses a\n * mismatch at construction — never silently at send time. Bumped only on a\n * wire-breaking change to the descriptor contract (see\n * sdk/conformance/CONTRACT.md and the conformance-vector freeze policy).\n */\nexport const DESCRIPTOR_FORMAT_VERSION = 2;\n\n/** Warn-once latch for pre-versioning generated packages. */\nlet warnedPreVersioning = false;\n\n/**\n * No-network transport for tests: echoes the envelope identity as a typed\n * `SendResult` with a fixed stub message id.\n */\nexport const stubTransport: Transport = {\n async send(request) {\n request.commitTracker.markCommitted();\n const sent = JSON.parse(new TextDecoder().decode(request.bodyBytes)) as {\n type: string; customerId: string; timestamp: string;\n };\n const bodyBytes = new TextEncoder().encode(JSON.stringify({ id: \"msg_stub\", ...sent }));\n return {\n kind: \"response\",\n status: 202,\n headers: { \"content-type\": [\"application/json\"] },\n bodyBytes,\n compressedBytes: bodyBytes.length,\n decompressedBytes: bodyBytes.length,\n truncated: false,\n };\n },\n};\n\n/**\n * Build the webhooks method tree from the generated schema descriptor. The\n * generated client instantiates this as its typed `Webhooks` interface — the\n * tree shape is guaranteed by codegen, which emits interface and descriptors\n * from the same catalog.\n */\nexport function buildWebhooks<T>(options: RepostClientOptions, schema: SchemaDescriptor): T {\n return buildRuntime<T>(options, schema).webhooks;\n}\n\n/** Build the generated webhooks tree and its credential-free diagnostics surface. */\nexport function buildClient<T>(options: RepostClientOptions, schema: SchemaDescriptor): {\n readonly webhooks: T;\n diagnostics(): RuntimeDiagnostics;\n close(): void;\n} {\n const runtime = buildRuntime<T>(options, schema);\n return Object.freeze({\n webhooks: runtime.webhooks,\n diagnostics: () => runtime.state.diagnostics(),\n close: runtime.close,\n [Symbol.for(\"@repost/client diagnostics seed\")]: (counter: \"concurrencyOverloadRejections\", value: number) => {\n runtime.state.seedDiagnosticCounter(counter, value);\n },\n });\n}\n\nfunction buildRuntime<T>(options: RepostClientOptions, schema: SchemaDescriptor): { webhooks: T; state: RuntimeState; close(): void } {\n assertDescriptorFormat(schema.descriptorFormatVersion);\n if (schema.descriptorFormatVersion === DESCRIPTOR_FORMAT_VERSION) {\n assertDescriptorShape(schema);\n }\n const snapshot = snapshotOptions(options);\n const state = new RuntimeState(snapshot.maxInFlightOperations, snapshot.maxBufferedBytes);\n const operations = createSendOperation(snapshot, schema, state);\n\n const tree: Record<string, Record<string, unknown>> = {};\n for (const [group, members] of Object.entries(schema.webhooks)) {\n const groupTree: Record<string, unknown> = {};\n for (const [member, event] of Object.entries(members)) {\n groupTree[member] = (input: SendInput) => operations.send(event, input);\n }\n tree[group] = groupTree;\n }\n return { webhooks: tree as T, state, close: operations.close };\n}\n\nfunction assertDescriptorShape(schema: SchemaDescriptor): void {\n validateModelDescriptors(schema.models, schema.enums);\n for (const group of Object.keys(schema.webhooks).sort(compareUnicodeScalarValues)) {\n const members = schema.webhooks[group];\n if (!members) continue;\n for (const member of Object.keys(members).sort(compareUnicodeScalarValues)) {\n const event = members[member];\n if (event && !Object.prototype.hasOwnProperty.call(schema.models, event.model)) {\n const path = `${appendPath(appendPath(\"$.webhooks\", group), member)}.model`;\n throw new Error(\n `@repost/client: [INVALID_DESCRIPTOR_REFERENCE] ${path}: model descriptor '${event.model}' does not exist.`,\n );\n }\n }\n }\n}\n\n/**\n * Refuse a generated client whose descriptor format this runtime does not\n * implement, with the concrete fix per direction. A package generated before\n * versioning existed declares nothing — accepted with a one-time warning for\n * one release.\n */\nfunction assertDescriptorFormat(declared: number | undefined): void {\n if (declared === DESCRIPTOR_FORMAT_VERSION) {\n return;\n }\n if (declared === undefined) {\n if (!warnedPreVersioning) {\n warnedPreVersioning = true;\n console.warn(\n \"@repost/client: this generated client predates descriptor-format versioning; regenerate it with `repost schema generate`. Support for unversioned clients will be removed in a future release.\",\n );\n }\n return;\n }\n throw new RepostDescriptorVersionError({ errorCode: \"DESCRIPTOR_VERSION\", deliveryState: \"NOT_SENT\" });\n}\n"],"names":["crypto","require$$0","sha3","require$$1","global","createId","encoder","RESPONSE_LIMIT_BYTES"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|