@query-farm/vgi-rpc 0.7.4 → 0.7.5

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/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/fzstd/esm/index.mjs", "../src/util/zstd.ts", "../src/access-log.ts", "../src/errors.ts", "../src/auth.ts", "../src/constants.ts", "../src/arrow/impl-arrowjs/index.ts", "../src/arrow/predicates.ts", "../src/external.ts", "../src/wire/response.ts", "../src/http/common.ts", "../src/client/capabilities.ts", "../src/client/introspect.ts", "../src/client/ipc.ts", "../src/wire/reader.ts", "../src/client/stream.ts", "../src/client/uploadUrl.ts", "../src/client/connect.ts", "../src/client/oauth.ts", "../src/client/pipe.ts", "../src/http/auth.ts", "../src/util/web-crypto.ts", "../src/http/bearer.ts", "../src/util/schema.ts", "../src/dispatch/describe.ts", "../src/types.ts", "../src/util/gzip.ts", "../src/http/handler.ts", "../src/wire/opaque.ts", "../src/wire/request.ts", "../node_modules/@noble/ciphers/utils.js", "../node_modules/@noble/ciphers/_arx.js", "../node_modules/@noble/ciphers/_poly1305.js", "../node_modules/@noble/ciphers/chacha.js", "../src/crypto.ts", "../src/http/token.ts", "../src/http/dispatch.ts", "../src/http/pages.ts", "../src/http/oauth-pkce.ts", "../src/http/sticky.ts", "../src/http/types.ts", "../node_modules/oauth4webapi/build/index.js", "../src/http/jwt.ts", "../src/http/mtls.ts", "../src/launcher/hash.ts", "../src/launcher/launch.ts", "../src/launcher/lock.ts", "../src/launcher/state.ts", "../src/launcher/serve-unix.ts", "../src/dispatch/stream.ts", "../src/dispatch/unary.ts", "../src/wire/writer.ts", "../src/schema.ts", "../src/protocol.ts", "../src/server.ts"],
3
+ "sources": ["../node_modules/fzstd/esm/index.mjs", "../src/util/zstd.ts", "../src/access-log.ts", "../src/errors.ts", "../src/auth.ts", "../src/constants.ts", "../src/arrow/impl-arrowjs/index.ts", "../src/arrow/predicates.ts", "../src/external.ts", "../src/wire/response.ts", "../src/http/common.ts", "../src/client/capabilities.ts", "../src/client/introspect.ts", "../src/client/ipc.ts", "../src/wire/reader.ts", "../src/client/stream.ts", "../src/client/uploadUrl.ts", "../src/client/connect.ts", "../src/client/oauth.ts", "../src/client/pipe.ts", "../src/http/auth.ts", "../src/util/web-crypto.ts", "../src/http/bearer.ts", "../src/util/schema.ts", "../src/dispatch/describe.ts", "../src/types.ts", "../src/util/gzip.ts", "../src/http/handler.ts", "../src/wire/opaque.ts", "../src/wire/request.ts", "../node_modules/@noble/ciphers/utils.js", "../node_modules/@noble/ciphers/_arx.js", "../node_modules/@noble/ciphers/_poly1305.js", "../node_modules/@noble/ciphers/chacha.js", "../src/crypto.ts", "../src/http/token.ts", "../src/http/dispatch.ts", "../src/http/pages.ts", "../src/http/oauth-pkce.ts", "../src/http/sticky.ts", "../src/http/types.ts", "../node_modules/oauth4webapi/build/index.js", "../src/http/jwt.ts", "../src/http/mtls.ts", "../src/schema.ts", "../src/protocol.ts", "../src/dispatch/stream.ts", "../src/dispatch/unary.ts", "../src/wire/writer.ts", "../src/server.ts", "../src/launcher/hash.ts", "../src/launcher/launch.ts", "../src/launcher/lock.ts", "../src/launcher/state.ts", "../src/launcher/serve-unix.ts"],
4
4
  "sourcesContent": [
5
5
  "// Some numerical data is initialized as -1 even when it doesn't need initialization to help the JIT infer types\n// aliases for shorter compressed code (most minifers don't do this)\nvar ab = ArrayBuffer, u8 = Uint8Array, u16 = Uint16Array, i16 = Int16Array, u32 = Uint32Array, i32 = Int32Array;\nvar slc = function (v, s, e) {\n if (u8.prototype.slice)\n return u8.prototype.slice.call(v, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n var n = new u8(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\nvar fill = function (v, n, s, e) {\n if (u8.prototype.fill)\n return u8.prototype.fill.call(v, n, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n for (; s < e; ++s)\n v[s] = n;\n return v;\n};\nvar cpw = function (v, t, s, e) {\n if (u8.prototype.copyWithin)\n return u8.prototype.copyWithin.call(v, t, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n while (s < e) {\n v[t++] = v[s++];\n }\n};\n/**\n * Codes for errors generated within this library\n */\nexport var ZstdErrorCode = {\n InvalidData: 0,\n WindowSizeTooLarge: 1,\n InvalidBlockType: 2,\n FSEAccuracyTooHigh: 3,\n DistanceTooFarBack: 4,\n UnexpectedEOF: 5\n};\n// error codes\nvar ec = [\n 'invalid zstd data',\n 'window size too large (>2046MB)',\n 'invalid block type',\n 'FSE accuracy too high',\n 'match distance too far back',\n 'unexpected EOF'\n];\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\nvar rb = function (d, b, n) {\n var i = 0, o = 0;\n for (; i < n; ++i)\n o |= d[b++] << (i << 3);\n return o;\n};\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\n// read Zstandard frame header\nvar rzfh = function (dat, w) {\n var n3 = dat[0] | (dat[1] << 8) | (dat[2] << 16);\n if (n3 == 0x2FB528 && dat[3] == 253) {\n // Zstandard\n var flg = dat[4];\n // single segment checksum dict flag frame content flag\n var ss = (flg >> 5) & 1, cc = (flg >> 2) & 1, df = flg & 3, fcf = flg >> 6;\n if (flg & 8)\n err(0);\n // byte\n var bt = 6 - ss;\n // dict bytes\n var db = df == 3 ? 4 : df;\n // dictionary id\n var di = rb(dat, bt, db);\n bt += db;\n // frame size bytes\n var fsb = fcf ? (1 << fcf) : ss;\n // frame source size\n var fss = rb(dat, bt, fsb) + ((fcf == 1) && 256);\n // window size\n var ws = fss;\n if (!ss) {\n // window descriptor\n var wb = 1 << (10 + (dat[5] >> 3));\n ws = wb + (wb >> 3) * (dat[5] & 7);\n }\n if (ws > 2145386496)\n err(1);\n var buf = new u8((w == 1 ? (fss || ws) : w ? 0 : ws) + 12);\n buf[0] = 1, buf[4] = 4, buf[8] = 8;\n return {\n b: bt + fsb,\n y: 0,\n l: 0,\n d: di,\n w: (w && w != 1) ? w : buf.subarray(12),\n e: ws,\n o: new i32(buf.buffer, 0, 3),\n u: fss,\n c: cc,\n m: Math.min(131072, ws)\n };\n }\n else if (((n3 >> 4) | (dat[3] << 20)) == 0x184D2A5) {\n // skippable\n return b4(dat, 4) + 8;\n }\n err(0);\n};\n// most significant bit for nonzero\nvar msb = function (val) {\n var bits = 0;\n for (; (1 << bits) <= val; ++bits)\n ;\n return bits - 1;\n};\n// read finite state entropy\nvar rfse = function (dat, bt, mal) {\n // table pos\n var tpos = (bt << 3) + 4;\n // accuracy log\n var al = (dat[bt] & 15) + 5;\n if (al > mal)\n err(3);\n // size\n var sz = 1 << al;\n // probabilities symbols repeat index high threshold\n var probs = sz, sym = -1, re = -1, i = -1, ht = sz;\n // optimization: single allocation is much faster\n var buf = new ab(512 + (sz << 2));\n var freq = new i16(buf, 0, 256);\n // same view as freq\n var dstate = new u16(buf, 0, 256);\n var nstate = new u16(buf, 512, sz);\n var bb1 = 512 + (sz << 1);\n var syms = new u8(buf, bb1, sz);\n var nbits = new u8(buf, bb1 + sz);\n while (sym < 255 && probs > 0) {\n var bits = msb(probs + 1);\n var cbt = tpos >> 3;\n // mask\n var msk = (1 << (bits + 1)) - 1;\n var val = ((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (tpos & 7)) & msk;\n // mask (1 fewer bit)\n var msk1fb = (1 << bits) - 1;\n // max small value\n var msv = msk - probs - 1;\n // small value\n var sval = val & msk1fb;\n if (sval < msv)\n tpos += bits, val = sval;\n else {\n tpos += bits + 1;\n if (val > msk1fb)\n val -= msv;\n }\n freq[++sym] = --val;\n if (val == -1) {\n probs += val;\n syms[--ht] = sym;\n }\n else\n probs -= val;\n if (!val) {\n do {\n // repeat byte\n var rbt = tpos >> 3;\n re = ((dat[rbt] | (dat[rbt + 1] << 8)) >> (tpos & 7)) & 3;\n tpos += 2;\n sym += re;\n } while (re == 3);\n }\n }\n if (sym > 255 || probs)\n err(0);\n var sympos = 0;\n // sym step (coprime with sz - formula from zstd source)\n var sstep = (sz >> 1) + (sz >> 3) + 3;\n // sym mask\n var smask = sz - 1;\n for (var s = 0; s <= sym; ++s) {\n var sf = freq[s];\n if (sf < 1) {\n dstate[s] = -sf;\n continue;\n }\n // This is split into two loops in zstd to avoid branching, but as JS is higher-level that is unnecessary\n for (i = 0; i < sf; ++i) {\n syms[sympos] = s;\n do {\n sympos = (sympos + sstep) & smask;\n } while (sympos >= ht);\n }\n }\n // After spreading symbols, should be zero again\n if (sympos)\n err(0);\n for (i = 0; i < sz; ++i) {\n // next state\n var ns = dstate[syms[i]]++;\n // num bits\n var nb = nbits[i] = al - msb(ns);\n nstate[i] = (ns << nb) - sz;\n }\n return [(tpos + 7) >> 3, {\n b: al,\n s: syms,\n n: nbits,\n t: nstate\n }];\n};\n// read huffman\nvar rhu = function (dat, bt) {\n // index weight count\n var i = 0, wc = -1;\n // buffer header byte\n var buf = new u8(292), hb = dat[bt];\n // huffman weights\n var hw = buf.subarray(0, 256);\n // rank count\n var rc = buf.subarray(256, 268);\n // rank index\n var ri = new u16(buf.buffer, 268);\n // NOTE: at this point bt is 1 less than expected\n if (hb < 128) {\n // end byte, fse decode table\n var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1];\n bt += hb;\n var epos = ebt << 3;\n // last byte\n var lb = dat[bt];\n if (!lb)\n err(0);\n // state1 state2 state1 bits state2 bits\n var st1 = 0, st2 = 0, btr1 = fdt.b, btr2 = btr1;\n // fse pos\n // pre-increment to account for original deficit of 1\n var fpos = (++bt << 3) - 8 + msb(lb);\n for (;;) {\n fpos -= btr1;\n if (fpos < epos)\n break;\n var cbt = fpos >> 3;\n st1 += ((dat[cbt] | (dat[cbt + 1] << 8)) >> (fpos & 7)) & ((1 << btr1) - 1);\n hw[++wc] = fdt.s[st1];\n fpos -= btr2;\n if (fpos < epos)\n break;\n cbt = fpos >> 3;\n st2 += ((dat[cbt] | (dat[cbt + 1] << 8)) >> (fpos & 7)) & ((1 << btr2) - 1);\n hw[++wc] = fdt.s[st2];\n btr1 = fdt.n[st1];\n st1 = fdt.t[st1];\n btr2 = fdt.n[st2];\n st2 = fdt.t[st2];\n }\n if (++wc > 255)\n err(0);\n }\n else {\n wc = hb - 127;\n for (; i < wc; i += 2) {\n var byte = dat[++bt];\n hw[i] = byte >> 4;\n hw[i + 1] = byte & 15;\n }\n ++bt;\n }\n // weight exponential sum\n var wes = 0;\n for (i = 0; i < wc; ++i) {\n var wt = hw[i];\n // bits must be at most 11, same as weight\n if (wt > 11)\n err(0);\n wes += wt && (1 << (wt - 1));\n }\n // max bits\n var mb = msb(wes) + 1;\n // table size\n var ts = 1 << mb;\n // remaining sum\n var rem = ts - wes;\n // must be power of 2\n if (rem & (rem - 1))\n err(0);\n hw[wc++] = msb(rem) + 1;\n for (i = 0; i < wc; ++i) {\n var wt = hw[i];\n ++rc[hw[i] = wt && (mb + 1 - wt)];\n }\n // huf buf\n var hbuf = new u8(ts << 1);\n // symbols num bits\n var syms = hbuf.subarray(0, ts), nb = hbuf.subarray(ts);\n ri[mb] = 0;\n for (i = mb; i > 0; --i) {\n var pv = ri[i];\n fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << (mb - i)));\n }\n if (ri[0] != ts)\n err(0);\n for (i = 0; i < wc; ++i) {\n var bits = hw[i];\n if (bits) {\n var code = ri[bits];\n fill(syms, i, code, ri[bits] = code + (1 << (mb - bits)));\n }\n }\n return [bt, {\n n: nb,\n b: mb,\n s: syms\n }];\n};\n// Tables generated using this:\n// https://gist.github.com/101arrowz/a979452d4355992cbf8f257cbffc9edd\n// default literal length table\nvar dllt = /*#__PURE__*/ rfse(/*#__PURE__*/ new u8([\n 81, 16, 99, 140, 49, 198, 24, 99, 12, 33, 196, 24, 99, 102, 102, 134, 70, 146, 4\n]), 0, 6)[1];\n// default match length table\nvar dmlt = /*#__PURE__*/ rfse(/*#__PURE__*/ new u8([\n 33, 20, 196, 24, 99, 140, 33, 132, 16, 66, 8, 33, 132, 16, 66, 8, 33, 68, 68, 68, 68, 68, 68, 68, 68, 36, 9\n]), 0, 6)[1];\n// default offset code table\nvar doct = /*#__PURE__ */ rfse(/*#__PURE__*/ new u8([\n 32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2\n]), 0, 5)[1];\n// bits to baseline\nvar b2bl = function (b, s) {\n var len = b.length, bl = new i32(len);\n for (var i = 0; i < len; ++i) {\n bl[i] = s;\n s += 1 << b[i];\n }\n return bl;\n};\n// literal length bits\nvar llb = /*#__PURE__ */ new u8(( /*#__PURE__ */new i32([\n 0, 0, 0, 0, 16843009, 50528770, 134678020, 202050057, 269422093\n])).buffer, 0, 36);\n// literal length baseline\nvar llbl = /*#__PURE__ */ b2bl(llb, 0);\n// match length bits\nvar mlb = /*#__PURE__ */ new u8(( /*#__PURE__ */new i32([\n 0, 0, 0, 0, 0, 0, 0, 0, 16843009, 50528770, 117769220, 185207048, 252579084, 16\n])).buffer, 0, 53);\n// match length baseline\nvar mlbl = /*#__PURE__ */ b2bl(mlb, 3);\n// decode huffman stream\nvar dhu = function (dat, out, hu) {\n var len = dat.length, ss = out.length, lb = dat[len - 1], msk = (1 << hu.b) - 1, eb = -hu.b;\n if (!lb)\n err(0);\n var st = 0, btr = hu.b, pos = (len << 3) - 8 + msb(lb) - btr, i = -1;\n for (; pos > eb && i < ss;) {\n var cbt = pos >> 3;\n var val = (dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (pos & 7);\n st = ((st << btr) | val) & msk;\n out[++i] = hu.s[st];\n pos -= (btr = hu.n[st]);\n }\n if (pos != eb || i + 1 != ss)\n err(0);\n};\n// decode huffman stream 4x\n// TODO: use workers to parallelize\nvar dhu4 = function (dat, out, hu) {\n var bt = 6;\n var ss = out.length, sz1 = (ss + 3) >> 2, sz2 = sz1 << 1, sz3 = sz1 + sz2;\n dhu(dat.subarray(bt, bt += dat[0] | (dat[1] << 8)), out.subarray(0, sz1), hu);\n dhu(dat.subarray(bt, bt += dat[2] | (dat[3] << 8)), out.subarray(sz1, sz2), hu);\n dhu(dat.subarray(bt, bt += dat[4] | (dat[5] << 8)), out.subarray(sz2, sz3), hu);\n dhu(dat.subarray(bt), out.subarray(sz3), hu);\n};\n// read Zstandard block\nvar rzb = function (dat, st, out) {\n var _a;\n var bt = st.b;\n // byte 0 block type\n var b0 = dat[bt], btype = (b0 >> 1) & 3;\n st.l = b0 & 1;\n var sz = (b0 >> 3) | (dat[bt + 1] << 5) | (dat[bt + 2] << 13);\n // end byte for block\n var ebt = (bt += 3) + sz;\n if (btype == 1) {\n if (bt >= dat.length)\n return;\n st.b = bt + 1;\n if (out) {\n fill(out, dat[bt], st.y, st.y += sz);\n return out;\n }\n return fill(new u8(sz), dat[bt]);\n }\n if (ebt > dat.length)\n return;\n if (btype == 0) {\n st.b = ebt;\n if (out) {\n out.set(dat.subarray(bt, ebt), st.y);\n st.y += sz;\n return out;\n }\n return slc(dat, bt, ebt);\n }\n if (btype == 2) {\n // byte 3 lit btype size format\n var b3 = dat[bt], lbt = b3 & 3, sf = (b3 >> 2) & 3;\n // lit src size lit cmp sz 4 streams\n var lss = b3 >> 4, lcs = 0, s4 = 0;\n if (lbt < 2) {\n if (sf & 1)\n lss |= (dat[++bt] << 4) | ((sf & 2) && (dat[++bt] << 12));\n else\n lss = b3 >> 3;\n }\n else {\n s4 = sf;\n if (sf < 2)\n lss |= ((dat[++bt] & 63) << 4), lcs = (dat[bt] >> 6) | (dat[++bt] << 2);\n else if (sf == 2)\n lss |= (dat[++bt] << 4) | ((dat[++bt] & 3) << 12), lcs = (dat[bt] >> 2) | (dat[++bt] << 6);\n else\n lss |= (dat[++bt] << 4) | ((dat[++bt] & 63) << 12), lcs = (dat[bt] >> 6) | (dat[++bt] << 2) | (dat[++bt] << 10);\n }\n ++bt;\n // add literals to end - can never overlap with backreferences because unused literals always appended\n var buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m);\n // starting point for literals\n var spl = buf.length - lss;\n if (lbt == 0)\n buf.set(dat.subarray(bt, bt += lss), spl);\n else if (lbt == 1)\n fill(buf, dat[bt++], spl);\n else {\n // huffman table\n var hu = st.h;\n if (lbt == 2) {\n var hud = rhu(dat, bt);\n // subtract description length\n lcs += bt - (bt = hud[0]);\n st.h = hu = hud[1];\n }\n else if (!hu)\n err(0);\n (s4 ? dhu4 : dhu)(dat.subarray(bt, bt += lcs), buf.subarray(spl), hu);\n }\n // num sequences\n var ns = dat[bt++];\n if (ns) {\n if (ns == 255)\n ns = (dat[bt++] | (dat[bt++] << 8)) + 0x7F00;\n else if (ns > 127)\n ns = ((ns - 128) << 8) | dat[bt++];\n // symbol compression modes\n var scm = dat[bt++];\n if (scm & 3)\n err(0);\n var dts = [dmlt, doct, dllt];\n for (var i = 2; i > -1; --i) {\n var md = (scm >> ((i << 1) + 2)) & 3;\n if (md == 1) {\n // rle buf\n var rbuf = new u8([0, 0, dat[bt++]]);\n dts[i] = {\n s: rbuf.subarray(2, 3),\n n: rbuf.subarray(0, 1),\n t: new u16(rbuf.buffer, 0, 1),\n b: 0\n };\n }\n else if (md == 2) {\n // accuracy log 8 for offsets, 9 for others\n _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1];\n }\n else if (md == 3) {\n if (!st.t)\n err(0);\n dts[i] = st.t[i];\n }\n }\n var _b = st.t = dts, mlt = _b[0], oct = _b[1], llt = _b[2];\n var lb = dat[ebt - 1];\n if (!lb)\n err(0);\n var spos = (ebt << 3) - 8 + msb(lb) - llt.b, cbt = spos >> 3, oubt = 0;\n var lst = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << llt.b) - 1);\n cbt = (spos -= oct.b) >> 3;\n var ost = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << oct.b) - 1);\n cbt = (spos -= mlt.b) >> 3;\n var mst = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << mlt.b) - 1);\n for (++ns; --ns;) {\n var llc = llt.s[lst];\n var lbtr = llt.n[lst];\n var mlc = mlt.s[mst];\n var mbtr = mlt.n[mst];\n var ofc = oct.s[ost];\n var obtr = oct.n[ost];\n cbt = (spos -= ofc) >> 3;\n var ofp = 1 << ofc;\n var off = ofp + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16) | (dat[cbt + 3] << 24)) >>> (spos & 7)) & (ofp - 1));\n cbt = (spos -= mlb[mlc]) >> 3;\n var ml = mlbl[mlc] + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (spos & 7)) & ((1 << mlb[mlc]) - 1));\n cbt = (spos -= llb[llc]) >> 3;\n var ll = llbl[llc] + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (spos & 7)) & ((1 << llb[llc]) - 1));\n cbt = (spos -= lbtr) >> 3;\n lst = llt.t[lst] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << lbtr) - 1));\n cbt = (spos -= mbtr) >> 3;\n mst = mlt.t[mst] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << mbtr) - 1));\n cbt = (spos -= obtr) >> 3;\n ost = oct.t[ost] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << obtr) - 1));\n if (off > 3) {\n st.o[2] = st.o[1];\n st.o[1] = st.o[0];\n st.o[0] = off -= 3;\n }\n else {\n var idx = off - (ll != 0);\n if (idx) {\n off = idx == 3 ? st.o[0] - 1 : st.o[idx];\n if (idx > 1)\n st.o[2] = st.o[1];\n st.o[1] = st.o[0];\n st.o[0] = off;\n }\n else\n off = st.o[0];\n }\n for (var i = 0; i < ll; ++i) {\n buf[oubt + i] = buf[spl + i];\n }\n oubt += ll, spl += ll;\n var stin = oubt - off;\n if (stin < 0) {\n var len = -stin;\n var bs = st.e + stin;\n if (len > ml)\n len = ml;\n for (var i = 0; i < len; ++i) {\n buf[oubt + i] = st.w[bs + i];\n }\n oubt += len, ml -= len, stin = 0;\n }\n for (var i = 0; i < ml; ++i) {\n buf[oubt + i] = buf[stin + i];\n }\n oubt += ml;\n }\n if (oubt != spl) {\n while (spl < buf.length) {\n buf[oubt++] = buf[spl++];\n }\n }\n else\n oubt = buf.length;\n if (out)\n st.y += oubt;\n else\n buf = slc(buf, 0, oubt);\n }\n else if (out) {\n st.y += lss;\n if (spl) {\n for (var i = 0; i < lss; ++i) {\n buf[i] = buf[spl + i];\n }\n }\n }\n else if (spl)\n buf = slc(buf, spl);\n st.b = ebt;\n return buf;\n }\n err(2);\n};\n// concat\nvar cct = function (bufs, ol) {\n if (bufs.length == 1)\n return bufs[0];\n var buf = new u8(ol);\n for (var i = 0, b = 0; i < bufs.length; ++i) {\n var chk = bufs[i];\n buf.set(chk, b);\n b += chk.length;\n }\n return buf;\n};\n/**\n * Decompresses Zstandard data\n * @param dat The input data\n * @param buf The output buffer. If unspecified, the function will allocate\n * exactly enough memory to fit the decompressed data. If your\n * data has multiple frames and you know the output size, specifying\n * it will yield better performance.\n * @returns The decompressed data\n */\nexport function decompress(dat, buf) {\n var bufs = [], nb = +!buf;\n var bt = 0, ol = 0;\n for (; dat.length;) {\n var st = rzfh(dat, nb || buf);\n if (typeof st == 'object') {\n if (nb) {\n buf = null;\n if (st.w.length == st.u) {\n bufs.push(buf = st.w);\n ol += st.u;\n }\n }\n else {\n bufs.push(buf);\n st.e = 0;\n }\n for (; !st.l;) {\n var blk = rzb(dat, st, buf);\n if (!blk)\n err(5);\n if (buf)\n st.e = st.y;\n else {\n bufs.push(blk);\n ol += blk.length;\n cpw(st.w, 0, blk.length);\n st.w.set(blk, st.w.length - blk.length);\n }\n }\n bt = st.b + (st.c * 4);\n }\n else\n bt = st;\n dat = dat.subarray(bt);\n }\n return cct(bufs, ol);\n}\n/**\n * Decompressor for Zstandard streamed data\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a Zstandard decompressor\n * @param ondata The handler for stream data\n */\n function Decompress(ondata) {\n this.ondata = ondata;\n this.c = [];\n this.l = 0;\n this.z = 0;\n }\n /**\n * Pushes data to be decompressed\n * @param chunk The chunk of data to push\n * @param final Whether or not this is the last chunk in the stream\n */\n Decompress.prototype.push = function (chunk, final) {\n if (typeof this.s == 'number') {\n var sub = Math.min(chunk.length, this.s);\n chunk = chunk.subarray(sub);\n this.s -= sub;\n }\n var sl = chunk.length;\n var ncs = sl + this.l;\n if (!this.s) {\n if (final) {\n if (!ncs) {\n this.ondata(new u8(0), true);\n return;\n }\n // min for frame + one block\n if (ncs < 5)\n err(5);\n }\n else if (ncs < 18) {\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n if (this.l) {\n this.c.push(chunk);\n chunk = cct(this.c, ncs);\n this.c = [];\n this.l = 0;\n }\n if (typeof (this.s = rzfh(chunk)) == 'number')\n return this.push(chunk, final);\n }\n if (typeof this.s != 'number') {\n if (ncs < (this.z || 3)) {\n if (final)\n err(5);\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n if (this.l) {\n this.c.push(chunk);\n chunk = cct(this.c, ncs);\n this.c = [];\n this.l = 0;\n }\n if (!this.z && ncs < (this.z = (chunk[this.s.b] & 2) ? 4 : 3 + ((chunk[this.s.b] >> 3) | (chunk[this.s.b + 1] << 5) | (chunk[this.s.b + 2] << 13)))) {\n if (final)\n err(5);\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n else\n this.z = 0;\n for (;;) {\n var blk = rzb(chunk, this.s);\n if (!blk) {\n if (final)\n err(5);\n var adc = chunk.subarray(this.s.b);\n this.s.b = 0;\n this.c.push(adc), this.l += adc.length;\n return;\n }\n else {\n this.ondata(blk, false);\n cpw(this.s.w, 0, blk.length);\n this.s.w.set(blk, this.s.w.length - blk.length);\n }\n if (this.s.l) {\n var rest = chunk.subarray(this.s.b);\n this.s = this.s.c * 4;\n this.push(rest, final);\n return;\n }\n }\n }\n else if (final)\n err(5);\n };\n return Decompress;\n}());\nexport { Decompress };\n",
6
6
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Cross-runtime zstd compression/decompression.\n *\n * Decompression order of preference: Bun.zstd → node:zlib zstd (Node 22.15+,\n * Deno 2.6.9+) → fzstd pure-JS fallback. The fzstd fallback exists so\n * Cloudflare workerd — which has no native zstd — can still decode\n * `Content-Encoding: zstd` request bodies (the DuckDB VGI extension always\n * sends them). fzstd is decompression-only, so compression on workerd still\n * throws.\n */\n\nimport { decompress as fzstdDecompress } from \"fzstd\";\n\n// Resolve node:zlib via indirect-string require so esbuild/wrangler can't\n// trace it statically. On workerd we want the fzstd path, not a node:zlib\n// import that wouldn't have zstd anyway.\nconst _NODE_ZLIB_MOD = \"node:zlib\";\nconst isBun = typeof globalThis.Bun !== \"undefined\";\nfunction _loadZlibOrNull(): any | null {\n const req: any = (import.meta as any).require ?? (globalThis as any).require ?? null;\n if (!req) return null;\n try {\n return req(_NODE_ZLIB_MOD);\n } catch {\n return null;\n }\n}\n\n/** Return true when the current runtime can produce zstd-compressed output.\n *\n * Bun has `Bun.zstdCompressSync`; Node ≥22.15 / Deno ≥2.6.9 expose it via\n * `node:zlib`. Other runtimes (workerd, older Node) have no encoder. The\n * fzstd fallback is decompress-only so it doesn't count.\n */\nexport function isZstdCompressAvailable(): boolean {\n if (isBun) return true;\n const zlib = _loadZlibOrNull();\n return typeof zlib?.zstdCompressSync === \"function\";\n}\n\n/** Compress data with zstd at the given level (1-22). */\nexport async function zstdCompress(data: Uint8Array, level: number): Promise<Uint8Array<ArrayBuffer>> {\n if (isBun) {\n return new Uint8Array(Bun.zstdCompressSync(data, { level }));\n }\n const zlib = _loadZlibOrNull();\n const fn = zlib?.zstdCompressSync;\n if (typeof fn !== \"function\") {\n throw new Error(\n \"zstd compression is not available in this runtime. \" +\n \"Requires Bun or Node.js >= 22.15 / Deno >= 2.6.9. \" +\n \"(workerd has no native zstd encoder; fzstd is decompress-only.)\",\n );\n }\n return new Uint8Array(\n fn(data, {\n params: {\n [zlib.constants.ZSTD_c_compressionLevel]: level,\n },\n }),\n );\n}\n\n/**\n * Decompress zstd-compressed data, optionally bounding the output size.\n *\n * Zstd frames carry the decompressed size in the header and decompressors\n * trust it eagerly: a ~3 KB compressed body claiming 100 MB output would\n * allocate 100 MB. When `maxOutputSize` is supplied, this helper:\n *\n * 1. Reads `Frame_Content_Size` from the frame header. If declared and\n * above the cap, refuses *before* allocation with a clear error.\n * 2. Decompresses, then asserts the actual output size is also under the\n * cap (covers frames whose size is not in the header — a streaming\n * cap would be tighter, but neither Bun.zstdDecompressSync nor\n * node:zlib's sync API exposes one, so we use the post-check).\n *\n * Mirrors the Python server-side fix in `_decompress_body` and the\n * client-side fix in `external_fetch.fetch_url`.\n */\nexport async function zstdDecompress(data: Uint8Array, maxOutputSize?: number): Promise<Uint8Array<ArrayBuffer>> {\n if (maxOutputSize != null) {\n const declared = readZstdFrameContentSize(data);\n if (declared !== null && declared > maxOutputSize) {\n throw new Error(`zstd decompressed size (${declared}) would exceed cap (${maxOutputSize})`);\n }\n }\n\n let out: Uint8Array<ArrayBuffer>;\n if (isBun) {\n out = new Uint8Array(Bun.zstdDecompressSync(data));\n } else {\n const zlib = _loadZlibOrNull();\n const fn = zlib?.zstdDecompressSync;\n if (typeof fn === \"function\") {\n out = new Uint8Array(fn(data));\n } else {\n // workerd path: no native zstd, fall back to the pure-JS decoder.\n // fzstd is decompress-only and synchronous; cap-checking already ran\n // above against the frame header, but pure-JS decode of large inputs\n // is slow — keep the upstream maxOutputSize tight.\n //\n // CRITICAL: copy into a freshly-allocated ArrayBuffer so byteOffset is\n // 0. fzstd internally returns subarray views with arbitrary byteOffset\n // (often not 8-aligned), and downstream Arrow IPC readers create\n // BigInt64Array views relative to the buffer's byteOffset — those\n // throw `start offset of BigInt64Array should be a multiple of 8` if\n // the underlying offset isn't 8-aligned.\n const decoded = fzstdDecompress(data);\n out = new Uint8Array(decoded.byteLength);\n out.set(decoded);\n }\n }\n\n if (maxOutputSize != null && out.byteLength > maxOutputSize) {\n throw new Error(`zstd decompressed size (${out.byteLength}) exceeds cap (${maxOutputSize})`);\n }\n return out;\n}\n\n/**\n * Parse `Frame_Content_Size` from a zstd frame header.\n *\n * Returns the declared decompressed size, or `null` if the frame header\n * does not include it (frames may omit it for streaming compression) or\n * the input is too short / not a valid zstd frame magic.\n *\n * Frame format (RFC 8478): magic(4) | FHD(1) | window_desc(0|1) |\n * dict_id(0|1|2|4) | frame_content_size(0|1|2|4|8). FCS_size depends on\n * FCS_field_size (FHD bits 6-7) and Single_Segment_flag (FHD bit 5).\n */\nfunction readZstdFrameContentSize(data: Uint8Array): number | null {\n if (data.length < 6) return null;\n // Magic: 0xFD2FB528 little-endian.\n if (data[0] !== 0x28 || data[1] !== 0xb5 || data[2] !== 0x2f || data[3] !== 0xfd) {\n return null;\n }\n const fhd = data[4];\n const fcsFieldSize = (fhd >> 6) & 0x3;\n const singleSegment = ((fhd >> 5) & 0x1) === 1;\n const dictIdFlag = fhd & 0x3;\n // Per spec: FCS_size = 0 → 0 unless Single_Segment_flag is set, then 1.\n const fcsSize = fcsFieldSize === 0 ? (singleSegment ? 1 : 0) : fcsFieldSize === 1 ? 2 : fcsFieldSize === 2 ? 4 : 8;\n if (fcsSize === 0) return null;\n\n const windowDescSize = singleSegment ? 0 : 1;\n const dictIdSize = dictIdFlag === 0 ? 0 : dictIdFlag === 1 ? 1 : dictIdFlag === 2 ? 2 : 4;\n const fcsOffset = 5 + windowDescSize + dictIdSize;\n if (data.length < fcsOffset + fcsSize) return null;\n\n let fcs = 0n;\n for (let i = 0; i < fcsSize; i++) {\n fcs |= BigInt(data[fcsOffset + i]) << BigInt(i * 8);\n }\n // FCS_field_size == 1 (size 2) carries an offset of 256.\n if (fcsSize === 2) fcs += 256n;\n if (fcs > BigInt(Number.MAX_SAFE_INTEGER)) return Number.MAX_SAFE_INTEGER;\n return Number(fcs);\n}\n",
@@ -46,19 +46,19 @@
46
46
  "let USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'oauth4webapi';\n const VERSION = 'v3.8.6';\n USER_AGENT = `${NAME}/${VERSION}`;\n}\nfunction looseInstanceOf(input, expected) {\n if (input == null) {\n return false;\n }\n try {\n return (input instanceof expected ||\n Object.getPrototypeOf(input)[Symbol.toStringTag] === expected.prototype[Symbol.toStringTag]);\n }\n catch {\n return false;\n }\n}\nconst ERR_INVALID_ARG_VALUE = 'ERR_INVALID_ARG_VALUE';\nconst ERR_INVALID_ARG_TYPE = 'ERR_INVALID_ARG_TYPE';\nfunction CodedTypeError(message, code, cause) {\n const err = new TypeError(message, { cause });\n Object.assign(err, { code });\n return err;\n}\nexport const allowInsecureRequests = Symbol();\nexport const clockSkew = Symbol();\nexport const clockTolerance = Symbol();\nexport const customFetch = Symbol();\nexport const modifyAssertion = Symbol();\nexport const jweDecrypt = Symbol();\nexport const jwksCache = Symbol();\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction buf(input) {\n if (typeof input === 'string') {\n return encoder.encode(input);\n }\n return decoder.decode(input);\n}\nlet encodeBase64Url;\nif (Uint8Array.prototype.toBase64) {\n encodeBase64Url = (input) => {\n if (input instanceof ArrayBuffer) {\n input = new Uint8Array(input);\n }\n return input.toBase64({ alphabet: 'base64url', omitPadding: true });\n };\n}\nelse {\n const CHUNK_SIZE = 0x8000;\n encodeBase64Url = (input) => {\n if (input instanceof ArrayBuffer) {\n input = new Uint8Array(input);\n }\n const arr = [];\n for (let i = 0; i < input.byteLength; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join('')).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n };\n}\nlet decodeBase64Url;\nif (Uint8Array.fromBase64) {\n decodeBase64Url = (input) => {\n try {\n return Uint8Array.fromBase64(input, { alphabet: 'base64url' });\n }\n catch (cause) {\n throw CodedTypeError('The input to be decoded is not correctly encoded.', ERR_INVALID_ARG_VALUE, cause);\n }\n };\n}\nelse {\n decodeBase64Url = (input) => {\n try {\n const binary = atob(input.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, ''));\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n }\n catch (cause) {\n throw CodedTypeError('The input to be decoded is not correctly encoded.', ERR_INVALID_ARG_VALUE, cause);\n }\n };\n}\nfunction b64u(input) {\n if (typeof input === 'string') {\n return decodeBase64Url(input);\n }\n return encodeBase64Url(input);\n}\nexport class UnsupportedOperationError extends Error {\n code;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = UNSUPPORTED_OPERATION;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class OperationProcessingError extends Error {\n code;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n if (options?.code) {\n this.code = options?.code;\n }\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nfunction OPE(message, code, cause) {\n return new OperationProcessingError(message, { code, cause });\n}\nasync function calculateJwkThumbprint(jwk) {\n let components;\n switch (jwk.kty) {\n case 'EC':\n components = {\n crv: jwk.crv,\n kty: jwk.kty,\n x: jwk.x,\n y: jwk.y,\n };\n break;\n case 'OKP':\n components = {\n crv: jwk.crv,\n kty: jwk.kty,\n x: jwk.x,\n };\n break;\n case 'AKP':\n components = {\n alg: jwk.alg,\n kty: jwk.kty,\n pub: jwk.pub,\n };\n break;\n case 'RSA':\n components = {\n e: jwk.e,\n kty: jwk.kty,\n n: jwk.n,\n };\n break;\n default:\n throw new UnsupportedOperationError('unsupported JWK key type', { cause: jwk });\n }\n return b64u(await crypto.subtle.digest('SHA-256', buf(JSON.stringify(components))));\n}\nfunction assertCryptoKey(key, it) {\n if (!(key instanceof CryptoKey)) {\n throw CodedTypeError(`${it} must be a CryptoKey`, ERR_INVALID_ARG_TYPE);\n }\n}\nfunction assertPrivateKey(key, it) {\n assertCryptoKey(key, it);\n if (key.type !== 'private') {\n throw CodedTypeError(`${it} must be a private CryptoKey`, ERR_INVALID_ARG_VALUE);\n }\n}\nfunction assertPublicKey(key, it) {\n assertCryptoKey(key, it);\n if (key.type !== 'public') {\n throw CodedTypeError(`${it} must be a public CryptoKey`, ERR_INVALID_ARG_VALUE);\n }\n}\nfunction normalizeTyp(value) {\n return value.toLowerCase().replace(/^application\\//, '');\n}\nfunction isJsonObject(input) {\n if (input === null || typeof input !== 'object' || Array.isArray(input)) {\n return false;\n }\n return true;\n}\nfunction prepareHeaders(input) {\n if (looseInstanceOf(input, Headers)) {\n input = Object.fromEntries(input.entries());\n }\n const headers = new Headers(input ?? {});\n if (USER_AGENT && !headers.has('user-agent')) {\n headers.set('user-agent', USER_AGENT);\n }\n if (headers.has('authorization')) {\n throw CodedTypeError('\"options.headers\" must not include the \"authorization\" header name', ERR_INVALID_ARG_VALUE);\n }\n return headers;\n}\nfunction signal(url, value) {\n if (value !== undefined) {\n if (typeof value === 'function') {\n value = value(url.href);\n }\n if (!(value instanceof AbortSignal)) {\n throw CodedTypeError('\"options.signal\" must return or be an instance of AbortSignal', ERR_INVALID_ARG_TYPE);\n }\n return value;\n }\n return undefined;\n}\nfunction replaceDoubleSlash(pathname) {\n if (pathname.includes('//')) {\n return pathname.replace('//', '/');\n }\n return pathname;\n}\nfunction prependWellKnown(url, wellKnown, allowTerminatingSlash = false) {\n if (url.pathname === '/') {\n url.pathname = wellKnown;\n }\n else {\n url.pathname = replaceDoubleSlash(`${wellKnown}/${allowTerminatingSlash ? url.pathname : url.pathname.replace(/(\\/)$/, '')}`);\n }\n return url;\n}\nfunction appendWellKnown(url, wellKnown) {\n url.pathname = replaceDoubleSlash(`${url.pathname}/${wellKnown}`);\n return url;\n}\nasync function performDiscovery(input, urlName, transform, options) {\n if (!(input instanceof URL)) {\n throw CodedTypeError(`\"${urlName}\" must be an instance of URL`, ERR_INVALID_ARG_TYPE);\n }\n checkProtocol(input, options?.[allowInsecureRequests] !== true);\n const url = transform(new URL(input.href));\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n return (options?.[customFetch] || fetch)(url.href, {\n body: undefined,\n headers: Object.fromEntries(headers.entries()),\n method: 'GET',\n redirect: 'manual',\n signal: signal(url, options?.signal),\n });\n}\nexport async function discoveryRequest(issuerIdentifier, options) {\n return performDiscovery(issuerIdentifier, 'issuerIdentifier', (url) => {\n switch (options?.algorithm) {\n case undefined:\n case 'oidc':\n appendWellKnown(url, '.well-known/openid-configuration');\n break;\n case 'oauth2':\n prependWellKnown(url, '.well-known/oauth-authorization-server');\n break;\n default:\n throw CodedTypeError('\"options.algorithm\" must be \"oidc\" (default), or \"oauth2\"', ERR_INVALID_ARG_VALUE);\n }\n return url;\n }, options);\n}\nfunction assertNumber(input, allow0, it, code, cause) {\n try {\n if (typeof input !== 'number' || !Number.isFinite(input)) {\n throw CodedTypeError(`${it} must be a number`, ERR_INVALID_ARG_TYPE, cause);\n }\n if (input > 0)\n return;\n if (allow0) {\n if (input !== 0) {\n throw CodedTypeError(`${it} must be a non-negative number`, ERR_INVALID_ARG_VALUE, cause);\n }\n return;\n }\n throw CodedTypeError(`${it} must be a positive number`, ERR_INVALID_ARG_VALUE, cause);\n }\n catch (err) {\n if (code) {\n throw OPE(err.message, code, cause);\n }\n throw err;\n }\n}\nfunction assertString(input, it, code, cause) {\n try {\n if (typeof input !== 'string') {\n throw CodedTypeError(`${it} must be a string`, ERR_INVALID_ARG_TYPE, cause);\n }\n if (input.length === 0) {\n throw CodedTypeError(`${it} must not be empty`, ERR_INVALID_ARG_VALUE, cause);\n }\n }\n catch (err) {\n if (code) {\n throw OPE(err.message, code, cause);\n }\n throw err;\n }\n}\nexport async function processDiscoveryResponse(expectedIssuerIdentifier, response) {\n const expected = expectedIssuerIdentifier;\n if (!(expected instanceof URL) && expected !== _nodiscoverycheck) {\n throw CodedTypeError('\"expectedIssuerIdentifier\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform Authorization Server Metadata response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.issuer, '\"response\" body \"issuer\" property', INVALID_RESPONSE, { body: json });\n if (expected !== _nodiscoverycheck && new URL(json.issuer).href !== expected.href) {\n throw OPE('\"response\" body \"issuer\" property does not match the expected value', JSON_ATTRIBUTE_COMPARISON, { expected: expected.href, body: json, attribute: 'issuer' });\n }\n return json;\n}\nfunction assertApplicationJson(response) {\n assertContentType(response, 'application/json');\n}\nfunction notJson(response, ...types) {\n let msg = '\"response\" content-type must be ';\n if (types.length > 2) {\n const last = types.pop();\n msg += `${types.join(', ')}, or ${last}`;\n }\n else if (types.length === 2) {\n msg += `${types[0]} or ${types[1]}`;\n }\n else {\n msg += types[0];\n }\n return OPE(msg, RESPONSE_IS_NOT_JSON, response);\n}\nfunction assertContentTypes(response, ...types) {\n if (!types.includes(getContentType(response))) {\n throw notJson(response, ...types);\n }\n}\nfunction assertContentType(response, contentType) {\n if (getContentType(response) !== contentType) {\n throw notJson(response, contentType);\n }\n}\nfunction randomBytes() {\n return b64u(crypto.getRandomValues(new Uint8Array(32)));\n}\nexport function generateRandomCodeVerifier() {\n return randomBytes();\n}\nexport function generateRandomState() {\n return randomBytes();\n}\nexport function generateRandomNonce() {\n return randomBytes();\n}\nexport async function calculatePKCECodeChallenge(codeVerifier) {\n assertString(codeVerifier, 'codeVerifier');\n return b64u(await crypto.subtle.digest('SHA-256', buf(codeVerifier)));\n}\nfunction getKeyAndKid(input) {\n if (input instanceof CryptoKey) {\n return { key: input };\n }\n if (!(input?.key instanceof CryptoKey)) {\n return {};\n }\n if (input.kid !== undefined) {\n assertString(input.kid, '\"kid\"');\n }\n return {\n key: input.key,\n kid: input.kid,\n };\n}\nfunction psAlg(key) {\n switch (key.algorithm.hash.name) {\n case 'SHA-256':\n return 'PS256';\n case 'SHA-384':\n return 'PS384';\n case 'SHA-512':\n return 'PS512';\n default:\n throw new UnsupportedOperationError('unsupported RsaHashedKeyAlgorithm hash name', {\n cause: key,\n });\n }\n}\nfunction rsAlg(key) {\n switch (key.algorithm.hash.name) {\n case 'SHA-256':\n return 'RS256';\n case 'SHA-384':\n return 'RS384';\n case 'SHA-512':\n return 'RS512';\n default:\n throw new UnsupportedOperationError('unsupported RsaHashedKeyAlgorithm hash name', {\n cause: key,\n });\n }\n}\nfunction esAlg(key) {\n switch (key.algorithm.namedCurve) {\n case 'P-256':\n return 'ES256';\n case 'P-384':\n return 'ES384';\n case 'P-521':\n return 'ES512';\n default:\n throw new UnsupportedOperationError('unsupported EcKeyAlgorithm namedCurve', { cause: key });\n }\n}\nfunction keyToJws(key) {\n switch (key.algorithm.name) {\n case 'RSA-PSS':\n return psAlg(key);\n case 'RSASSA-PKCS1-v1_5':\n return rsAlg(key);\n case 'ECDSA':\n return esAlg(key);\n case 'Ed25519':\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n return key.algorithm.name;\n case 'EdDSA':\n return 'Ed25519';\n default:\n throw new UnsupportedOperationError('unsupported CryptoKey algorithm name', { cause: key });\n }\n}\nfunction getClockSkew(client) {\n const skew = client?.[clockSkew];\n return typeof skew === 'number' && Number.isFinite(skew) ? skew : 0;\n}\nfunction getClockTolerance(client) {\n const tolerance = client?.[clockTolerance];\n return typeof tolerance === 'number' && Number.isFinite(tolerance) && Math.sign(tolerance) !== -1\n ? tolerance\n : 30;\n}\nfunction epochTime() {\n return Math.floor(Date.now() / 1000);\n}\nfunction assertAs(as) {\n if (typeof as !== 'object' || as === null) {\n throw CodedTypeError('\"as\" must be an object', ERR_INVALID_ARG_TYPE);\n }\n assertString(as.issuer, '\"as.issuer\"');\n}\nfunction assertClient(client) {\n if (typeof client !== 'object' || client === null) {\n throw CodedTypeError('\"client\" must be an object', ERR_INVALID_ARG_TYPE);\n }\n assertString(client.client_id, '\"client.client_id\"');\n}\nfunction formUrlEncode(token) {\n return encodeURIComponent(token).replace(/(?:[-_.!~*'()]|%20)/g, (substring) => {\n switch (substring) {\n case '-':\n case '_':\n case '.':\n case '!':\n case '~':\n case '*':\n case \"'\":\n case '(':\n case ')':\n return `%${substring.charCodeAt(0).toString(16).toUpperCase()}`;\n case '%20':\n return '+';\n default:\n throw new Error();\n }\n });\n}\nexport function ClientSecretPost(clientSecret) {\n assertString(clientSecret, '\"clientSecret\"');\n return (_as, client, body, _headers) => {\n body.set('client_id', client.client_id);\n body.set('client_secret', clientSecret);\n };\n}\nexport function ClientSecretBasic(clientSecret) {\n assertString(clientSecret, '\"clientSecret\"');\n return (_as, client, _body, headers) => {\n const username = formUrlEncode(client.client_id);\n const password = formUrlEncode(clientSecret);\n const credentials = btoa(`${username}:${password}`);\n headers.set('authorization', `Basic ${credentials}`);\n };\n}\nfunction clientAssertionPayload(as, client) {\n const now = epochTime() + getClockSkew(client);\n return {\n jti: randomBytes(),\n aud: as.issuer,\n exp: now + 60,\n iat: now,\n nbf: now,\n iss: client.client_id,\n sub: client.client_id,\n };\n}\nexport function PrivateKeyJwt(clientPrivateKey, options) {\n const { key, kid } = getKeyAndKid(clientPrivateKey);\n assertPrivateKey(key, '\"clientPrivateKey.key\"');\n return async (as, client, body, _headers) => {\n const header = { alg: keyToJws(key), kid };\n const payload = clientAssertionPayload(as, client);\n options?.[modifyAssertion]?.(header, payload);\n body.set('client_id', client.client_id);\n body.set('client_assertion_type', 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer');\n body.set('client_assertion', await signJwt(header, payload, key));\n };\n}\nexport function ClientSecretJwt(clientSecret, options) {\n assertString(clientSecret, '\"clientSecret\"');\n const modify = options?.[modifyAssertion];\n let key;\n return async (as, client, body, _headers) => {\n key ||= await crypto.subtle.importKey('raw', buf(clientSecret), { hash: 'SHA-256', name: 'HMAC' }, false, ['sign']);\n const header = { alg: 'HS256' };\n const payload = clientAssertionPayload(as, client);\n modify?.(header, payload);\n const data = `${b64u(buf(JSON.stringify(header)))}.${b64u(buf(JSON.stringify(payload)))}`;\n const hmac = await crypto.subtle.sign(key.algorithm, key, buf(data));\n body.set('client_id', client.client_id);\n body.set('client_assertion_type', 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer');\n body.set('client_assertion', `${data}.${b64u(new Uint8Array(hmac))}`);\n };\n}\nexport function None() {\n return (_as, client, body, _headers) => {\n body.set('client_id', client.client_id);\n };\n}\nexport function TlsClientAuth() {\n return None();\n}\nasync function signJwt(header, payload, key) {\n if (!key.usages.includes('sign')) {\n throw CodedTypeError('CryptoKey instances used for signing assertions must include \"sign\" in their \"usages\"', ERR_INVALID_ARG_VALUE);\n }\n const input = `${b64u(buf(JSON.stringify(header)))}.${b64u(buf(JSON.stringify(payload)))}`;\n const signature = b64u(await crypto.subtle.sign(keyToSubtle(key), key, buf(input)));\n return `${input}.${signature}`;\n}\nexport async function issueRequestObject(as, client, parameters, privateKey, options) {\n assertAs(as);\n assertClient(client);\n parameters = new URLSearchParams(parameters);\n const { key, kid } = getKeyAndKid(privateKey);\n assertPrivateKey(key, '\"privateKey.key\"');\n parameters.set('client_id', client.client_id);\n const now = epochTime() + getClockSkew(client);\n const claims = {\n ...Object.fromEntries(parameters.entries()),\n jti: randomBytes(),\n aud: as.issuer,\n exp: now + 60,\n iat: now,\n nbf: now,\n iss: client.client_id,\n };\n let resource;\n if (parameters.has('resource') &&\n (resource = parameters.getAll('resource')) &&\n resource.length > 1) {\n claims.resource = resource;\n }\n {\n let value = parameters.get('max_age');\n if (value !== null) {\n claims.max_age = parseInt(value, 10);\n assertNumber(claims.max_age, true, '\"max_age\" parameter');\n }\n }\n {\n let value = parameters.get('claims');\n if (value !== null) {\n try {\n claims.claims = JSON.parse(value);\n }\n catch (cause) {\n throw OPE('failed to parse the \"claims\" parameter as JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(claims.claims)) {\n throw CodedTypeError('\"claims\" parameter must be a JSON with a top level object', ERR_INVALID_ARG_VALUE);\n }\n }\n }\n {\n let value = parameters.get('authorization_details');\n if (value !== null) {\n try {\n claims.authorization_details = JSON.parse(value);\n }\n catch (cause) {\n throw OPE('failed to parse the \"authorization_details\" parameter as JSON', PARSE_ERROR, cause);\n }\n if (!Array.isArray(claims.authorization_details)) {\n throw CodedTypeError('\"authorization_details\" parameter must be a JSON with a top level array', ERR_INVALID_ARG_VALUE);\n }\n }\n }\n const header = {\n alg: keyToJws(key),\n typ: 'oauth-authz-req+jwt',\n kid,\n };\n options?.[modifyAssertion]?.(header, claims);\n return signJwt(header, claims, key);\n}\nlet jwkCache;\nasync function getSetPublicJwkCache(key, alg) {\n const { kty, e, n, x, y, crv, pub } = await crypto.subtle.exportKey('jwk', key);\n const jwk = { kty, e, n, x, y, crv, pub };\n if (kty === 'AKP')\n jwk.alg = alg;\n jwkCache.set(key, jwk);\n return jwk;\n}\nasync function publicJwk(key, alg) {\n jwkCache ||= new WeakMap();\n return jwkCache.get(key) || getSetPublicJwkCache(key, alg);\n}\nconst URLParse = URL.parse\n ?\n (url, base) => URL.parse(url, base)\n : (url, base) => {\n try {\n return new URL(url, base);\n }\n catch {\n return null;\n }\n };\nexport function checkProtocol(url, enforceHttps) {\n if (enforceHttps && url.protocol !== 'https:') {\n throw OPE('only requests to HTTPS are allowed', HTTP_REQUEST_FORBIDDEN, url);\n }\n if (url.protocol !== 'https:' && url.protocol !== 'http:') {\n throw OPE('only HTTP and HTTPS requests are allowed', REQUEST_PROTOCOL_FORBIDDEN, url);\n }\n}\nfunction validateEndpoint(value, endpoint, useMtlsAlias, enforceHttps) {\n let url;\n if (typeof value !== 'string' || !(url = URLParse(value))) {\n throw OPE(`authorization server metadata does not contain a valid ${useMtlsAlias ? `\"as.mtls_endpoint_aliases.${endpoint}\"` : `\"as.${endpoint}\"`}`, value === undefined ? MISSING_SERVER_METADATA : INVALID_SERVER_METADATA, { attribute: useMtlsAlias ? `mtls_endpoint_aliases.${endpoint}` : endpoint });\n }\n checkProtocol(url, enforceHttps);\n return url;\n}\nexport function resolveEndpoint(as, endpoint, useMtlsAlias, enforceHttps) {\n if (useMtlsAlias && as.mtls_endpoint_aliases && endpoint in as.mtls_endpoint_aliases) {\n return validateEndpoint(as.mtls_endpoint_aliases[endpoint], endpoint, useMtlsAlias, enforceHttps);\n }\n return validateEndpoint(as[endpoint], endpoint, useMtlsAlias, enforceHttps);\n}\nexport async function pushedAuthorizationRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'pushed_authorization_request_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(parameters);\n body.set('client_id', client.client_id);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n if (options?.DPoP !== undefined) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, 'POST');\n }\n const response = await authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n options?.DPoP?.cacheNonce(response, url);\n return response;\n}\nclass DPoPHandler {\n #header;\n #privateKey;\n #publicKey;\n #clockSkew;\n #modifyAssertion;\n #map;\n #jkt;\n constructor(client, keyPair, options) {\n assertPrivateKey(keyPair?.privateKey, '\"DPoP.privateKey\"');\n assertPublicKey(keyPair?.publicKey, '\"DPoP.publicKey\"');\n if (!keyPair.publicKey.extractable) {\n throw CodedTypeError('\"DPoP.publicKey.extractable\" must be true', ERR_INVALID_ARG_VALUE);\n }\n this.#modifyAssertion = options?.[modifyAssertion];\n this.#clockSkew = getClockSkew(client);\n this.#privateKey = keyPair.privateKey;\n this.#publicKey = keyPair.publicKey;\n branded.add(this);\n }\n #get(key) {\n this.#map ||= new Map();\n let item = this.#map.get(key);\n if (item) {\n this.#map.delete(key);\n this.#map.set(key, item);\n }\n return item;\n }\n #set(key, val) {\n this.#map ||= new Map();\n this.#map.delete(key);\n if (this.#map.size === 100) {\n this.#map.delete(this.#map.keys().next().value);\n }\n this.#map.set(key, val);\n }\n async calculateThumbprint() {\n if (!this.#jkt) {\n const jwk = await crypto.subtle.exportKey('jwk', this.#publicKey);\n this.#jkt ||= await calculateJwkThumbprint(jwk);\n }\n return this.#jkt;\n }\n async addProof(url, headers, htm, accessToken) {\n const alg = keyToJws(this.#privateKey);\n this.#header ||= {\n alg,\n typ: 'dpop+jwt',\n jwk: await publicJwk(this.#publicKey, alg),\n };\n const nonce = this.#get(url.origin);\n const now = epochTime() + this.#clockSkew;\n const payload = {\n iat: now,\n jti: randomBytes(),\n htm,\n nonce,\n htu: `${url.origin}${url.pathname}`,\n ath: accessToken\n ? b64u(await crypto.subtle.digest('SHA-256', buf(accessToken)))\n : undefined,\n };\n this.#modifyAssertion?.(this.#header, payload);\n headers.set('dpop', await signJwt(this.#header, payload, this.#privateKey));\n }\n cacheNonce(response, url) {\n try {\n const nonce = response.headers.get('dpop-nonce');\n if (nonce) {\n this.#set(url.origin, nonce);\n }\n }\n catch { }\n }\n}\nexport function isDPoPNonceError(err) {\n if (err instanceof WWWAuthenticateChallengeError) {\n const { 0: challenge, length } = err.cause;\n return (length === 1 && challenge.scheme === 'dpop' && challenge.parameters.error === 'use_dpop_nonce');\n }\n if (err instanceof ResponseBodyError) {\n return err.error === 'use_dpop_nonce';\n }\n return false;\n}\nexport function DPoP(client, keyPair, options) {\n return new DPoPHandler(client, keyPair, options);\n}\nexport class ResponseBodyError extends Error {\n cause;\n code;\n error;\n status;\n error_description;\n response;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = RESPONSE_BODY_ERROR;\n this.cause = options.cause;\n this.error = options.cause.error;\n this.status = options.response.status;\n this.error_description = options.cause.error_description;\n Object.defineProperty(this, 'response', { enumerable: false, value: options.response });\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class AuthorizationResponseError extends Error {\n cause;\n code;\n error;\n error_description;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = AUTHORIZATION_RESPONSE_ERROR;\n this.cause = options.cause;\n this.error = options.cause.get('error');\n this.error_description = options.cause.get('error_description') ?? undefined;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class WWWAuthenticateChallengeError extends Error {\n cause;\n code;\n response;\n status;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = WWW_AUTHENTICATE_CHALLENGE;\n this.cause = options.cause;\n this.status = options.response.status;\n this.response = options.response;\n Object.defineProperty(this, 'response', { enumerable: false });\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nconst tokenMatch = \"[a-zA-Z0-9!#$%&\\\\'\\\\*\\\\+\\\\-\\\\.\\\\^_`\\\\|~]+\";\nconst token68Match = '[a-zA-Z0-9\\\\-\\\\._\\\\~\\\\+\\\\/]+={0,2}';\nconst quotedMatch = '\"((?:[^\"\\\\\\\\]|\\\\\\\\[\\\\s\\\\S])*)\"';\nconst quotedParamMatcher = '(' + tokenMatch + ')\\\\s*=\\\\s*' + quotedMatch;\nconst paramMatcher = '(' + tokenMatch + ')\\\\s*=\\\\s*(' + tokenMatch + ')';\nconst schemeRE = new RegExp('^[,\\\\s]*(' + tokenMatch + ')');\nconst quotedParamRE = new RegExp('^[,\\\\s]*' + quotedParamMatcher + '[,\\\\s]*(.*)');\nconst unquotedParamRE = new RegExp('^[,\\\\s]*' + paramMatcher + '[,\\\\s]*(.*)');\nconst token68ParamRE = new RegExp('^(' + token68Match + ')(?:$|[,\\\\s])(.*)');\nfunction parseWwwAuthenticateChallenges(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n const header = response.headers.get('www-authenticate');\n if (header === null) {\n return undefined;\n }\n const challenges = [];\n let rest = header;\n while (rest) {\n let match = rest.match(schemeRE);\n const scheme = match?.['1'].toLowerCase();\n if (!scheme) {\n return undefined;\n }\n const afterScheme = rest.substring(match[0].length);\n if (afterScheme && !afterScheme.match(/^[\\s,]/)) {\n return undefined;\n }\n const spaceMatch = afterScheme.match(/^\\s+(.*)$/);\n const hasParameters = !!spaceMatch;\n rest = spaceMatch ? spaceMatch[1] : undefined;\n const parameters = {};\n let token68;\n if (hasParameters) {\n while (rest) {\n let key;\n let value;\n if ((match = rest.match(quotedParamRE))) {\n ;\n [, key, value, rest] = match;\n if (value.includes('\\\\')) {\n try {\n value = JSON.parse(`\"${value}\"`);\n }\n catch { }\n }\n parameters[key.toLowerCase()] = value;\n continue;\n }\n if ((match = rest.match(unquotedParamRE))) {\n ;\n [, key, value, rest] = match;\n parameters[key.toLowerCase()] = value;\n continue;\n }\n if ((match = rest.match(token68ParamRE))) {\n if (Object.keys(parameters).length) {\n break;\n }\n ;\n [, token68, rest] = match;\n break;\n }\n return undefined;\n }\n }\n else {\n rest = afterScheme || undefined;\n }\n const challenge = { scheme, parameters };\n if (token68) {\n challenge.token68 = token68;\n }\n challenges.push(challenge);\n }\n if (!challenges.length) {\n return undefined;\n }\n return challenges;\n}\nexport async function processPushedAuthorizationResponse(as, client, response) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 201, 'Pushed Authorization Request Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.request_uri, '\"response\" body \"request_uri\" property', INVALID_RESPONSE, {\n body: json,\n });\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, true, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n return json;\n}\nasync function parseOAuthResponseErrorBody(response) {\n if (response.status > 399 && response.status < 500) {\n assertReadableResponse(response);\n assertApplicationJson(response);\n try {\n const json = await response.clone().json();\n if (isJsonObject(json) && typeof json.error === 'string' && json.error.length) {\n return json;\n }\n }\n catch { }\n }\n return undefined;\n}\nasync function checkOAuthBodyError(response, expected, label) {\n if (response.status !== expected) {\n checkAuthenticationChallenges(response);\n let err;\n if ((err = await parseOAuthResponseErrorBody(response))) {\n await response.body?.cancel();\n throw new ResponseBodyError('server responded with an error in the response body', {\n cause: err,\n response,\n });\n }\n throw OPE(`\"response\" is not a conform ${label} response (unexpected HTTP status code)`, RESPONSE_IS_NOT_CONFORM, response);\n }\n}\nfunction assertDPoP(option) {\n if (!branded.has(option)) {\n throw CodedTypeError('\"options.DPoP\" is not a valid DPoPHandle', ERR_INVALID_ARG_VALUE);\n }\n}\nasync function resourceRequest(accessToken, method, url, headers, body, options) {\n assertString(accessToken, '\"accessToken\"');\n if (!(url instanceof URL)) {\n throw CodedTypeError('\"url\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n checkProtocol(url, options?.[allowInsecureRequests] !== true);\n headers = prepareHeaders(headers);\n if (options?.DPoP) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, method.toUpperCase(), accessToken);\n }\n headers.set('authorization', `${headers.has('dpop') ? 'DPoP' : 'Bearer'} ${accessToken}`);\n const response = await (options?.[customFetch] || fetch)(url.href, {\n duplex: looseInstanceOf(body, ReadableStream) ? 'half' : undefined,\n body,\n headers: Object.fromEntries(headers.entries()),\n method,\n redirect: 'manual',\n signal: signal(url, options?.signal),\n });\n options?.DPoP?.cacheNonce(response, url);\n return response;\n}\nexport async function protectedResourceRequest(accessToken, method, url, headers, body, options) {\n const response = await resourceRequest(accessToken, method, url, headers, body, options);\n checkAuthenticationChallenges(response);\n return response;\n}\nexport async function userInfoRequest(as, client, accessToken, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'userinfo_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const headers = prepareHeaders(options?.headers);\n if (client.userinfo_signed_response_alg) {\n headers.set('accept', 'application/jwt');\n }\n else {\n headers.set('accept', 'application/json');\n headers.append('accept', 'application/jwt');\n }\n return resourceRequest(accessToken, 'GET', url, headers, null, {\n ...options,\n [clockSkew]: getClockSkew(client),\n });\n}\nlet jwksMap;\nfunction setJwksCache(as, jwks, uat, cache) {\n jwksMap ||= new WeakMap();\n jwksMap.set(as, {\n jwks,\n uat,\n get age() {\n return epochTime() - this.uat;\n },\n });\n if (cache) {\n Object.assign(cache, { jwks: structuredClone(jwks), uat });\n }\n}\nfunction isFreshJwksCache(input) {\n if (typeof input !== 'object' || input === null) {\n return false;\n }\n if (!('uat' in input) || typeof input.uat !== 'number' || epochTime() - input.uat >= 300) {\n return false;\n }\n if (!('jwks' in input) ||\n !isJsonObject(input.jwks) ||\n !Array.isArray(input.jwks.keys) ||\n !Array.prototype.every.call(input.jwks.keys, isJsonObject)) {\n return false;\n }\n return true;\n}\nfunction clearJwksCache(as, cache) {\n jwksMap?.delete(as);\n delete cache?.jwks;\n delete cache?.uat;\n}\nasync function getPublicSigKeyFromIssuerJwksUri(as, options, header) {\n const { alg, kid } = header;\n checkSupportedJwsAlg(header);\n if (!jwksMap?.has(as) && isFreshJwksCache(options?.[jwksCache])) {\n setJwksCache(as, options?.[jwksCache].jwks, options?.[jwksCache].uat);\n }\n let jwks;\n let age;\n if (jwksMap?.has(as)) {\n ;\n ({ jwks, age } = jwksMap.get(as));\n if (age >= 300) {\n clearJwksCache(as, options?.[jwksCache]);\n return getPublicSigKeyFromIssuerJwksUri(as, options, header);\n }\n }\n else {\n jwks = await jwksRequest(as, options).then(processJwksResponse);\n age = 0;\n setJwksCache(as, jwks, epochTime(), options?.[jwksCache]);\n }\n let kty;\n switch (alg.slice(0, 2)) {\n case 'RS':\n case 'PS':\n kty = 'RSA';\n break;\n case 'ES':\n kty = 'EC';\n break;\n case 'Ed':\n kty = 'OKP';\n break;\n case 'ML':\n kty = 'AKP';\n break;\n default:\n throw new UnsupportedOperationError('unsupported JWS algorithm', { cause: { alg } });\n }\n const candidates = jwks.keys.filter((jwk) => {\n if (jwk.kty !== kty) {\n return false;\n }\n if (kid !== undefined && kid !== jwk.kid) {\n return false;\n }\n if (jwk.alg !== undefined && alg !== jwk.alg) {\n return false;\n }\n if (jwk.use !== undefined && jwk.use !== 'sig') {\n return false;\n }\n if (jwk.key_ops?.includes('verify') === false) {\n return false;\n }\n switch (true) {\n case alg === 'ES256' && jwk.crv !== 'P-256':\n case alg === 'ES384' && jwk.crv !== 'P-384':\n case alg === 'ES512' && jwk.crv !== 'P-521':\n case alg === 'Ed25519' && jwk.crv !== 'Ed25519':\n case alg === 'EdDSA' && jwk.crv !== 'Ed25519':\n return false;\n }\n return true;\n });\n const { 0: jwk, length } = candidates;\n if (!length) {\n if (age >= 60) {\n clearJwksCache(as, options?.[jwksCache]);\n return getPublicSigKeyFromIssuerJwksUri(as, options, header);\n }\n throw OPE('error when selecting a JWT verification key, no applicable keys found', KEY_SELECTION, { header, candidates, jwks_uri: new URL(as.jwks_uri) });\n }\n if (length !== 1) {\n throw OPE('error when selecting a JWT verification key, multiple applicable keys found, a \"kid\" JWT Header Parameter is required', KEY_SELECTION, { header, candidates, jwks_uri: new URL(as.jwks_uri) });\n }\n return importJwk(alg, jwk);\n}\nexport const skipSubjectCheck = Symbol();\nexport function getContentType(input) {\n return input.headers.get('content-type')?.split(';')[0];\n}\nexport async function processUserInfoResponse(as, client, expectedSubject, response, options) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform UserInfo Endpoint response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n let json;\n if (getContentType(response) === 'application/jwt') {\n const { claims, jwt } = await validateJwt(await response.text(), checkSigningAlgorithm.bind(undefined, client.userinfo_signed_response_alg, as.userinfo_signing_alg_values_supported, undefined), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validateOptionalAudience.bind(undefined, client.client_id))\n .then(validateOptionalIssuer.bind(undefined, as));\n jwtRefs.set(response, jwt);\n json = claims;\n }\n else {\n if (client.userinfo_signed_response_alg) {\n throw OPE('JWT UserInfo Response expected', JWT_USERINFO_EXPECTED, response);\n }\n json = await getResponseJsonBody(response);\n }\n assertString(json.sub, '\"response\" body \"sub\" property', INVALID_RESPONSE, { body: json });\n switch (expectedSubject) {\n case skipSubjectCheck:\n break;\n default:\n assertString(expectedSubject, '\"expectedSubject\"');\n if (json.sub !== expectedSubject) {\n throw OPE('unexpected \"response\" body \"sub\" property value', JSON_ATTRIBUTE_COMPARISON, {\n expected: expectedSubject,\n body: json,\n attribute: 'sub',\n });\n }\n }\n return json;\n}\nasync function authenticatedRequest(as, client, clientAuthentication, url, body, headers, options) {\n await clientAuthentication(as, client, body, headers);\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n return (options?.[customFetch] || fetch)(url.href, {\n body,\n headers: Object.fromEntries(headers.entries()),\n method: 'POST',\n redirect: 'manual',\n signal: signal(url, options?.signal),\n });\n}\nasync function tokenEndpointRequest(as, client, clientAuthentication, grantType, parameters, options) {\n const url = resolveEndpoint(as, 'token_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n parameters.set('grant_type', grantType);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n if (options?.DPoP !== undefined) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, 'POST');\n }\n const response = await authenticatedRequest(as, client, clientAuthentication, url, parameters, headers, options);\n options?.DPoP?.cacheNonce(response, url);\n return response;\n}\nexport async function refreshTokenGrantRequest(as, client, clientAuthentication, refreshToken, options) {\n assertAs(as);\n assertClient(client);\n assertString(refreshToken, '\"refreshToken\"');\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('refresh_token', refreshToken);\n return tokenEndpointRequest(as, client, clientAuthentication, 'refresh_token', parameters, options);\n}\nconst idTokenClaims = new WeakMap();\nconst jwtRefs = new WeakMap();\nexport function getValidatedIdTokenClaims(ref) {\n if (!ref.id_token) {\n return undefined;\n }\n const claims = idTokenClaims.get(ref);\n if (!claims) {\n throw CodedTypeError('\"ref\" was already garbage collected or did not resolve from the proper sources', ERR_INVALID_ARG_VALUE);\n }\n return claims;\n}\nexport async function validateApplicationLevelSignature(as, ref, options) {\n assertAs(as);\n if (!jwtRefs.has(ref)) {\n throw CodedTypeError('\"ref\" does not contain a processed JWT Response to verify the signature of', ERR_INVALID_ARG_VALUE);\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = jwtRefs.get(ref).split('.');\n const header = JSON.parse(buf(b64u(protectedHeader)));\n if (header.alg.startsWith('HS')) {\n throw new UnsupportedOperationError('unsupported JWS algorithm', { cause: { alg: header.alg } });\n }\n let key;\n key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, b64u(encodedSignature));\n}\nasync function processGenericAccessTokenResponse(as, client, response, additionalRequiredIdTokenClaims, decryptFn, recognizedTokenTypes) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 200, 'Token Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.access_token, '\"response\" body \"access_token\" property', INVALID_RESPONSE, {\n body: json,\n });\n assertString(json.token_type, '\"response\" body \"token_type\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.token_type = json.token_type.toLowerCase();\n if (json.expires_in !== undefined) {\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, true, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n }\n if (json.refresh_token !== undefined) {\n assertString(json.refresh_token, '\"response\" body \"refresh_token\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n if (json.scope !== undefined && typeof json.scope !== 'string') {\n throw OPE('\"response\" body \"scope\" property must be a string', INVALID_RESPONSE, { body: json });\n }\n if (json.id_token !== undefined) {\n assertString(json.id_token, '\"response\" body \"id_token\" property', INVALID_RESPONSE, {\n body: json,\n });\n const requiredClaims = ['aud', 'exp', 'iat', 'iss', 'sub'];\n if (client.require_auth_time === true) {\n requiredClaims.push('auth_time');\n }\n if (client.default_max_age !== undefined) {\n assertNumber(client.default_max_age, true, '\"client.default_max_age\"');\n requiredClaims.push('auth_time');\n }\n if (additionalRequiredIdTokenClaims?.length) {\n requiredClaims.push(...additionalRequiredIdTokenClaims);\n }\n const { claims, jwt } = await validateJwt(json.id_token, checkSigningAlgorithm.bind(undefined, client.id_token_signed_response_alg, as.id_token_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), decryptFn)\n .then(validatePresence.bind(undefined, requiredClaims))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n if (Array.isArray(claims.aud) && claims.aud.length !== 1) {\n if (claims.azp === undefined) {\n throw OPE('ID Token \"aud\" (audience) claim includes additional untrusted audiences', JWT_CLAIM_COMPARISON, { claims, claim: 'aud' });\n }\n if (claims.azp !== client.client_id) {\n throw OPE('unexpected ID Token \"azp\" (authorized party) claim value', JWT_CLAIM_COMPARISON, { expected: client.client_id, claims, claim: 'azp' });\n }\n }\n if (claims.auth_time !== undefined) {\n assertNumber(claims.auth_time, true, 'ID Token \"auth_time\" (authentication time)', INVALID_RESPONSE, { claims });\n }\n jwtRefs.set(response, jwt);\n idTokenClaims.set(json, claims);\n }\n if (recognizedTokenTypes?.[json.token_type] !== undefined) {\n recognizedTokenTypes[json.token_type](response, json);\n }\n else if (json.token_type !== 'dpop' && json.token_type !== 'bearer') {\n throw new UnsupportedOperationError('unsupported `token_type` value', { cause: { body: json } });\n }\n return json;\n}\nfunction checkAuthenticationChallenges(response) {\n let challenges;\n if ((challenges = parseWwwAuthenticateChallenges(response))) {\n throw new WWWAuthenticateChallengeError('server responded with a challenge in the WWW-Authenticate HTTP Header', { cause: challenges, response });\n }\n}\nexport async function processRefreshTokenResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options?.[jweDecrypt], options?.recognizedTokenTypes);\n}\nfunction validateOptionalAudience(expected, result) {\n if (result.claims.aud !== undefined) {\n return validateAudience(expected, result);\n }\n return result;\n}\nfunction validateAudience(expected, result) {\n if (Array.isArray(result.claims.aud)) {\n if (!result.claims.aud.includes(expected)) {\n throw OPE('unexpected JWT \"aud\" (audience) claim value', JWT_CLAIM_COMPARISON, {\n expected,\n claims: result.claims,\n claim: 'aud',\n });\n }\n }\n else if (result.claims.aud !== expected) {\n throw OPE('unexpected JWT \"aud\" (audience) claim value', JWT_CLAIM_COMPARISON, {\n expected,\n claims: result.claims,\n claim: 'aud',\n });\n }\n return result;\n}\nfunction validateOptionalIssuer(as, result) {\n if (result.claims.iss !== undefined) {\n return validateIssuer(as, result);\n }\n return result;\n}\nfunction validateIssuer(as, result) {\n const expected = as[_expectedIssuer]?.(result) ?? as.issuer;\n if (result.claims.iss !== expected) {\n throw OPE('unexpected JWT \"iss\" (issuer) claim value', JWT_CLAIM_COMPARISON, {\n expected,\n claims: result.claims,\n claim: 'iss',\n });\n }\n return result;\n}\nconst branded = new WeakSet();\nfunction brand(searchParams) {\n branded.add(searchParams);\n return searchParams;\n}\nexport const nopkce = Symbol();\nexport async function authorizationCodeGrantRequest(as, client, clientAuthentication, callbackParameters, redirectUri, codeVerifier, options) {\n assertAs(as);\n assertClient(client);\n if (!branded.has(callbackParameters)) {\n throw CodedTypeError('\"callbackParameters\" must be an instance of URLSearchParams obtained from \"validateAuthResponse()\", or \"validateJwtAuthResponse()', ERR_INVALID_ARG_VALUE);\n }\n assertString(redirectUri, '\"redirectUri\"');\n const code = getURLSearchParameter(callbackParameters, 'code');\n if (!code) {\n throw OPE('no authorization code in \"callbackParameters\"', INVALID_RESPONSE);\n }\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('redirect_uri', redirectUri);\n parameters.set('code', code);\n if (codeVerifier !== nopkce) {\n assertString(codeVerifier, '\"codeVerifier\"');\n parameters.set('code_verifier', codeVerifier);\n }\n return tokenEndpointRequest(as, client, clientAuthentication, 'authorization_code', parameters, options);\n}\nconst jwtClaimNames = {\n aud: 'audience',\n c_hash: 'code hash',\n client_id: 'client id',\n exp: 'expiration time',\n iat: 'issued at',\n iss: 'issuer',\n jti: 'jwt id',\n nonce: 'nonce',\n s_hash: 'state hash',\n sub: 'subject',\n ath: 'access token hash',\n htm: 'http method',\n htu: 'http uri',\n cnf: 'confirmation',\n auth_time: 'authentication time',\n};\nfunction validatePresence(required, result) {\n for (const claim of required) {\n if (result.claims[claim] === undefined) {\n throw OPE(`JWT \"${claim}\" (${jwtClaimNames[claim]}) claim missing`, INVALID_RESPONSE, {\n claims: result.claims,\n });\n }\n }\n return result;\n}\nexport const expectNoNonce = Symbol();\nexport const skipAuthTimeCheck = Symbol();\nexport async function processAuthorizationCodeResponse(as, client, response, options) {\n if (typeof options?.expectedNonce === 'string' ||\n typeof options?.maxAge === 'number' ||\n options?.requireIdToken) {\n return processAuthorizationCodeOpenIDResponse(as, client, response, options.expectedNonce, options.maxAge, options[jweDecrypt], options.recognizedTokenTypes);\n }\n return processAuthorizationCodeOAuth2Response(as, client, response, options?.[jweDecrypt], options?.recognizedTokenTypes);\n}\nasync function processAuthorizationCodeOpenIDResponse(as, client, response, expectedNonce, maxAge, decryptFn, recognizedTokenTypes) {\n const additionalRequiredClaims = [];\n switch (expectedNonce) {\n case undefined:\n expectedNonce = expectNoNonce;\n break;\n case expectNoNonce:\n break;\n default:\n assertString(expectedNonce, '\"expectedNonce\" argument');\n additionalRequiredClaims.push('nonce');\n }\n maxAge ??= client.default_max_age;\n switch (maxAge) {\n case undefined:\n maxAge = skipAuthTimeCheck;\n break;\n case skipAuthTimeCheck:\n break;\n default:\n assertNumber(maxAge, true, '\"maxAge\" argument');\n additionalRequiredClaims.push('auth_time');\n }\n const result = await processGenericAccessTokenResponse(as, client, response, additionalRequiredClaims, decryptFn, recognizedTokenTypes);\n assertString(result.id_token, '\"response\" body \"id_token\" property', INVALID_RESPONSE, {\n body: result,\n });\n const claims = getValidatedIdTokenClaims(result);\n if (maxAge !== skipAuthTimeCheck) {\n const now = epochTime() + getClockSkew(client);\n const tolerance = getClockTolerance(client);\n if (claims.auth_time + maxAge < now - tolerance) {\n throw OPE('too much time has elapsed since the last End-User authentication', JWT_TIMESTAMP_CHECK, { claims, now, tolerance, claim: 'auth_time' });\n }\n }\n if (expectedNonce === expectNoNonce) {\n if (claims.nonce !== undefined) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: undefined,\n claims,\n claim: 'nonce',\n });\n }\n }\n else if (claims.nonce !== expectedNonce) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: expectedNonce,\n claims,\n claim: 'nonce',\n });\n }\n return result;\n}\nasync function processAuthorizationCodeOAuth2Response(as, client, response, decryptFn, recognizedTokenTypes) {\n const result = await processGenericAccessTokenResponse(as, client, response, undefined, decryptFn, recognizedTokenTypes);\n const claims = getValidatedIdTokenClaims(result);\n if (claims) {\n if (client.default_max_age !== undefined) {\n assertNumber(client.default_max_age, true, '\"client.default_max_age\"');\n const now = epochTime() + getClockSkew(client);\n const tolerance = getClockTolerance(client);\n if (claims.auth_time + client.default_max_age < now - tolerance) {\n throw OPE('too much time has elapsed since the last End-User authentication', JWT_TIMESTAMP_CHECK, { claims, now, tolerance, claim: 'auth_time' });\n }\n }\n if (claims.nonce !== undefined) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: undefined,\n claims,\n claim: 'nonce',\n });\n }\n }\n return result;\n}\nexport const WWW_AUTHENTICATE_CHALLENGE = 'OAUTH_WWW_AUTHENTICATE_CHALLENGE';\nexport const RESPONSE_BODY_ERROR = 'OAUTH_RESPONSE_BODY_ERROR';\nexport const UNSUPPORTED_OPERATION = 'OAUTH_UNSUPPORTED_OPERATION';\nexport const AUTHORIZATION_RESPONSE_ERROR = 'OAUTH_AUTHORIZATION_RESPONSE_ERROR';\nexport const JWT_USERINFO_EXPECTED = 'OAUTH_JWT_USERINFO_EXPECTED';\nexport const PARSE_ERROR = 'OAUTH_PARSE_ERROR';\nexport const INVALID_RESPONSE = 'OAUTH_INVALID_RESPONSE';\nexport const INVALID_REQUEST = 'OAUTH_INVALID_REQUEST';\nexport const RESPONSE_IS_NOT_JSON = 'OAUTH_RESPONSE_IS_NOT_JSON';\nexport const RESPONSE_IS_NOT_CONFORM = 'OAUTH_RESPONSE_IS_NOT_CONFORM';\nexport const HTTP_REQUEST_FORBIDDEN = 'OAUTH_HTTP_REQUEST_FORBIDDEN';\nexport const REQUEST_PROTOCOL_FORBIDDEN = 'OAUTH_REQUEST_PROTOCOL_FORBIDDEN';\nexport const JWT_TIMESTAMP_CHECK = 'OAUTH_JWT_TIMESTAMP_CHECK_FAILED';\nexport const JWT_CLAIM_COMPARISON = 'OAUTH_JWT_CLAIM_COMPARISON_FAILED';\nexport const JSON_ATTRIBUTE_COMPARISON = 'OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED';\nexport const KEY_SELECTION = 'OAUTH_KEY_SELECTION_FAILED';\nexport const MISSING_SERVER_METADATA = 'OAUTH_MISSING_SERVER_METADATA';\nexport const INVALID_SERVER_METADATA = 'OAUTH_INVALID_SERVER_METADATA';\nfunction checkJwtType(expected, result) {\n if (typeof result.header.typ !== 'string' || normalizeTyp(result.header.typ) !== expected) {\n throw OPE('unexpected JWT \"typ\" header parameter value', INVALID_RESPONSE, {\n header: result.header,\n });\n }\n return result;\n}\nexport async function clientCredentialsGrantRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n return tokenEndpointRequest(as, client, clientAuthentication, 'client_credentials', new URLSearchParams(parameters), options);\n}\nexport async function genericTokenEndpointRequest(as, client, clientAuthentication, grantType, parameters, options) {\n assertAs(as);\n assertClient(client);\n assertString(grantType, '\"grantType\"');\n return tokenEndpointRequest(as, client, clientAuthentication, grantType, new URLSearchParams(parameters), options);\n}\nexport async function processGenericTokenEndpointResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options?.[jweDecrypt], options?.recognizedTokenTypes);\n}\nexport async function processClientCredentialsResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options?.[jweDecrypt], options?.recognizedTokenTypes);\n}\nexport async function revocationRequest(as, client, clientAuthentication, token, options) {\n assertAs(as);\n assertClient(client);\n assertString(token, '\"token\"');\n const url = resolveEndpoint(as, 'revocation_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(options?.additionalParameters);\n body.set('token', token);\n const headers = prepareHeaders(options?.headers);\n headers.delete('accept');\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processRevocationResponse(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 200, 'Revocation Endpoint');\n return undefined;\n}\nfunction assertReadableResponse(response) {\n if (response.bodyUsed) {\n throw CodedTypeError('\"response\" body has been used already', ERR_INVALID_ARG_VALUE);\n }\n}\nexport async function introspectionRequest(as, client, clientAuthentication, token, options) {\n assertAs(as);\n assertClient(client);\n assertString(token, '\"token\"');\n const url = resolveEndpoint(as, 'introspection_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(options?.additionalParameters);\n body.set('token', token);\n const headers = prepareHeaders(options?.headers);\n if (options?.requestJwtResponse ?? client.introspection_signed_response_alg) {\n headers.set('accept', 'application/token-introspection+jwt');\n }\n else {\n headers.set('accept', 'application/json');\n }\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processIntrospectionResponse(as, client, response, options) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 200, 'Introspection Endpoint');\n let json;\n if (getContentType(response) === 'application/token-introspection+jwt') {\n assertReadableResponse(response);\n const { claims, jwt } = await validateJwt(await response.text(), checkSigningAlgorithm.bind(undefined, client.introspection_signed_response_alg, as.introspection_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(checkJwtType.bind(undefined, 'token-introspection+jwt'))\n .then(validatePresence.bind(undefined, ['aud', 'iat', 'iss']))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n jwtRefs.set(response, jwt);\n if (!isJsonObject(claims.token_introspection)) {\n throw OPE('JWT \"token_introspection\" claim must be a JSON object', INVALID_RESPONSE, {\n claims,\n });\n }\n json = claims.token_introspection;\n }\n else {\n assertReadableResponse(response);\n json = await getResponseJsonBody(response);\n }\n if (typeof json.active !== 'boolean') {\n throw OPE('\"response\" body \"active\" property must be a boolean', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nasync function jwksRequest(as, options) {\n assertAs(as);\n const url = resolveEndpoint(as, 'jwks_uri', false, options?.[allowInsecureRequests] !== true);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n headers.append('accept', 'application/jwk-set+json');\n return (options?.[customFetch] || fetch)(url.href, {\n body: undefined,\n headers: Object.fromEntries(headers.entries()),\n method: 'GET',\n redirect: 'manual',\n signal: signal(url, options?.signal),\n });\n}\nasync function processJwksResponse(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform JSON Web Key Set response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response, (response) => assertContentTypes(response, 'application/json', 'application/jwk-set+json'));\n if (!Array.isArray(json.keys)) {\n throw OPE('\"response\" body \"keys\" property must be an array', INVALID_RESPONSE, { body: json });\n }\n if (!Array.prototype.every.call(json.keys, isJsonObject)) {\n throw OPE('\"response\" body \"keys\" property members must be JWK formatted objects', INVALID_RESPONSE, { body: json });\n }\n return json;\n}\nfunction supported(alg) {\n switch (alg) {\n case 'PS256':\n case 'ES256':\n case 'RS256':\n case 'PS384':\n case 'ES384':\n case 'RS384':\n case 'PS512':\n case 'ES512':\n case 'RS512':\n case 'Ed25519':\n case 'EdDSA':\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n return true;\n default:\n return false;\n }\n}\nfunction checkSupportedJwsAlg(header) {\n if (!supported(header.alg)) {\n throw new UnsupportedOperationError('unsupported JWS \"alg\" identifier', {\n cause: { alg: header.alg },\n });\n }\n}\nfunction checkRsaKeyAlgorithm(key) {\n const { algorithm } = key;\n if (typeof algorithm.modulusLength !== 'number' || algorithm.modulusLength < 2048) {\n throw new UnsupportedOperationError(`unsupported ${algorithm.name} modulusLength`, {\n cause: key,\n });\n }\n}\nfunction ecdsaHashName(key) {\n const { algorithm } = key;\n switch (algorithm.namedCurve) {\n case 'P-256':\n return 'SHA-256';\n case 'P-384':\n return 'SHA-384';\n case 'P-521':\n return 'SHA-512';\n default:\n throw new UnsupportedOperationError('unsupported ECDSA namedCurve', { cause: key });\n }\n}\nfunction keyToSubtle(key) {\n switch (key.algorithm.name) {\n case 'ECDSA':\n return {\n name: key.algorithm.name,\n hash: ecdsaHashName(key),\n };\n case 'RSA-PSS': {\n checkRsaKeyAlgorithm(key);\n switch (key.algorithm.hash.name) {\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n return {\n name: key.algorithm.name,\n saltLength: parseInt(key.algorithm.hash.name.slice(-3), 10) >> 3,\n };\n default:\n throw new UnsupportedOperationError('unsupported RSA-PSS hash name', { cause: key });\n }\n }\n case 'RSASSA-PKCS1-v1_5':\n checkRsaKeyAlgorithm(key);\n return key.algorithm.name;\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n case 'Ed25519':\n return key.algorithm.name;\n }\n throw new UnsupportedOperationError('unsupported CryptoKey algorithm name', { cause: key });\n}\nasync function validateJwsSignature(protectedHeader, payload, key, signature) {\n const data = buf(`${protectedHeader}.${payload}`);\n const algorithm = keyToSubtle(key);\n const verified = await crypto.subtle.verify(algorithm, key, signature, data);\n if (!verified) {\n throw OPE('JWT signature verification failed', INVALID_RESPONSE, {\n key,\n data,\n signature,\n algorithm,\n });\n }\n}\nasync function validateJwt(jws, checkAlg, clockSkew, clockTolerance, decryptJwt) {\n let { 0: protectedHeader, 1: payload, length } = jws.split('.');\n if (length === 5) {\n if (decryptJwt !== undefined) {\n jws = await decryptJwt(jws);\n ({ 0: protectedHeader, 1: payload, length } = jws.split('.'));\n }\n else {\n throw new UnsupportedOperationError('JWE decryption is not configured', { cause: jws });\n }\n }\n if (length !== 3) {\n throw OPE('Invalid JWT', INVALID_RESPONSE, jws);\n }\n let header;\n try {\n header = JSON.parse(buf(b64u(protectedHeader)));\n }\n catch (cause) {\n throw OPE('failed to parse JWT Header body as base64url encoded JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(header)) {\n throw OPE('JWT Header must be a top level object', INVALID_RESPONSE, jws);\n }\n checkAlg(header);\n if (header.crit !== undefined) {\n throw new UnsupportedOperationError('no JWT \"crit\" header parameter extensions are supported', {\n cause: { header },\n });\n }\n let claims;\n try {\n claims = JSON.parse(buf(b64u(payload)));\n }\n catch (cause) {\n throw OPE('failed to parse JWT Payload body as base64url encoded JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(claims)) {\n throw OPE('JWT Payload must be a top level object', INVALID_RESPONSE, jws);\n }\n const now = epochTime() + clockSkew;\n if (claims.exp !== undefined) {\n if (typeof claims.exp !== 'number') {\n throw OPE('unexpected JWT \"exp\" (expiration time) claim type', INVALID_RESPONSE, { claims });\n }\n if (claims.exp <= now - clockTolerance) {\n throw OPE('unexpected JWT \"exp\" (expiration time) claim value, expiration is past current timestamp', JWT_TIMESTAMP_CHECK, { claims, now, tolerance: clockTolerance, claim: 'exp' });\n }\n }\n if (claims.iat !== undefined) {\n if (typeof claims.iat !== 'number') {\n throw OPE('unexpected JWT \"iat\" (issued at) claim type', INVALID_RESPONSE, { claims });\n }\n }\n if (claims.iss !== undefined) {\n if (typeof claims.iss !== 'string') {\n throw OPE('unexpected JWT \"iss\" (issuer) claim type', INVALID_RESPONSE, { claims });\n }\n }\n if (claims.nbf !== undefined) {\n if (typeof claims.nbf !== 'number') {\n throw OPE('unexpected JWT \"nbf\" (not before) claim type', INVALID_RESPONSE, { claims });\n }\n if (claims.nbf > now + clockTolerance) {\n throw OPE('unexpected JWT \"nbf\" (not before) claim value', JWT_TIMESTAMP_CHECK, {\n claims,\n now,\n tolerance: clockTolerance,\n claim: 'nbf',\n });\n }\n }\n if (claims.aud !== undefined) {\n if (typeof claims.aud !== 'string' && !Array.isArray(claims.aud)) {\n throw OPE('unexpected JWT \"aud\" (audience) claim type', INVALID_RESPONSE, { claims });\n }\n }\n return { header, claims, jwt: jws };\n}\nexport async function validateJwtAuthResponse(as, client, parameters, expectedState, options) {\n assertAs(as);\n assertClient(client);\n if (parameters instanceof URL) {\n parameters = parameters.searchParams;\n }\n if (!(parameters instanceof URLSearchParams)) {\n throw CodedTypeError('\"parameters\" must be an instance of URLSearchParams, or URL', ERR_INVALID_ARG_TYPE);\n }\n const response = getURLSearchParameter(parameters, 'response');\n if (!response) {\n throw OPE('\"parameters\" does not contain a JARM response', INVALID_RESPONSE);\n }\n const { claims, header, jwt } = await validateJwt(response, checkSigningAlgorithm.bind(undefined, client.authorization_signed_response_alg, as.authorization_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validatePresence.bind(undefined, ['aud', 'exp', 'iss']))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = jwt.split('.');\n const signature = b64u(encodedSignature);\n const key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, signature);\n const result = new URLSearchParams();\n for (const [key, value] of Object.entries(claims)) {\n if (typeof value === 'string' && key !== 'aud') {\n result.set(key, value);\n }\n }\n return validateAuthResponse(as, client, result, expectedState);\n}\nasync function idTokenHash(data, header, claimName) {\n let algorithm;\n switch (header.alg) {\n case 'RS256':\n case 'PS256':\n case 'ES256':\n algorithm = 'SHA-256';\n break;\n case 'RS384':\n case 'PS384':\n case 'ES384':\n algorithm = 'SHA-384';\n break;\n case 'RS512':\n case 'PS512':\n case 'ES512':\n case 'Ed25519':\n case 'EdDSA':\n algorithm = 'SHA-512';\n break;\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n algorithm = { name: 'cSHAKE256', length: 512, outputLength: 512 };\n break;\n default:\n throw new UnsupportedOperationError(`unsupported JWS algorithm for ${claimName} calculation`, { cause: { alg: header.alg } });\n }\n const digest = await crypto.subtle.digest(algorithm, buf(data));\n return b64u(digest.slice(0, digest.byteLength / 2));\n}\nasync function idTokenHashMatches(data, actual, header, claimName) {\n const expected = await idTokenHash(data, header, claimName);\n return actual === expected;\n}\nexport async function validateDetachedSignatureResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options) {\n return validateHybridResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options, true);\n}\nexport async function validateCodeIdTokenResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options) {\n return validateHybridResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options, false);\n}\nasync function consumeStream(request) {\n if (request.bodyUsed) {\n throw CodedTypeError('form_post Request instances must contain a readable body', ERR_INVALID_ARG_VALUE, { cause: request });\n }\n return request.text();\n}\nexport async function formPostResponse(request) {\n if (request.method !== 'POST') {\n throw CodedTypeError('form_post responses are expected to use the POST method', ERR_INVALID_ARG_VALUE, { cause: request });\n }\n if (getContentType(request) !== 'application/x-www-form-urlencoded') {\n throw CodedTypeError('form_post responses are expected to use the application/x-www-form-urlencoded content-type', ERR_INVALID_ARG_VALUE, { cause: request });\n }\n return consumeStream(request);\n}\nasync function validateHybridResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options, fapi) {\n assertAs(as);\n assertClient(client);\n if (parameters instanceof URL) {\n if (!parameters.hash.length) {\n throw CodedTypeError('\"parameters\" as an instance of URL must contain a hash (fragment) with the Authorization Response parameters', ERR_INVALID_ARG_VALUE);\n }\n parameters = new URLSearchParams(parameters.hash.slice(1));\n }\n else if (looseInstanceOf(parameters, Request)) {\n parameters = new URLSearchParams(await formPostResponse(parameters));\n }\n else if (parameters instanceof URLSearchParams) {\n parameters = new URLSearchParams(parameters);\n }\n else {\n throw CodedTypeError('\"parameters\" must be an instance of URLSearchParams, URL, or Response', ERR_INVALID_ARG_TYPE);\n }\n const id_token = getURLSearchParameter(parameters, 'id_token');\n parameters.delete('id_token');\n switch (expectedState) {\n case undefined:\n case expectNoState:\n break;\n default:\n assertString(expectedState, '\"expectedState\" argument');\n }\n const result = validateAuthResponse({\n ...as,\n authorization_response_iss_parameter_supported: false,\n }, client, parameters, expectedState);\n if (!id_token) {\n throw OPE('\"parameters\" does not contain an ID Token', INVALID_RESPONSE);\n }\n const code = getURLSearchParameter(parameters, 'code');\n if (!code) {\n throw OPE('\"parameters\" does not contain an Authorization Code', INVALID_RESPONSE);\n }\n const requiredClaims = [\n 'aud',\n 'exp',\n 'iat',\n 'iss',\n 'sub',\n 'nonce',\n 'c_hash',\n ];\n const state = parameters.get('state');\n if (fapi && (typeof expectedState === 'string' || state !== null)) {\n requiredClaims.push('s_hash');\n }\n if (maxAge !== undefined) {\n assertNumber(maxAge, true, '\"maxAge\" argument');\n }\n else if (client.default_max_age !== undefined) {\n assertNumber(client.default_max_age, true, '\"client.default_max_age\"');\n }\n maxAge ??= client.default_max_age ?? skipAuthTimeCheck;\n if (client.require_auth_time || maxAge !== skipAuthTimeCheck) {\n requiredClaims.push('auth_time');\n }\n const { claims, header, jwt } = await validateJwt(id_token, checkSigningAlgorithm.bind(undefined, client.id_token_signed_response_alg, as.id_token_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validatePresence.bind(undefined, requiredClaims))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n const clockSkew = getClockSkew(client);\n const now = epochTime() + clockSkew;\n if (claims.iat < now - 3600) {\n throw OPE('unexpected JWT \"iat\" (issued at) claim value, it is too far in the past', JWT_TIMESTAMP_CHECK, { now, claims, claim: 'iat' });\n }\n assertString(claims.c_hash, 'ID Token \"c_hash\" (code hash) claim value', INVALID_RESPONSE, {\n claims,\n });\n if (claims.auth_time !== undefined) {\n assertNumber(claims.auth_time, true, 'ID Token \"auth_time\" (authentication time)', INVALID_RESPONSE, { claims });\n }\n if (maxAge !== skipAuthTimeCheck) {\n const now = epochTime() + getClockSkew(client);\n const tolerance = getClockTolerance(client);\n if (claims.auth_time + maxAge < now - tolerance) {\n throw OPE('too much time has elapsed since the last End-User authentication', JWT_TIMESTAMP_CHECK, { claims, now, tolerance, claim: 'auth_time' });\n }\n }\n assertString(expectedNonce, '\"expectedNonce\" argument');\n if (claims.nonce !== expectedNonce) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: expectedNonce,\n claims,\n claim: 'nonce',\n });\n }\n if (Array.isArray(claims.aud) && claims.aud.length !== 1) {\n if (claims.azp === undefined) {\n throw OPE('ID Token \"aud\" (audience) claim includes additional untrusted audiences', JWT_CLAIM_COMPARISON, { claims, claim: 'aud' });\n }\n if (claims.azp !== client.client_id) {\n throw OPE('unexpected ID Token \"azp\" (authorized party) claim value', JWT_CLAIM_COMPARISON, {\n expected: client.client_id,\n claims,\n claim: 'azp',\n });\n }\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = jwt.split('.');\n const signature = b64u(encodedSignature);\n const key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, signature);\n if ((await idTokenHashMatches(code, claims.c_hash, header, 'c_hash')) !== true) {\n throw OPE('invalid ID Token \"c_hash\" (code hash) claim value', JWT_CLAIM_COMPARISON, {\n code,\n alg: header.alg,\n claim: 'c_hash',\n claims,\n });\n }\n if ((fapi && state !== null) || claims.s_hash !== undefined) {\n assertString(claims.s_hash, 'ID Token \"s_hash\" (state hash) claim value', INVALID_RESPONSE, {\n claims,\n });\n assertString(state, '\"state\" response parameter', INVALID_RESPONSE, { parameters });\n if ((await idTokenHashMatches(state, claims.s_hash, header, 's_hash')) !== true) {\n throw OPE('invalid ID Token \"s_hash\" (state hash) claim value', JWT_CLAIM_COMPARISON, {\n state,\n alg: header.alg,\n claim: 's_hash',\n claims,\n });\n }\n }\n return result;\n}\nfunction checkSigningAlgorithm(client, issuer, fallback, header) {\n if (client !== undefined) {\n if (typeof client === 'string' ? header.alg !== client : !client.includes(header.alg)) {\n throw OPE('unexpected JWT \"alg\" header parameter', INVALID_RESPONSE, {\n header,\n expected: client,\n reason: 'client configuration',\n });\n }\n return;\n }\n if (Array.isArray(issuer)) {\n if (!issuer.includes(header.alg)) {\n throw OPE('unexpected JWT \"alg\" header parameter', INVALID_RESPONSE, {\n header,\n expected: issuer,\n reason: 'authorization server metadata',\n });\n }\n return;\n }\n if (fallback !== undefined) {\n if (typeof fallback === 'string'\n ? header.alg !== fallback\n : typeof fallback === 'function'\n ? !fallback(header.alg)\n : !fallback.includes(header.alg)) {\n throw OPE('unexpected JWT \"alg\" header parameter', INVALID_RESPONSE, {\n header,\n expected: fallback,\n reason: 'default value',\n });\n }\n return;\n }\n throw OPE('missing client or server configuration to verify used JWT \"alg\" header parameter', undefined, { client, issuer, fallback });\n}\nfunction getURLSearchParameter(parameters, name) {\n const { 0: value, length } = parameters.getAll(name);\n if (length > 1) {\n throw OPE(`\"${name}\" parameter must be provided only once`, INVALID_RESPONSE);\n }\n return value;\n}\nexport const skipStateCheck = Symbol();\nexport const expectNoState = Symbol();\nexport function validateAuthResponse(as, client, parameters, expectedState) {\n assertAs(as);\n assertClient(client);\n if (parameters instanceof URL) {\n parameters = parameters.searchParams;\n }\n if (!(parameters instanceof URLSearchParams)) {\n throw CodedTypeError('\"parameters\" must be an instance of URLSearchParams, or URL', ERR_INVALID_ARG_TYPE);\n }\n if (getURLSearchParameter(parameters, 'response')) {\n throw OPE('\"parameters\" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()', INVALID_RESPONSE, { parameters });\n }\n const iss = getURLSearchParameter(parameters, 'iss');\n const state = getURLSearchParameter(parameters, 'state');\n if (!iss && as.authorization_response_iss_parameter_supported) {\n throw OPE('response parameter \"iss\" (issuer) missing', INVALID_RESPONSE, { parameters });\n }\n if (iss && iss !== as.issuer) {\n throw OPE('unexpected \"iss\" (issuer) response parameter value', INVALID_RESPONSE, {\n expected: as.issuer,\n parameters,\n });\n }\n switch (expectedState) {\n case undefined:\n case expectNoState:\n if (state !== undefined) {\n throw OPE('unexpected \"state\" response parameter encountered', INVALID_RESPONSE, {\n expected: undefined,\n parameters,\n });\n }\n break;\n case skipStateCheck:\n break;\n default:\n assertString(expectedState, '\"expectedState\" argument');\n if (state !== expectedState) {\n throw OPE(state === undefined\n ? 'response parameter \"state\" missing'\n : 'unexpected \"state\" response parameter value', INVALID_RESPONSE, { expected: expectedState, parameters });\n }\n }\n const error = getURLSearchParameter(parameters, 'error');\n if (error) {\n throw new AuthorizationResponseError('authorization response from the server is an error', {\n cause: parameters,\n });\n }\n const id_token = getURLSearchParameter(parameters, 'id_token');\n const token = getURLSearchParameter(parameters, 'token');\n if (id_token !== undefined || token !== undefined) {\n throw new UnsupportedOperationError('implicit and hybrid flows are not supported');\n }\n return brand(new URLSearchParams(parameters));\n}\nfunction algToSubtle(alg) {\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n return { name: 'RSA-PSS', hash: `SHA-${alg.slice(-3)}` };\n case 'RS256':\n case 'RS384':\n case 'RS512':\n return { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${alg.slice(-3)}` };\n case 'ES256':\n case 'ES384':\n return { name: 'ECDSA', namedCurve: `P-${alg.slice(-3)}` };\n case 'ES512':\n return { name: 'ECDSA', namedCurve: 'P-521' };\n case 'EdDSA':\n return 'Ed25519';\n case 'Ed25519':\n case 'ML-DSA-44':\n case 'ML-DSA-65':\n case 'ML-DSA-87':\n return alg;\n default:\n throw new UnsupportedOperationError('unsupported JWS algorithm', { cause: { alg } });\n }\n}\nasync function importJwk(alg, jwk) {\n const { ext, key_ops, use, ...key } = jwk;\n return crypto.subtle.importKey('jwk', key, algToSubtle(alg), true, ['verify']);\n}\nexport async function deviceAuthorizationRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'device_authorization_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(parameters);\n body.set('client_id', client.client_id);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processDeviceAuthorizationResponse(as, client, response) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 200, 'Device Authorization Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.device_code, '\"response\" body \"device_code\" property', INVALID_RESPONSE, {\n body: json,\n });\n assertString(json.user_code, '\"response\" body \"user_code\" property', INVALID_RESPONSE, {\n body: json,\n });\n assertString(json.verification_uri, '\"response\" body \"verification_uri\" property', INVALID_RESPONSE, { body: json });\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, true, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n if (json.verification_uri_complete !== undefined) {\n assertString(json.verification_uri_complete, '\"response\" body \"verification_uri_complete\" property', INVALID_RESPONSE, { body: json });\n }\n if (json.interval !== undefined) {\n assertNumber(json.interval, false, '\"response\" body \"interval\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nexport async function deviceCodeGrantRequest(as, client, clientAuthentication, deviceCode, options) {\n assertAs(as);\n assertClient(client);\n assertString(deviceCode, '\"deviceCode\"');\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('device_code', deviceCode);\n return tokenEndpointRequest(as, client, clientAuthentication, 'urn:ietf:params:oauth:grant-type:device_code', parameters, options);\n}\nexport async function processDeviceCodeResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options?.[jweDecrypt], options?.recognizedTokenTypes);\n}\nexport async function generateKeyPair(alg, options) {\n assertString(alg, '\"alg\"');\n const algorithm = algToSubtle(alg);\n if (alg.startsWith('PS') || alg.startsWith('RS')) {\n Object.assign(algorithm, {\n modulusLength: options?.modulusLength ?? 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n });\n }\n return crypto.subtle.generateKey(algorithm, options?.extractable ?? false, [\n 'sign',\n 'verify',\n ]);\n}\nfunction normalizeHtu(htu) {\n const url = new URL(htu);\n url.search = '';\n url.hash = '';\n return url.href;\n}\nasync function validateDPoP(request, accessToken, accessTokenClaims, options) {\n const headerValue = request.headers.get('dpop');\n if (headerValue === null) {\n throw OPE('operation indicated DPoP use but the request has no DPoP HTTP Header', INVALID_REQUEST, { headers: request.headers });\n }\n if (request.headers.get('authorization')?.toLowerCase().startsWith('dpop ') === false) {\n throw OPE(`operation indicated DPoP use but the request's Authorization HTTP Header scheme is not DPoP`, INVALID_REQUEST, { headers: request.headers });\n }\n if (typeof accessTokenClaims.cnf?.jkt !== 'string') {\n throw OPE('operation indicated DPoP use but the JWT Access Token has no jkt confirmation claim', INVALID_REQUEST, { claims: accessTokenClaims });\n }\n const clockSkew = getClockSkew(options);\n const proof = await validateJwt(headerValue, checkSigningAlgorithm.bind(undefined, options?.signingAlgorithms, undefined, supported), clockSkew, getClockTolerance(options), undefined)\n .then(checkJwtType.bind(undefined, 'dpop+jwt'))\n .then(validatePresence.bind(undefined, ['iat', 'jti', 'ath', 'htm', 'htu']));\n const now = epochTime() + clockSkew;\n const diff = Math.abs(now - proof.claims.iat);\n if (diff > 300) {\n throw OPE('DPoP Proof iat is not recent enough', JWT_TIMESTAMP_CHECK, {\n now,\n claims: proof.claims,\n claim: 'iat',\n });\n }\n if (proof.claims.htm !== request.method) {\n throw OPE('DPoP Proof htm mismatch', JWT_CLAIM_COMPARISON, {\n expected: request.method,\n claims: proof.claims,\n claim: 'htm',\n });\n }\n if (typeof proof.claims.htu !== 'string' ||\n normalizeHtu(proof.claims.htu) !== normalizeHtu(request.url)) {\n throw OPE('DPoP Proof htu mismatch', JWT_CLAIM_COMPARISON, {\n expected: normalizeHtu(request.url),\n claims: proof.claims,\n claim: 'htu',\n });\n }\n {\n const expected = b64u(await crypto.subtle.digest('SHA-256', buf(accessToken)));\n if (proof.claims.ath !== expected) {\n throw OPE('DPoP Proof ath mismatch', JWT_CLAIM_COMPARISON, {\n expected,\n claims: proof.claims,\n claim: 'ath',\n });\n }\n }\n const { jwk, alg } = proof.header;\n if (!isJsonObject(jwk)) {\n throw OPE('DPoP Proof jwk header parameter must be a JSON object', INVALID_REQUEST, {\n header: proof.header,\n });\n }\n {\n const expected = await calculateJwkThumbprint(jwk);\n if (accessTokenClaims.cnf.jkt !== expected) {\n throw OPE('JWT Access Token confirmation mismatch', JWT_CLAIM_COMPARISON, {\n expected,\n claims: accessTokenClaims,\n claim: 'cnf.jkt',\n });\n }\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = headerValue.split('.');\n const signature = b64u(encodedSignature);\n const key = await importJwk(alg, jwk);\n if (key.type !== 'public') {\n throw OPE('DPoP Proof jwk header parameter must contain a public key', INVALID_REQUEST, {\n header: proof.header,\n });\n }\n await validateJwsSignature(protectedHeader, payload, key, signature);\n}\nexport async function validateJwtAccessToken(as, request, expectedAudience, options) {\n assertAs(as);\n if (!looseInstanceOf(request, Request)) {\n throw CodedTypeError('\"request\" must be an instance of Request', ERR_INVALID_ARG_TYPE);\n }\n assertString(expectedAudience, '\"expectedAudience\"');\n const authorization = request.headers.get('authorization');\n if (authorization === null) {\n throw OPE('\"request\" is missing an Authorization HTTP Header', INVALID_REQUEST, {\n headers: request.headers,\n });\n }\n let { 0: scheme, 1: accessToken, length } = authorization.split(' ');\n scheme = scheme.toLowerCase();\n switch (scheme) {\n case 'dpop':\n case 'bearer':\n break;\n default:\n throw new UnsupportedOperationError('unsupported Authorization HTTP Header scheme', {\n cause: { headers: request.headers },\n });\n }\n if (length !== 2) {\n throw OPE('invalid Authorization HTTP Header format', INVALID_REQUEST, {\n headers: request.headers,\n });\n }\n const requiredClaims = [\n 'iss',\n 'exp',\n 'aud',\n 'sub',\n 'iat',\n 'jti',\n 'client_id',\n ];\n if (options?.requireDPoP || scheme === 'dpop' || request.headers.has('dpop')) {\n requiredClaims.push('cnf');\n }\n const { claims, header } = await validateJwt(accessToken, checkSigningAlgorithm.bind(undefined, options?.signingAlgorithms, undefined, supported), getClockSkew(options), getClockTolerance(options), undefined)\n .then(checkJwtType.bind(undefined, 'at+jwt'))\n .then(validatePresence.bind(undefined, requiredClaims))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, expectedAudience))\n .catch(reassignRSCode);\n for (const claim of ['client_id', 'jti', 'sub']) {\n if (typeof claims[claim] !== 'string') {\n throw OPE(`unexpected JWT \"${claim}\" claim type`, INVALID_REQUEST, { claims });\n }\n }\n if ('cnf' in claims) {\n if (!isJsonObject(claims.cnf)) {\n throw OPE('unexpected JWT \"cnf\" (confirmation) claim value', INVALID_REQUEST, { claims });\n }\n const { 0: cnf, length } = Object.keys(claims.cnf);\n if (length) {\n if (length !== 1) {\n throw new UnsupportedOperationError('multiple confirmation claims are not supported', {\n cause: { claims },\n });\n }\n if (cnf !== 'jkt') {\n throw new UnsupportedOperationError('unsupported JWT Confirmation method', {\n cause: { claims },\n });\n }\n }\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = accessToken.split('.');\n const signature = b64u(encodedSignature);\n const key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, signature);\n if (options?.requireDPoP ||\n scheme === 'dpop' ||\n claims.cnf?.jkt !== undefined ||\n request.headers.has('dpop')) {\n await validateDPoP(request, accessToken, claims, options).catch(reassignRSCode);\n }\n return claims;\n}\nfunction reassignRSCode(err) {\n if (err instanceof OperationProcessingError && err?.code === INVALID_REQUEST) {\n err.code = INVALID_RESPONSE;\n }\n throw err;\n}\nexport async function backchannelAuthenticationRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'backchannel_authentication_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(parameters);\n body.set('client_id', client.client_id);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processBackchannelAuthenticationResponse(as, client, response) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 200, 'Backchannel Authentication Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.auth_req_id, '\"response\" body \"auth_req_id\" property', INVALID_RESPONSE, {\n body: json,\n });\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, true, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n if (json.interval !== undefined) {\n assertNumber(json.interval, false, '\"response\" body \"interval\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nexport async function backchannelAuthenticationGrantRequest(as, client, clientAuthentication, authReqId, options) {\n assertAs(as);\n assertClient(client);\n assertString(authReqId, '\"authReqId\"');\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('auth_req_id', authReqId);\n return tokenEndpointRequest(as, client, clientAuthentication, 'urn:openid:params:grant-type:ciba', parameters, options);\n}\nexport async function processBackchannelAuthenticationGrantResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options?.[jweDecrypt], options?.recognizedTokenTypes);\n}\nexport async function dynamicClientRegistrationRequest(as, metadata, options) {\n assertAs(as);\n const url = resolveEndpoint(as, 'registration_endpoint', metadata.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n headers.set('content-type', 'application/json');\n const method = 'POST';\n if (options?.DPoP) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, method, options.initialAccessToken);\n }\n if (options?.initialAccessToken) {\n headers.set('authorization', `${headers.has('dpop') ? 'DPoP' : 'Bearer'} ${options.initialAccessToken}`);\n }\n const response = await (options?.[customFetch] || fetch)(url.href, {\n body: JSON.stringify(metadata),\n headers: Object.fromEntries(headers.entries()),\n method,\n redirect: 'manual',\n signal: signal(url, options?.signal),\n });\n options?.DPoP?.cacheNonce(response, url);\n return response;\n}\nexport async function processDynamicClientRegistrationResponse(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n await checkOAuthBodyError(response, 201, 'Dynamic Client Registration Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.client_id, '\"response\" body \"client_id\" property', INVALID_RESPONSE, {\n body: json,\n });\n if (json.client_secret !== undefined) {\n assertString(json.client_secret, '\"response\" body \"client_secret\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n if (json.client_secret) {\n assertNumber(json.client_secret_expires_at, true, '\"response\" body \"client_secret_expires_at\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nexport async function resourceDiscoveryRequest(resourceIdentifier, options) {\n return performDiscovery(resourceIdentifier, 'resourceIdentifier', (url) => {\n prependWellKnown(url, '.well-known/oauth-protected-resource', true);\n return url;\n }, options);\n}\nexport async function processResourceDiscoveryResponse(expectedResourceIdentifier, response) {\n const expected = expectedResourceIdentifier;\n if (!(expected instanceof URL) && expected !== _nodiscoverycheck) {\n throw CodedTypeError('\"expectedResourceIdentifier\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform Resource Server Metadata response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.resource, '\"response\" body \"resource\" property', INVALID_RESPONSE, {\n body: json,\n });\n if (expected !== _nodiscoverycheck && new URL(json.resource).href !== expected.href) {\n throw OPE('\"response\" body \"resource\" property does not match the expected value', JSON_ATTRIBUTE_COMPARISON, { expected: expected.href, body: json, attribute: 'resource' });\n }\n return json;\n}\nasync function getResponseJsonBody(response, check = assertApplicationJson) {\n let json;\n try {\n json = await response.json();\n }\n catch (cause) {\n check(response);\n throw OPE('failed to parse \"response\" body as JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(json)) {\n throw OPE('\"response\" body must be a top level object', INVALID_RESPONSE, { body: json });\n }\n return json;\n}\nexport const _nopkce = nopkce;\nexport const _nodiscoverycheck = Symbol();\nexport const _expectedIssuer = Symbol();\n//# sourceMappingURL=index.js.map",
47
47
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport * as oauth from \"oauth4webapi\";\nimport { AuthContext } from \"../auth.js\";\nimport type { AuthenticateFn } from \"./auth.js\";\n\n/** Options for {@link jwtAuthenticate}, configuring JWT Bearer-token validation. */\nexport interface JwtAuthenticateOptions {\n /** The expected `iss` claim (also used to discover AS metadata). */\n issuer: string;\n /** The expected `aud` claim. If an array, tries each audience in order. */\n audience: string | string[];\n /** Explicit JWKS URI. If omitted, discovered from issuer metadata. */\n jwksUri?: string;\n /** JWT claim to use as the principal. Default: \"sub\". */\n principalClaim?: string;\n /** AuthContext domain. Default: \"jwt\". */\n domain?: string;\n}\n\n/**\n * Create an AuthenticateFn that validates JWT Bearer tokens using oauth4webapi.\n *\n * On first call, discovers the Authorization Server metadata from the issuer\n * to obtain the JWKS URI (unless `jwksUri` is provided directly).\n */\nexport function jwtAuthenticate(options: JwtAuthenticateOptions): AuthenticateFn {\n const principalClaim = options.principalClaim ?? \"sub\";\n const domain = options.domain ?? \"jwt\";\n const audience = options.audience;\n\n let asPromise: Promise<oauth.AuthorizationServer> | null = null;\n\n async function getAuthorizationServer(): Promise<oauth.AuthorizationServer> {\n if (options.jwksUri) {\n return {\n issuer: options.issuer as `https://${string}`,\n jwks_uri: options.jwksUri,\n };\n }\n const issuerUrl = new URL(options.issuer);\n const response = await oauth.discoveryRequest(issuerUrl);\n return oauth.processDiscoveryResponse(issuerUrl, response);\n }\n\n return async function authenticate(request: Request): Promise<AuthContext> {\n if (!asPromise) {\n asPromise = getAuthorizationServer();\n }\n\n let as: oauth.AuthorizationServer;\n try {\n as = await asPromise;\n } catch (error) {\n // Reset so next request retries discovery\n asPromise = null;\n throw error;\n }\n\n // validateJwtAccessToken throws on failure, returns claims on success\n // oauth4webapi only accepts a single string, so iterate if multiple audiences\n const audiences = Array.isArray(audience) ? audience : [audience];\n let claims: oauth.JWTAccessTokenClaims | undefined;\n let lastError: unknown;\n for (const aud of audiences) {\n try {\n claims = await oauth.validateJwtAccessToken(as, request, aud);\n break;\n } catch (error) {\n lastError = error;\n }\n }\n if (!claims) {\n throw lastError;\n }\n const principal = (claims[principalClaim] as string | undefined) ?? null;\n\n return new AuthContext(domain, true, principal, claims as unknown as Record<string, any>);\n };\n}\n",
48
48
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { AuthContext } from \"../auth.js\";\nimport type { AuthenticateFn } from \"./auth.js\";\n\n// Indirect-string require so esbuild doesn't pull node:crypto into the bundle.\n// X509Certificate and createHash are used only by the PEM-based mTLS factories;\n// callers on workerd should not configure mTLS.\nconst _NODE_CRYPTO_MOD = \"node:crypto\";\ntype X509Certificate = any;\nfunction _loadNodeCrypto(): { X509Certificate: any; createHash: any } {\n const req: any = (import.meta as any).require ?? (globalThis as any).require ?? null;\n if (!req) {\n throw new Error(\"mTLS PEM-based authentication requires Node.js or Bun (node:crypto).\");\n }\n const nc = req(_NODE_CRYPTO_MOD);\n return { X509Certificate: nc.X509Certificate, createHash: nc.createHash };\n}\n\n// ---------------------------------------------------------------------------\n// XFCC types and parser (no crypto needed)\n// ---------------------------------------------------------------------------\n\n/** A single element from an `x-forwarded-client-cert` header. */\nexport interface XfccElement {\n /** Hex SHA-256 digest of the client certificate (`Hash` key). */\n hash: string | null;\n /** URL-decoded PEM of the client certificate (`Cert` key), if the proxy\n * forwarded it. */\n cert: string | null;\n /** Certificate Subject DN (`Subject` key). */\n subject: string | null;\n /** URL-decoded URI-type Subject Alternative Name (`URI` key). */\n uri: string | null;\n /** DNS-type Subject Alternative Names (`DNS` keys); may repeat in the header. */\n dns: readonly string[];\n /** URL-decoded URI of the proxy that presented the cert (`By` key). */\n by: string | null;\n}\n\n/** Receives a parsed XFCC element, returns an AuthContext on success. Must throw on failure. */\nexport type XfccValidateFn = (element: XfccElement) => AuthContext | Promise<AuthContext>;\n\n/** Receives a parsed X509Certificate, returns an AuthContext on success. Must throw on failure. */\nexport type CertValidateFn = (cert: X509Certificate) => AuthContext | Promise<AuthContext>;\n\nfunction splitRespectingQuotes(text: string, delimiter: string): string[] {\n const parts: string[] = [];\n let current: string[] = [];\n let inQuotes = false;\n let i = 0;\n while (i < text.length) {\n const ch = text[i];\n if (ch === '\"') {\n inQuotes = !inQuotes;\n current.push(ch);\n } else if (ch === \"\\\\\" && inQuotes && i + 1 < text.length) {\n current.push(ch);\n current.push(text[i + 1]);\n i++;\n } else if (ch === delimiter && !inQuotes) {\n parts.push(current.join(\"\"));\n current = [];\n } else {\n current.push(ch);\n }\n i++;\n }\n parts.push(current.join(\"\"));\n return parts;\n}\n\nfunction unescapeQuoted(text: string): string {\n return text.replace(/\\\\(.)/g, \"$1\");\n}\n\n/** Extract the CN value from an RFC 4514 or similar DN string. */\nfunction extractCn(subject: string): string {\n for (const part of subject.split(/(?<!\\\\),/)) {\n const trimmed = part.trim();\n if (trimmed.toUpperCase().startsWith(\"CN=\")) {\n return trimmed.slice(3);\n }\n }\n return \"\";\n}\n\n/**\n * Parse an `x-forwarded-client-cert` header value.\n *\n * Handles comma-separated elements (respecting quoted values),\n * semicolon-separated key=value pairs within each element, and\n * URL-encoded Cert/URI/By fields.\n */\nexport function parseXfcc(headerValue: string): XfccElement[] {\n const elements: XfccElement[] = [];\n for (const rawElement of splitRespectingQuotes(headerValue, \",\")) {\n const trimmed = rawElement.trim();\n if (!trimmed) continue;\n const pairs = splitRespectingQuotes(trimmed, \";\");\n const fields: Record<string, string | string[]> = {};\n for (const pair of pairs) {\n const p = pair.trim();\n if (!p) continue;\n const eqIdx = p.indexOf(\"=\");\n if (eqIdx < 0) continue;\n const key = p.slice(0, eqIdx).trim().toLowerCase();\n let value = p.slice(eqIdx + 1).trim();\n if (value.length >= 2 && value[0] === '\"' && value[value.length - 1] === '\"') {\n value = unescapeQuoted(value.slice(1, -1));\n }\n if (key === \"cert\" || key === \"uri\" || key === \"by\") {\n value = decodeURIComponent(value);\n }\n if (key === \"dns\") {\n const existing = fields.dns;\n if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n fields.dns = [value];\n }\n } else {\n fields[key] = value;\n }\n }\n const dns = Array.isArray(fields.dns) ? fields.dns : [];\n elements.push({\n hash: typeof fields.hash === \"string\" ? fields.hash : null,\n cert: typeof fields.cert === \"string\" ? fields.cert : null,\n subject: typeof fields.subject === \"string\" ? fields.subject : null,\n uri: typeof fields.uri === \"string\" ? fields.uri : null,\n dns,\n by: typeof fields.by === \"string\" ? fields.by : null,\n });\n }\n return elements;\n}\n\n/**\n * Create an authenticate callback from Envoy `x-forwarded-client-cert`.\n *\n * Parses the `x-forwarded-client-cert` header and extracts client identity.\n * Does not require any crypto dependencies.\n *\n * **Warning:** The reverse proxy MUST strip client-supplied\n * `x-forwarded-client-cert` headers before forwarding.\n */\nexport function mtlsAuthenticateXfcc(options?: {\n validate?: XfccValidateFn;\n domain?: string;\n selectElement?: \"first\" | \"last\";\n}): AuthenticateFn {\n const validate = options?.validate;\n const domain = options?.domain ?? \"mtls\";\n const selectElement = options?.selectElement ?? \"first\";\n\n return async function authenticate(request: Request): Promise<AuthContext> {\n const headerValue = request.headers.get(\"x-forwarded-client-cert\");\n if (!headerValue) {\n throw new Error(\"Missing x-forwarded-client-cert header\");\n }\n const elements = parseXfcc(headerValue);\n if (elements.length === 0) {\n throw new Error(\"Empty x-forwarded-client-cert header\");\n }\n const element = selectElement === \"first\" ? elements[0] : elements[elements.length - 1];\n if (validate) {\n return validate(element);\n }\n const principal = element.subject ? extractCn(element.subject) : \"\";\n const claims: Record<string, any> = {};\n if (element.hash) claims.hash = element.hash;\n if (element.subject) claims.subject = element.subject;\n if (element.uri) claims.uri = element.uri;\n if (element.dns.length > 0) claims.dns = [...element.dns];\n if (element.by) claims.by = element.by;\n return new AuthContext(domain, true, principal, claims);\n };\n}\n\n// ---------------------------------------------------------------------------\n// PEM-based factories (uses node:crypto X509Certificate)\n// ---------------------------------------------------------------------------\n\nfunction parseCertFromHeader(request: Request, header: string): X509Certificate {\n const raw = request.headers.get(header);\n if (!raw) {\n throw new Error(`Missing ${header} header`);\n }\n const pemStr = decodeURIComponent(raw);\n if (!pemStr.startsWith(\"-----BEGIN CERTIFICATE-----\")) {\n throw new Error(\"Header value is not a PEM certificate\");\n }\n const { X509Certificate } = _loadNodeCrypto();\n try {\n return new X509Certificate(pemStr);\n } catch (exc) {\n throw new Error(`Failed to parse PEM certificate: ${exc}`);\n }\n}\n\nfunction checkCertExpiry(cert: X509Certificate): void {\n const now = new Date();\n const notBefore = new Date(cert.validFrom);\n const notAfter = new Date(cert.validTo);\n if (now < notBefore) {\n throw new Error(\"Certificate is not yet valid\");\n }\n if (now > notAfter) {\n throw new Error(\"Certificate has expired\");\n }\n}\n\n/**\n * Create an mTLS authenticate callback with custom certificate validation.\n *\n * Generic factory that parses the client certificate from a proxy header\n * and delegates identity extraction to a user-supplied `validate` callback.\n *\n * **Warning:** The reverse proxy MUST strip client-supplied certificate\n * headers before forwarding.\n */\nexport function mtlsAuthenticate(options: {\n validate: CertValidateFn;\n header?: string;\n checkExpiry?: boolean;\n}): AuthenticateFn {\n const { validate, header = \"X-SSL-Client-Cert\", checkExpiry = false } = options;\n\n return async function authenticate(request: Request): Promise<AuthContext> {\n const cert = parseCertFromHeader(request, header);\n if (checkExpiry) {\n checkCertExpiry(cert);\n }\n return validate(cert);\n };\n}\n\nconst SUPPORTED_ALGORITHMS = new Set([\"sha256\", \"sha1\", \"sha384\", \"sha512\"]);\n\n/**\n * Create an mTLS authenticate callback using certificate fingerprint lookup.\n *\n * Computes the certificate fingerprint and looks it up in the provided\n * mapping. Fingerprints must be lowercase hex without colons.\n */\nexport function mtlsAuthenticateFingerprint(options: {\n fingerprints: ReadonlyMap<string, AuthContext> | Record<string, AuthContext>;\n header?: string;\n algorithm?: string;\n domain?: string;\n checkExpiry?: boolean;\n}): AuthenticateFn {\n const { fingerprints, header, algorithm = \"sha256\", checkExpiry } = options;\n if (!SUPPORTED_ALGORITHMS.has(algorithm)) {\n throw new Error(`Unsupported hash algorithm: ${algorithm}`);\n }\n const entries: ReadonlyMap<string, AuthContext> =\n fingerprints instanceof Map ? fingerprints : new Map(Object.entries(fingerprints));\n\n function validate(cert: X509Certificate): AuthContext {\n const { createHash } = _loadNodeCrypto();\n const fp = createHash(algorithm).update(cert.raw).digest(\"hex\");\n const ctx = entries.get(fp);\n if (!ctx) {\n throw new Error(`Unknown certificate fingerprint: ${fp}`);\n }\n return ctx;\n }\n\n return mtlsAuthenticate({ validate, header, checkExpiry });\n}\n\n/**\n * Create an mTLS authenticate callback using certificate subject CN.\n *\n * Extracts the Subject Common Name as `principal` and populates\n * `claims` with the full DN, serial number (hex), and `not_valid_after`.\n */\nexport function mtlsAuthenticateSubject(options?: {\n header?: string;\n domain?: string;\n allowedSubjects?: ReadonlySet<string> | null;\n checkExpiry?: boolean;\n}): AuthenticateFn {\n const { header, domain = \"mtls\", allowedSubjects = null, checkExpiry } = options ?? {};\n\n function validate(cert: X509Certificate): AuthContext {\n // Node's cert.subject is \\n-separated \"KEY=value\" lines\n const subjectParts: string[] = cert.subject\n .split(\"\\n\")\n .map((s: string) => s.trim())\n .filter(Boolean);\n const subjectDn = subjectParts.join(\", \");\n\n let cn = \"\";\n for (const part of subjectParts) {\n if (part.toUpperCase().startsWith(\"CN=\")) {\n cn = part.slice(3);\n break;\n }\n }\n\n if (allowedSubjects !== null && !allowedSubjects.has(cn)) {\n throw new Error(`Subject CN '${cn}' not in allowed subjects`);\n }\n\n const serialHex = BigInt(`0x${cert.serialNumber}`).toString(16);\n const notValidAfter = new Date(cert.validTo).toISOString();\n\n return new AuthContext(domain, true, cn, {\n subject_dn: subjectDn,\n serial: serialHex,\n not_valid_after: notValidAfter,\n });\n }\n\n return mtlsAuthenticate({ validate, header, checkExpiry });\n}\n",
49
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n binary,\n bool as boolType,\n float32 as float32Type,\n float64 as float64Type,\n int8 as int8Type,\n int16 as int16Type,\n int32 as int32Type,\n int64 as int64Type,\n isBinary,\n isBool,\n isFloat,\n isInt,\n isUtf8,\n field as makeField,\n schema as makeSchema,\n uint8 as uint8Type,\n uint16 as uint16Type,\n uint32 as uint32Type,\n uint64 as uint64Type,\n utf8,\n type VgiDataType,\n type VgiField,\n type VgiSchema,\n} from \"./arrow/index.js\";\n\n// ---------------------------------------------------------------------------\n// Convenient DataType singletons — re-export so users avoid arrow imports\n// ---------------------------------------------------------------------------\n\n/** Apache Arrow Utf8 type. Use as schema shorthand: `{ name: str }` */\nexport const str = utf8();\n/** Apache Arrow Binary type. Use as schema shorthand: `{ data: bytes }` */\nexport const bytes = binary();\n/** Apache Arrow Int64 type. Use as schema shorthand: `{ count: int }` */\nexport const int = int64Type();\n/** Apache Arrow Int32 type. Use as schema shorthand: `{ count: int32 }` */\nexport const int32 = int32Type();\n/** Apache Arrow Int16 type. Use as schema shorthand: `{ count: int16 }` */\nexport const int16 = int16Type();\n/** Apache Arrow Int8 type. Use as schema shorthand: `{ count: int8 }` */\nexport const int8 = int8Type();\n/** Apache Arrow Uint8 type. Use as schema shorthand: `{ count: uint8 }` */\nexport const uint8 = uint8Type();\n/** Apache Arrow Uint16 type. Use as schema shorthand: `{ count: uint16 }` */\nexport const uint16 = uint16Type();\n/** Apache Arrow Uint32 type. Use as schema shorthand: `{ count: uint32 }` */\nexport const uint32 = uint32Type();\n/** Apache Arrow Uint64 type. Use as schema shorthand: `{ count: uint64 }` */\nexport const uint64 = uint64Type();\n/** Apache Arrow Float64 type. Use as schema shorthand: `{ value: float }` */\nexport const float = float64Type();\n/** Apache Arrow Float32 type. Use as schema shorthand: `{ value: float32 }` */\nexport const float32 = float32Type();\n/** Apache Arrow Bool type. Use as schema shorthand: `{ flag: bool }` */\nexport const bool = boolType();\n\n// ---------------------------------------------------------------------------\n// SchemaLike — shorthand for declaring schemas\n// ---------------------------------------------------------------------------\n\n/**\n * Structural minimum that any backend's Schema must satisfy. arrow-js's\n * `Schema`, vgi-typescript's `VgiSchema`, and flechette's `Schema` all match\n * this shape. Used so vgi-rpc consumers don't have to know which Arrow\n * library is on the other side of the wire.\n *\n * Kept exported for backwards compatibility — equivalent to `VgiSchema`.\n */\nexport interface SchemaShape {\n readonly fields: ReadonlyArray<{\n readonly name: string;\n readonly type: { readonly typeId: number };\n readonly nullable?: boolean;\n readonly metadata?: Map<string, string>;\n }>;\n readonly metadata?: Map<string, string> | null;\n}\n\n/**\n * A schema specification that accepts:\n * - A real `VgiSchema` (passed through)\n * - Anything structurally `SchemaShape`\n * - A record mapping field names to `VgiDataType` instances or `VgiField` instances\n * - An empty `{}` for an empty schema\n */\nexport type SchemaLike = VgiSchema | SchemaShape | Record<string, VgiDataType | VgiField>;\n\nfunction isField(x: unknown): x is VgiField {\n return (\n x != null &&\n typeof (x as any).name === \"string\" &&\n (x as any).type != null &&\n typeof (x as any).nullable === \"boolean\"\n );\n}\n\nfunction isDataType(x: unknown): x is VgiDataType {\n return x != null && typeof (x as any).typeId === \"number\";\n}\n\n/**\n * Convert a SchemaLike spec into a real `VgiSchema`.\n */\nexport function toSchema(spec: SchemaLike): VgiSchema {\n // VgiSchema / SchemaShape branch: anything with a `fields` array.\n const maybeFields = (spec as { fields?: unknown }).fields;\n if (Array.isArray(maybeFields)) {\n const out: VgiField[] = [];\n for (const f of maybeFields as ReadonlyArray<any>) {\n if (isField(f)) {\n out.push(f);\n } else {\n out.push(makeField(f.name, f.type, f.nullable ?? true, f.metadata));\n }\n }\n return makeSchema(out);\n }\n\n const fields: VgiField[] = [];\n for (const [name, value] of Object.entries(spec)) {\n if (isField(value)) {\n fields.push(value);\n } else if (isDataType(value)) {\n fields.push(makeField(name, value, false));\n } else {\n throw new TypeError(`Invalid schema value for \"${name}\": expected DataType or Field, got ${typeof value}`);\n }\n }\n return makeSchema(fields);\n}\n\n// ---------------------------------------------------------------------------\n// inferParamTypes — derive paramTypes from a schema spec\n// ---------------------------------------------------------------------------\n\n/**\n * Derive a `paramTypes` record from a SchemaLike spec.\n * Maps common Arrow scalar types to Python-style type strings.\n * Returns `undefined` if any field has a complex type (List, Map_, Dictionary, etc.).\n */\nexport function inferParamTypes(spec: SchemaLike): Record<string, string> | undefined {\n const sch = toSchema(spec);\n if (sch.fields.length === 0) return undefined;\n\n const result: Record<string, string> = {};\n for (const f of sch.fields) {\n let mapped: string | undefined;\n if (isUtf8(f.type)) mapped = \"str\";\n else if (isBinary(f.type)) mapped = \"bytes\";\n else if (isBool(f.type)) mapped = \"bool\";\n else if (isFloat(f.type)) mapped = \"float\";\n else if (isInt(f.type)) mapped = \"int\";\n if (!mapped) return undefined;\n result[f.name] = mapped;\n }\n return result;\n}\n",
50
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { schema as makeSchema } from \"./arrow/index.js\";\nimport { parseProtocolVersion } from \"./errors.js\";\nimport { inferParamTypes, type SchemaLike, toSchema } from \"./schema.js\";\nimport {\n type ExchangeFn,\n type ExchangeInit,\n type HeaderInit,\n type MethodDefinition,\n MethodType,\n type OnCancelFn,\n type ProducerFn,\n type ProducerInit,\n type UnaryHandler,\n} from \"./types.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\n/**\n * Fluent builder for defining RPC methods.\n * Register unary, producer, and exchange methods, then pass to `VgiRpcServer`.\n */\nexport class Protocol {\n /** Service / protocol name, exposed to clients via introspection. */\n readonly name: string;\n /**\n * Application protocol surface version. When non-empty, the server enforces\n * exact major+minor match (patch ignored) against every request's\n * `vgi_rpc.protocol_version` metadata; clients bound to this Protocol emit\n * the value on every request. Format: canonical semver MAJOR.MINOR.PATCH.\n * Mirrors Python's `Protocol.protocol_version` ClassVar.\n */\n readonly protocolVersion: string;\n /** Parsed semver tuple; null when `protocolVersion` is unset. */\n readonly protocolVersionParts: readonly [number, number, number] | null;\n private _methods: Map<string, MethodDefinition> = new Map();\n\n constructor(name: string, options?: { protocolVersion?: string }) {\n this.name = name;\n const raw = options?.protocolVersion;\n if (raw === undefined || raw === \"\") {\n this.protocolVersion = \"\";\n this.protocolVersionParts = null;\n } else {\n this.protocolVersion = raw;\n this.protocolVersionParts = parseProtocolVersion(raw);\n }\n }\n\n /**\n * Register a unary (request-response) method.\n * @param name - Method name exposed to clients\n * @param config.params - Parameter schema (SchemaLike)\n * @param config.result - Result schema (SchemaLike)\n * @param config.handler - Async function receiving params and returning result values\n * @param config.doc - Optional documentation string\n * @param config.defaults - Optional default parameter values\n * @param config.paramTypes - Optional parameter type hints (inferred from params if omitted)\n */\n unary(\n name: string,\n config: {\n params: SchemaLike;\n result: SchemaLike;\n handler: UnaryHandler;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n },\n ): this {\n const params = toSchema(config.params);\n this._methods.set(name, {\n name,\n type: MethodType.UNARY,\n paramsSchema: params,\n resultSchema: toSchema(config.result),\n handler: config.handler,\n doc: config.doc,\n defaults: config.defaults,\n paramTypes: config.paramTypes ?? inferParamTypes(params),\n });\n return this;\n }\n\n /**\n * Register a producer (server-streaming) method.\n * The generic `S` is inferred from the `init` return type and threaded to `produce`.\n */\n producer<S>(\n name: string,\n config: {\n params: SchemaLike;\n outputSchema: SchemaLike;\n init: ProducerInit<S>;\n produce: ProducerFn<S>;\n onCancel?: OnCancelFn<S>;\n headerSchema?: SchemaLike;\n headerInit?: HeaderInit;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n },\n ): this {\n const params = toSchema(config.params);\n this._methods.set(name, {\n name,\n type: MethodType.STREAM,\n paramsSchema: params,\n resultSchema: EMPTY_SCHEMA,\n outputSchema: toSchema(config.outputSchema),\n inputSchema: EMPTY_SCHEMA,\n producerInit: config.init as ProducerInit,\n producerFn: config.produce as ProducerFn,\n onCancel: config.onCancel as OnCancelFn | undefined,\n headerSchema: config.headerSchema ? toSchema(config.headerSchema) : undefined,\n headerInit: config.headerInit,\n doc: config.doc,\n defaults: config.defaults,\n paramTypes: config.paramTypes ?? inferParamTypes(params),\n });\n return this;\n }\n\n /**\n * Register an exchange (bidirectional-streaming) method.\n * The generic `S` is inferred from the `init` return type and threaded to `exchange`.\n */\n exchange<S>(\n name: string,\n config: {\n params: SchemaLike;\n inputSchema: SchemaLike;\n outputSchema: SchemaLike;\n init: ExchangeInit<S>;\n exchange: ExchangeFn<S>;\n onCancel?: OnCancelFn<S>;\n headerSchema?: SchemaLike;\n headerInit?: HeaderInit;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n },\n ): this {\n const params = toSchema(config.params);\n this._methods.set(name, {\n name,\n type: MethodType.STREAM,\n paramsSchema: params,\n resultSchema: EMPTY_SCHEMA,\n inputSchema: toSchema(config.inputSchema),\n outputSchema: toSchema(config.outputSchema),\n exchangeInit: config.init as ExchangeInit,\n exchangeFn: config.exchange as ExchangeFn,\n onCancel: config.onCancel as OnCancelFn | undefined,\n headerSchema: config.headerSchema ? toSchema(config.headerSchema) : undefined,\n headerInit: config.headerInit,\n doc: config.doc,\n defaults: config.defaults,\n paramTypes: config.paramTypes ?? inferParamTypes(params),\n });\n return this;\n }\n\n /** Snapshot of the registered methods, keyed by method name. Returns a copy,\n * so mutating it does not affect the protocol. */\n getMethods(): Map<string, MethodDefinition> {\n return new Map(this._methods);\n }\n}\n",
51
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { conformBatchToSchema, schema as makeSchema, withBatchMetadata } from \"../arrow/index.js\";\nimport { CANCEL_KEY } from \"../constants.js\";\nimport { type ExternalLocationConfig, maybeExternalizeBatch } from \"../external.js\";\nimport type { MethodDefinition, TransportKind } from \"../types.js\";\nimport { OutputCollector } from \"../types.js\";\nimport type { IpcStreamReader } from \"../wire/reader.js\";\nimport { buildErrorBatch, buildResultBatch } from \"../wire/response.js\";\nimport type { IpcStreamWriter } from \"../wire/writer.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\n/**\n * Dispatch a stream RPC call (producer or exchange).\n *\n * Producer streams (empty input schema):\n * - Client sends tick batches (empty schema, 0 rows)\n * - Server reads each tick, calls produce(state, out)\n * - Server writes output batch(es) for each tick\n * - When produce() calls out.finish(), server closes output stream\n *\n * Exchange streams (real input schema):\n * - Client sends data batches\n * - Server reads each batch, calls exchange(state, input, out)\n * - Server writes output batch(es) for each input\n * - Stream ends when client closes input (EOS)\n */\nexport async function dispatchStream(\n method: MethodDefinition,\n params: Record<string, any>,\n writer: IpcStreamWriter,\n reader: IpcStreamReader,\n serverId: string,\n requestId: string | null,\n externalConfig?: ExternalLocationConfig,\n kind?: TransportKind,\n): Promise<void> {\n const isProducer = !!method.producerFn;\n\n let state: any;\n try {\n if (isProducer) {\n state = await method.producerInit!(params);\n } else {\n state = await method.exchangeInit!(params);\n }\n } catch (error: any) {\n const errSchema = method.headerSchema ?? EMPTY_SCHEMA;\n const errBatch = buildErrorBatch(errSchema, error, serverId, requestId);\n await writer.writeStream(errSchema, [errBatch]);\n // Still need to consume the input stream from the client\n const inputSchema = await reader.openNextStream();\n if (inputSchema) {\n while ((await reader.readNextBatch()) !== null) {\n // drain\n }\n }\n return;\n }\n\n // Support dynamic output schemas: init may return state with __outputSchema\n // to override the method's registered output schema (needed for methods\n // like VGI's \"init\" that produce different schemas per invocation).\n const outputSchema = state?.__outputSchema ?? method.outputSchema!;\n\n // Effective producer mode: check state override (VGI \"init\" is registered as\n // exchange but may act as producer depending on the function type).\n const effectiveProducer = state?.__isProducer ?? isProducer;\n\n // Write header IPC stream if method has a header schema\n if (method.headerSchema && method.headerInit) {\n try {\n const headerOut = new OutputCollector(method.headerSchema, true, serverId, requestId, undefined, undefined, kind);\n const headerValues = method.headerInit(params, state, headerOut);\n const headerBatch = buildResultBatch(method.headerSchema, headerValues, serverId, requestId);\n const headerBatches = [...headerOut.batches.map((b) => b.batch), headerBatch];\n await writer.writeStream(method.headerSchema, headerBatches);\n } catch (error: any) {\n const errBatch = buildErrorBatch(method.headerSchema, error, serverId, requestId);\n await writer.writeStream(method.headerSchema, [errBatch]);\n // Drain input stream so client doesn't hang\n const inputSchema = await reader.openNextStream();\n if (inputSchema) {\n while ((await reader.readNextBatch()) !== null) {}\n }\n return;\n }\n }\n\n // Open the input IPC stream (ticks or data from client)\n const inputSchema = await reader.openNextStream();\n if (!inputSchema) {\n const errBatch = buildErrorBatch(outputSchema, new Error(\"Expected input stream but got EOF\"), serverId, requestId);\n await writer.writeStream(outputSchema, [errBatch]);\n return;\n }\n\n // Use a single continuous IPC stream for all output (matching Python vgi-rpc).\n // DuckDB exchanges are ping-pong: one input batch → one output batch on the\n // same stream. We use IncrementalStream which writes bytes synchronously.\n const stream = writer.openStream(outputSchema);\n\n // Expected input schema for casting compatible types (e.g., decimal→double).\n // State.__inputSchema overrides the method-registration schema per call,\n // mirroring the __outputSchema pattern. Used by dynamic-input exchange\n // methods (e.g., VGI's init, which binds to a user-supplied input shape).\n const expectedInputSchema = state?.__inputSchema ?? method.inputSchema;\n\n try {\n while (true) {\n let inputBatch = await reader.readNextBatch();\n if (!inputBatch) break;\n\n // Client cancellation: if the input batch carries vgi_rpc.cancel metadata,\n // end the stream cleanly without calling the producer/exchange handler.\n // The onCancel hook (if registered) runs once so state objects can\n // release resources.\n if (inputBatch.metadata?.get(CANCEL_KEY)) {\n if (method.onCancel) {\n try {\n await method.onCancel(state);\n } catch (err) {\n console.debug?.(`onCancel hook failed: ${err instanceof Error ? err.message : err}`);\n }\n }\n break;\n }\n\n // Cast compatible input types when schema doesn't match exactly.\n // Gated on effectiveProducer (not isProducer) so methods that flip to\n // producer mode via state.__isProducer skip the conform entirely — the\n // tick batches they receive have a dummy shape that shouldn't be checked.\n // Any conformance failure falls through with the original batch; the\n // exchange handler owns input-shape validation if it cares.\n if (expectedInputSchema && !effectiveProducer && inputBatch.schema !== expectedInputSchema) {\n try {\n inputBatch = conformBatchToSchema(inputBatch, expectedInputSchema);\n } catch (e) {\n // Field name/count mismatch (TypeError) is a hard contract violation —\n // propagate as an RpcError so callers see a structured failure instead\n // of a downstream hang or silent garbage. Other conform failures (e.g.\n // type-cast issues for dynamic-input handlers) fall through with the\n // original batch — handlers that bind their input shape per-call\n // should set state.__inputSchema so the conform doesn't run at all.\n if (e instanceof TypeError) throw e;\n console.debug?.(`Schema conformance skipped: ${e instanceof Error ? e.message : e}`);\n }\n }\n\n const out = new OutputCollector(outputSchema, effectiveProducer, serverId, requestId, undefined, undefined, kind);\n\n if (isProducer) {\n await method.producerFn!(state, out);\n } else {\n await method.exchangeFn!(state, inputBatch, out);\n }\n\n for (const emitted of out.batches) {\n let batch = emitted.batch;\n if (externalConfig) {\n batch = await maybeExternalizeBatch(batch, externalConfig);\n }\n // Attach per-emit metadata (e.g. vgi_batch_index,\n // vgi_partition_values#b64) as the RecordBatch message's\n // custom_metadata so the C++ extension can read it off the wire.\n if (emitted.metadata && emitted.metadata.size > 0) {\n batch = withBatchMetadata(batch, emitted.metadata);\n }\n await stream.write(batch);\n }\n\n if (out.finished) {\n break;\n }\n }\n } catch (error: any) {\n await stream.write(buildErrorBatch(outputSchema, error, serverId, requestId));\n }\n\n await stream.close();\n\n // Drain remaining input so transport stays synchronized for next request.\n // Matches Python's _drain_stream() called after every streaming method.\n // Needed when the loop exits early (out.finished, error) while client\n // is still sending batches.\n try {\n while ((await reader.readNextBatch()) !== null) {}\n } catch {\n // Suppress errors during drain (broken pipe, etc.)\n }\n}\n",
52
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { type ExternalLocationConfig, maybeExternalizeBatch } from \"../external.js\";\nimport type { MethodDefinition, TransportKind } from \"../types.js\";\nimport { OutputCollector } from \"../types.js\";\nimport { buildErrorBatch, buildResultBatch } from \"../wire/response.js\";\nimport type { IpcStreamWriter } from \"../wire/writer.js\";\n\n/**\n * Dispatch a unary RPC call.\n * Calls the handler with parsed params, writes result or error batch.\n * Supports client-directed logging via ctx.clientLog().\n */\nexport async function dispatchUnary(\n method: MethodDefinition,\n params: Record<string, any>,\n writer: IpcStreamWriter,\n serverId: string,\n requestId: string | null,\n externalConfig?: ExternalLocationConfig,\n kind?: TransportKind,\n): Promise<void> {\n const schema = method.resultSchema;\n const out = new OutputCollector(schema, true, serverId, requestId, undefined, undefined, kind);\n\n try {\n const result = await method.handler!(params, out);\n let resultBatch = buildResultBatch(schema, result, serverId, requestId);\n if (externalConfig) {\n resultBatch = await maybeExternalizeBatch(resultBatch, externalConfig);\n }\n // Collect log batches (from clientLog) + result batch\n const batches = [...out.batches.map((b) => b.batch), resultBatch];\n await writer.writeStream(schema, batches);\n } catch (error: any) {\n const batch = buildErrorBatch(schema, error, serverId, requestId);\n await writer.writeStream(schema, [batch]);\n }\n}\n",
53
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Socket } from \"node:net\";\nimport type { IncrementalEncoder, VgiBatch, VgiSchema } from \"../arrow/index.js\";\nimport { createIncrementalEncoder, serializeBatches } from \"../arrow/index.js\";\n\nconst STDOUT_FD = 1;\n\n// Resolve node:fs via indirect-string require so esbuild/wrangler don't\n// statically pull node:fs into the bundle. Workers (Cloudflare workerd) never\n// instantiate IpcStreamWriter (no stdio transport on workers), so the\n// runtime-time require(\"node:fs\") is unreachable in those builds.\n//\n// `globalThis.require` is undefined in both Bun ESM and Node ESM, so we try\n// `import.meta.require` (Bun) first, then fall back to globalThis.require\n// (Node CJS). Node ESM consumers must polyfill require if they need the\n// subprocess transport.\nconst _NODE_FS_MOD = \"node:fs\";\nlet _writeSync: ((fd: number, data: Uint8Array, offset?: number, len?: number) => number) | null = null;\nfunction _loadWriteSync(): (fd: number, data: Uint8Array, offset?: number, len?: number) => number {\n if (_writeSync) return _writeSync;\n const req: any = (import.meta as any).require ?? (globalThis as any).require ?? null;\n if (!req) {\n throw new Error(\n \"IpcStreamWriter requires Bun or Node.js CJS for sync node:fs.writeSync. \" +\n \"Subprocess transport is not available in this runtime.\",\n );\n }\n const fs = req(_NODE_FS_MOD);\n _writeSync = fs.writeSync.bind(fs);\n return _writeSync!;\n}\n\n/**\n * Write all bytes to a file descriptor, looping on partial writes.\n *\n * Stdio path only. The fd here is a pipe (typically stdout) inherited from\n * the launcher in subprocess transport. Pipes set up by fork/exec are\n * blocking by default, so writeSync blocks the kernel (not the event loop in\n * a bad way) until the parent reader drains — that is the *desired* lockstep\n * with the client. The AF_UNIX path does not come through here; sockets are\n * non-blocking and EAGAIN-spinning them would freeze the event loop and\n * starve every other connection. See `socketWriteAll` below.\n */\nfunction writeAll(fd: number, data: Uint8Array): void {\n const writeSync = _loadWriteSync();\n let offset = 0;\n while (offset < data.length) {\n try {\n const written = writeSync(fd, data, offset, data.length - offset);\n if (written <= 0) throw new Error(`writeSync returned ${written}`);\n offset += written;\n } catch (e: any) {\n if (e.code === \"EAGAIN\") {\n // A non-blocking pipe — unexpected for stdio, but handle defensively.\n // Yielding is not possible from a synchronous function; busy-wait\n // briefly. AF_UNIX sockets must NOT use this path.\n Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 1);\n continue;\n }\n throw e;\n }\n }\n}\n\n/**\n * Asynchronously write all bytes to a Node net.Socket, honouring backpressure.\n *\n * `socket.write(buf)` queues `buf` into libuv's per-socket outbound buffer\n * and returns false when that buffer has grown past `highWaterMark`. We then\n * `await` the `'drain'` event so the JS thread yields — other connections\n * can be dispatched while the kernel drains the send buffer in the\n * background. Without this yield, a slow consumer on connection A would\n * freeze every other connection's handler on the shared event loop.\n *\n * Resolves cleanly on socket close/error so the caller's try/finally can\n * unwind without dangling listeners.\n */\nasync function socketWriteAll(socket: Socket, data: Uint8Array): Promise<void> {\n if (socket.destroyed || socket.writableEnded) {\n throw new Error(\"socketWriteAll: socket is already closed\");\n }\n const ok = socket.write(data);\n if (ok) return;\n await new Promise<void>((resolve, reject) => {\n const cleanup = () => {\n socket.off(\"drain\", onDrain);\n socket.off(\"error\", onError);\n socket.off(\"close\", onClose);\n };\n const onDrain = () => {\n cleanup();\n resolve();\n };\n const onError = (err: Error) => {\n cleanup();\n reject(err);\n };\n const onClose = () => {\n // Peer hung up before drain. Resolve so the caller's try/finally\n // runs; the next read on this connection will surface EOF.\n cleanup();\n resolve();\n };\n socket.once(\"drain\", onDrain);\n socket.once(\"error\", onError);\n socket.once(\"close\", onClose);\n });\n}\n\ntype WriterTarget = { kind: \"fd\"; fd: number } | { kind: \"socket\"; socket: Socket };\n\n/**\n * Writes sequential IPC streams to either an fd (stdio subprocess transport)\n * or a Node Socket (AF_UNIX transport). Each call to writeStream() writes a\n * complete IPC stream: schema + batches + EOS.\n *\n * All public methods are async. The fd path resolves immediately after a\n * synchronous writeSync; the socket path awaits real `'drain'` events on\n * backpressure so the event loop stays responsive to other connections.\n */\nexport class IpcStreamWriter {\n private readonly target: WriterTarget;\n\n /**\n * Construct from a file descriptor (stdio transport) or a Node net.Socket\n * (AF_UNIX transport). The default targets stdout for legacy stdio servers\n * that didn't pass an fd.\n */\n constructor(fdOrSocket: number | Socket = STDOUT_FD) {\n if (typeof fdOrSocket === \"number\") {\n this.target = { kind: \"fd\", fd: fdOrSocket };\n } else {\n this.target = { kind: \"socket\", socket: fdOrSocket };\n }\n }\n\n /**\n * Write a complete IPC stream with the given schema and batches.\n * Creates schema message, writes all batches (with their metadata), writes EOS.\n */\n async writeStream(schema: VgiSchema, batches: VgiBatch[]): Promise<void> {\n // Delegate to the Arrow facade so the bytes-on-the-wire match the\n // active backend (arrow-js by default, flechette under the `workerd`/\n // `worker`/`browser` package.json conditions). The incremental stream\n // below still uses arrow-js directly — flechette has no equivalent\n // streaming-writer surface and only the stdio server uses the\n // incremental path.\n const bytes = serializeBatches(schema, batches);\n if (this.target.kind === \"fd\") {\n writeAll(this.target.fd, bytes);\n } else {\n await socketWriteAll(this.target.socket, bytes);\n }\n }\n\n /**\n * Open an incremental IPC stream for writing batches one at a time.\n */\n openStream(schema: VgiSchema): IncrementalStream {\n return new IncrementalStream(this.target, schema);\n }\n}\n\n/**\n * An open IPC stream that supports incremental batch writes.\n *\n * Drives a backend {@link IncrementalEncoder} and flushes its bytes through\n * the same target (fd or socket) as the parent IpcStreamWriter. The write()\n * and close() methods are async so the socket path can yield on backpressure\n * — critical under AF_UNIX where the kernel send buffer (~8 KB on macOS)\n * fills quickly and any synchronous busy-wait would starve every other\n * connection sharing this event loop.\n *\n * The encoder is obtained from the Arrow facade, so this file no longer\n * imports arrow-js directly — keeping arrow-js out of the flechette\n * (workerd/browser) bundle. The flechette encoder throws on construction;\n * the stdio exchange protocol is lockstep (the client reads each response\n * batch before sending the next input) which needs an incremental writer\n * flechette doesn't provide. workerd/browser deployments use HTTP (no\n * stdio), so the flechette path is never reached there; `flechette-pipe`\n * conformance is xfailed for streams.\n */\nexport class IncrementalStream {\n private readonly encoder: IncrementalEncoder;\n private readonly target: WriterTarget;\n private closed = false;\n // Chains async writes so concurrent callers can't interleave bytes on the\n // wire. Each operation appends to this promise; awaiting it preserves\n // FIFO order even when the caller doesn't await between writes.\n private writeChain: Promise<void> = Promise.resolve();\n\n constructor(target: WriterTarget, schema: VgiSchema) {\n this.target = target;\n this.encoder = createIncrementalEncoder(schema);\n // Schema bytes — synchronous on the fd path, queued on the socket path.\n // Callers don't await openStream(), so we serialize via writeChain.\n this.enqueue(this.encoder.start());\n }\n\n /** Write a single batch. Resolves once the bytes are queued/flushed. */\n async write(batch: VgiBatch): Promise<void> {\n if (this.closed) throw new Error(\"Stream already closed\");\n return this.enqueue(this.encoder.writeBatch(batch));\n }\n\n /** Close the stream (writes EOS marker). */\n async close(): Promise<void> {\n if (this.closed) return;\n this.closed = true;\n return this.enqueue(this.encoder.finish());\n }\n\n private enqueue(bytes: Uint8Array): Promise<void> {\n const next = this.writeChain.then(() => {\n if (this.target.kind === \"fd\") {\n writeAll(this.target.fd, bytes);\n return;\n }\n return socketWriteAll(this.target.socket, bytes);\n });\n // Swallow rejections on the chain so a single failure doesn't poison\n // every subsequent enqueue with an unhandled rejection. The returned\n // `next` still propagates the error to the caller that triggered it.\n this.writeChain = next.catch(() => undefined);\n return next;\n }\n}\n",
54
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { schema as makeSchema, serializeBatch } from \"./arrow/index.js\";\nimport { DESCRIBE_METHOD_NAME, PROTOCOL_VERSION_KEY } from \"./constants.js\";\nimport { buildDescribeBatch } from \"./dispatch/describe.js\";\nimport { dispatchStream } from \"./dispatch/stream.js\";\nimport { dispatchUnary } from \"./dispatch/unary.js\";\nimport {\n MethodNotImplementedError,\n ProtocolVersionError,\n parseProtocolVersion,\n RpcError,\n VersionError,\n} from \"./errors.js\";\nimport type { ExternalLocationConfig } from \"./external.js\";\nimport type { Protocol } from \"./protocol.js\";\nimport {\n type CallStatistics,\n type DispatchHook,\n type DispatchInfo,\n MethodType,\n type ServeStartHook,\n TransportKind,\n} from \"./types.js\";\nimport { IpcStreamReader } from \"./wire/reader.js\";\nimport { applyDefaults, parseRequest } from \"./wire/request.js\";\nimport { buildErrorBatch } from \"./wire/response.js\";\nimport { IpcStreamWriter } from \"./wire/writer.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\nfunction randomStreamId(): string {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n let out = \"\";\n for (let i = 0; i < bytes.length; i++) {\n out += bytes[i].toString(16).padStart(2, \"0\");\n }\n return out;\n}\n\n/**\n * RPC server that reads Arrow IPC requests from stdin and writes responses to stdout.\n * Supports unary and streaming (producer/exchange) methods.\n */\nexport class VgiRpcServer {\n private protocol: Protocol;\n private enableDescribe: boolean;\n private serverId: string;\n // Lazily initialized — `buildDescribeBatch` is async because the protocol\n // hash is computed via `crypto.subtle.digest` (Web Crypto). The dispatch\n // path awaits the cached promise on first use.\n private _describePromise: Promise<{\n batch: import(\"./arrow/index.js\").VgiBatch;\n protocolHash: string;\n }> | null = null;\n private protocolVersion: string;\n private dispatchHook: DispatchHook | null = null;\n private externalConfig: ExternalLocationConfig | undefined;\n private onServeStart: ServeStartHook | null = null;\n /** True once the on_serve_start hook has fired successfully. The bind\n * state is committed only after the hook returns, so a transient\n * failure on first request leaves it `false` and the next request\n * re-fires rather than silently skipping. Mirrors Python 7b3999c. */\n private serveStartFired = false;\n\n constructor(\n protocol: Protocol,\n options?: {\n enableDescribe?: boolean;\n serverId?: string;\n dispatchHook?: DispatchHook;\n externalLocation?: ExternalLocationConfig;\n protocolVersion?: string;\n /** Lifecycle hook fired once before the first dispatched request. */\n onServeStart?: ServeStartHook;\n },\n ) {\n this.protocol = protocol;\n this.enableDescribe = options?.enableDescribe ?? true;\n this.serverId = options?.serverId ?? crypto.randomUUID().replace(/-/g, \"\").slice(0, 12);\n this.dispatchHook = options?.dispatchHook ?? null;\n this.externalConfig = options?.externalLocation;\n this.protocolVersion = options?.protocolVersion ?? \"\";\n this.onServeStart = options?.onServeStart ?? null;\n }\n\n /** Fire the on_serve_start hook once for this transport. Idempotent\n * on success — re-throws on failure without committing the bind. */\n private async notifyTransport(kind: TransportKind): Promise<void> {\n if (this.serveStartFired) return;\n if (this.onServeStart) {\n await this.onServeStart(kind);\n }\n this.serveStartFired = true;\n }\n\n /** Build (or retrieve cached) describe batch + protocol hash. */\n private async describeInfo(): Promise<{\n batch: import(\"./arrow/index.js\").VgiBatch;\n protocolHash: string;\n }> {\n if (!this._describePromise) {\n this._describePromise = buildDescribeBatch(\n this.protocol.name,\n this.protocol.getMethods(),\n this.serverId,\n this.protocol.protocolVersion || undefined,\n ).then(({ batch, metadata }) => ({\n batch,\n protocolHash: metadata.get(\"vgi_rpc.protocol_hash\") ?? \"\",\n }));\n }\n return this._describePromise;\n }\n\n /** Validate a client's declared protocol_version against the Protocol's\n * declared version. Caller invokes only when\n * `protocol.protocolVersionParts` is non-null. Mirrors Python's\n * `RpcServer._check_protocol_version`: exact major+minor match, patch\n * ignored; directional error message names which side is older. */\n private checkProtocolVersion(clientVersion: string | undefined): void {\n const serverParts = this.protocol.protocolVersionParts!;\n const serverVersion = this.protocol.protocolVersion;\n if (clientVersion === undefined) {\n throw new ProtocolVersionError(\n \"VGI client/worker protocol_version mismatch.\\n\" +\n \" Client: <not declared>\\n\" +\n ` Server: ${serverVersion}\\n` +\n \" Direction: the client did not send a vgi_rpc.protocol_version \" +\n \"metadata key. This is either a vgi-rpc framework bug or a \" +\n \"non-VGI client connecting to a VGI worker.\",\n );\n }\n let clientParts: readonly [number, number, number];\n try {\n clientParts = parseProtocolVersion(clientVersion);\n } catch {\n throw new ProtocolVersionError(\n \"VGI client/worker protocol_version mismatch.\\n\" +\n ` Client: ${clientVersion}\\n` +\n ` Server: ${serverVersion}\\n` +\n \" Direction: client sent a malformed protocol_version. \" +\n \"Expected canonical semver MAJOR.MINOR.PATCH.\",\n );\n }\n if (clientParts[0] === serverParts[0] && clientParts[1] === serverParts[1]) {\n return;\n }\n const clientOlder =\n clientParts[0] < serverParts[0] || (clientParts[0] === serverParts[0] && clientParts[1] < serverParts[1]);\n const direction = clientOlder\n ? `client is too old; upgrade the VGI extension/client to a version supporting protocol_version ${serverVersion}.`\n : `server is too old; upgrade the VGI worker to a version supporting protocol_version ${clientVersion}.`;\n throw new ProtocolVersionError(\n \"VGI client/worker protocol_version mismatch.\\n\" +\n ` Client: ${clientVersion}\\n` +\n ` Server: ${serverVersion}\\n` +\n ` Direction: ${direction}`,\n );\n }\n\n /** Start the server loop. Reads requests until stdin closes. */\n async run(): Promise<void> {\n const stdin = process.stdin as unknown as ReadableStream<Uint8Array>;\n\n // Warn if running interactively\n if (process.stdin.isTTY || process.stdout.isTTY) {\n process.stderr.write(\n \"WARNING: This process communicates via Arrow IPC on stdin/stdout \" +\n \"and is not intended to be run interactively.\\n\" +\n \"It should be launched as a subprocess by an RPC client \" +\n \"(e.g. vgi_rpc.connect()).\\n\",\n );\n }\n\n const reader = await IpcStreamReader.create(stdin);\n const writer = new IpcStreamWriter();\n\n try {\n while (true) {\n // Fire on_serve_start lazily so the hook can do work that\n // depends on the transport binding (matches Python which fires\n // it inside serve()). Inside the loop so a failure on the very\n // first request can be retried.\n await this.notifyTransport(TransportKind.PIPE);\n await this.serveOne(reader, writer);\n }\n } catch (e: any) {\n // EOF or broken pipe → clean exit\n if (\n e.message?.includes(\"closed\") ||\n e.message?.includes(\"Expected Schema Message\") ||\n e.message?.includes(\"null or length 0\") ||\n e.code === \"EPIPE\" ||\n e.code === \"ERR_STREAM_PREMATURE_CLOSE\" ||\n e.code === \"ERR_STREAM_DESTROYED\" ||\n (e instanceof Error && e.message.includes(\"EOF\"))\n ) {\n return;\n }\n // ArrowInvalid or unexpected error\n throw e;\n } finally {\n await reader.cancel();\n }\n }\n\n private async serveOne(reader: IpcStreamReader, writer: IpcStreamWriter): Promise<void> {\n const stream = await reader.readStream();\n if (!stream) {\n throw new Error(\"EOF\");\n }\n\n const { schema, batches } = stream;\n if (batches.length === 0) {\n const err = new RpcError(\"ProtocolError\", \"Request stream contains no batches\", \"\");\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, this.serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n\n const batch = batches[0];\n let methodName: string;\n let params: Record<string, any>;\n let requestId: string | null;\n\n try {\n const parsed = parseRequest(schema, batch);\n methodName = parsed.methodName;\n params = parsed.params;\n requestId = parsed.requestId;\n } catch (e: any) {\n // Write error response for protocol/version errors\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, e, this.serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n if (e instanceof VersionError || e instanceof RpcError) {\n return; // Continue serving\n }\n throw e;\n }\n\n // Handle __describe__ — lazy-build on first request.\n if (methodName === DESCRIBE_METHOD_NAME && this.enableDescribe) {\n const { batch } = await this.describeInfo();\n await writer.writeStream(batch.schema, [batch]);\n return;\n }\n\n // Look up method\n const methods = this.protocol.getMethods();\n const method = methods.get(methodName);\n if (!method) {\n const available = [...methods.keys()].sort();\n const err = new MethodNotImplementedError(\n `Unknown method: '${methodName}'. Available methods: [${available.join(\", \")}]`,\n );\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, this.serverId, requestId);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n\n // Application-protocol-version gate. Fires only when the Protocol\n // declared a `protocolVersion`. `__describe__` is exempt — it is the\n // diagnostic path a mismatched client uses to introspect the server's\n // version. Mirrors Python's serve_one dispatch-boundary check.\n if (this.protocol.protocolVersionParts !== null) {\n try {\n const md = batch.metadata;\n this.checkProtocolVersion(md?.get(PROTOCOL_VERSION_KEY));\n } catch (exc) {\n const errSchema = method.type === MethodType.UNARY ? method.resultSchema : EMPTY_SCHEMA;\n const errBatch = buildErrorBatch(errSchema, exc as Error, this.serverId, requestId);\n await writer.writeStream(errSchema, [errBatch]);\n return;\n }\n }\n\n // Dispatch based on method type, with optional hook\n const methodType = method.type === MethodType.UNARY ? \"unary\" : \"stream\";\n\n // Capture self-contained IPC bytes of the request batch for the access log.\n let requestData: Uint8Array | undefined;\n try {\n requestData = serializeBatch(batch as any);\n } catch {\n // best-effort; observability must not fail dispatch\n }\n\n let streamId: string | undefined;\n if (methodType === \"stream\") {\n streamId = randomStreamId();\n }\n\n const { protocolHash } = await this.describeInfo();\n const info: DispatchInfo = {\n method: methodName,\n methodType,\n serverId: this.serverId,\n requestId,\n protocol: this.protocol.name,\n protocolHash,\n protocolVersion: this.protocolVersion,\n kind: TransportKind.PIPE,\n principal: \"\",\n authDomain: \"\",\n authenticated: false,\n remoteAddr: \"\",\n requestData,\n streamId,\n };\n const stats: CallStatistics = {\n inputBatches: 0,\n outputBatches: 0,\n inputRows: 0,\n outputRows: 0,\n inputBytes: 0,\n outputBytes: 0,\n };\n\n const token = this.dispatchHook?.onDispatchStart(info);\n let dispatchError: Error | undefined;\n\n applyDefaults(params, method.defaults);\n\n try {\n if (method.type === MethodType.UNARY) {\n await dispatchUnary(method, params, writer, this.serverId, requestId, this.externalConfig, TransportKind.PIPE);\n } else {\n await dispatchStream(\n method,\n params,\n writer,\n reader,\n this.serverId,\n requestId,\n this.externalConfig,\n TransportKind.PIPE,\n );\n }\n } catch (e) {\n dispatchError = e instanceof Error ? e : new Error(String(e));\n throw e;\n } finally {\n this.dispatchHook?.onDispatchEnd(token, info, stats, dispatchError);\n }\n }\n}\n",
49
55
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Hash a worker tuple (argv + cwd + filtered env) into a deterministic\n * 16-hex-character identifier.\n *\n * Cross-language contract — must match Python's `vgi_rpc.launcher.compute_hash`\n * byte-for-byte so the same worker tuple resolves to the same socket path\n * regardless of which language's launcher discovered it first. The\n * canonical form is:\n *\n * ```python\n * canonical = {\n * \"cmd\": list(worker_argv),\n * \"cwd\": cwd if cwd is not None else os.getcwd(),\n * \"env\": {k: v for k, v in sorted(os.environ.items()) if k.startswith(\"VGI_RPC_\")},\n * }\n * payload = json.dumps(canonical, sort_keys=True, separators=(\",\", \":\")).encode(\"utf-8\")\n * sha256(payload).hexdigest()[:16]\n * ```\n *\n * `scripts/regenerate_launcher_parity_vectors.py` in vgi-rpc-python emits a\n * golden vector table; the parity test in `test/launcher.hash.test.ts`\n * asserts byte equality against it.\n */\n\nconst HASH_LEN = 16;\n\n/** Recursively stringify with sorted object keys and `,`/`:` separators —\n * the JS equivalent of `json.dumps(..., sort_keys=True, separators=(\",\",\":\"))`.\n * We can't reuse `JSON.stringify` because the V8 implementation preserves\n * insertion order rather than sorting. */\nfunction canonicalJson(value: unknown): string {\n if (value === null) return \"null\";\n if (typeof value === \"boolean\") return value ? \"true\" : \"false\";\n if (typeof value === \"number\") {\n // Python json emits integers without a trailing `.0` and floats with the\n // shortest round-trippable form. JS `JSON.stringify` matches this for\n // both integer-valued and finite floats; `Infinity`/`NaN` would diverge\n // (Python raises) but they shouldn't occur in launcher payloads.\n return JSON.stringify(value);\n }\n if (typeof value === \"string\") return JSON.stringify(value);\n if (Array.isArray(value)) {\n return `[${value.map(canonicalJson).join(\",\")}]`;\n }\n if (typeof value === \"object\") {\n const keys = Object.keys(value as Record<string, unknown>).sort();\n const parts = keys.map((k) => `${JSON.stringify(k)}:${canonicalJson((value as Record<string, unknown>)[k])}`);\n return `{${parts.join(\",\")}}`;\n }\n throw new TypeError(`canonicalJson: unsupported type ${typeof value}`);\n}\n\nasync function sha256Hex(data: Uint8Array): Promise<string> {\n // Web Crypto digest accepts BufferSource; copy into a fresh ArrayBuffer\n // to dodge SharedArrayBuffer constraints in some runtimes.\n const buf = new ArrayBuffer(data.byteLength);\n new Uint8Array(buf).set(data);\n const digest = await crypto.subtle.digest(\"SHA-256\", buf);\n return Array.from(new Uint8Array(digest))\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\n/**\n * Compute the 16-hex-char tuple hash for a worker.\n *\n * @param workerArgv The worker command and its arguments.\n * @param cwd Working directory; defaults to `process.cwd()`.\n * @param env Process environment; defaults to `process.env`. Only\n * keys starting with `VGI_RPC_` participate in the hash —\n * workers that differ only in unrelated env (PATH,\n * HOME, …) intentionally share a worker.\n */\nexport async function computeHash(\n workerArgv: readonly string[],\n cwd?: string,\n env?: Record<string, string | undefined>,\n): Promise<string> {\n const cwdValue = cwd !== undefined ? cwd : process.cwd();\n const sourceEnv = env ?? (process.env as Record<string, string | undefined>);\n\n const filteredEnv: Record<string, string> = {};\n for (const key of Object.keys(sourceEnv)) {\n if (key.startsWith(\"VGI_RPC_\")) {\n const v = sourceEnv[key];\n if (v !== undefined) filteredEnv[key] = v;\n }\n }\n\n const canonical = {\n cmd: [...workerArgv],\n cwd: cwdValue,\n env: filteredEnv,\n };\n const payload = new TextEncoder().encode(canonicalJson(canonical));\n const hex = await sha256Hex(payload);\n return hex.slice(0, HASH_LEN);\n}\n\n/** Exposed for parity-test fixtures that need to inspect the canonical form. */\nexport const _internal = { canonicalJson };\n",
50
56
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Generic Unix-socket worker launcher — TypeScript port of\n * `vgi_rpc.launcher.launch`.\n *\n * Coordinates spawn-or-reuse of long-running worker processes that serve\n * RPC over `AF_UNIX` sockets. Designed for clients that want a warm\n * worker without managing its lifecycle themselves.\n *\n * Architecture (cross-language identical to the Python implementation):\n *\n * - The launcher derives a deterministic socket path from a hash of the\n * worker command tuple (cmd + args + cwd + `VGI_RPC_*` env), so the\n * same worker is reused across unrelated callers.\n * - Concurrent first-callers serialise on a per-hash lockfile.\n * - Each spawned worker self-terminates after `idleTimeout` seconds with\n * zero connected clients (the worker side enforces this — see the\n * `serveUnix` runner in the same module for TS workers, or\n * `vgi_rpc.rpc.serve_unix` for Python).\n *\n * Worker contract — across language ports:\n *\n * - Accept `--unix PATH` and `--idle-timeout SEC` on the command line.\n * - Emit exactly one line `UNIX:<absolute-path>\\n` on **stdout** (flushed)\n * once bind+listen succeed. Write nothing further to stdout afterward.\n * - Tolerate (or suppress) stdout noise *before* the bind line — the\n * launcher skips non-`UNIX:` prefix lines for resilience.\n */\n\nimport { type ChildProcessWithoutNullStreams, spawn } from \"node:child_process\";\nimport { createWriteStream, unlinkSync } from \"node:fs\";\n\nimport { computeHash } from \"./hash.js\";\nimport { acquireLock, tryAcquireLock } from \"./lock.js\";\nimport { defaultStateDir, gcStateDir, probeSocket, socketPaths, writeMeta } from \"./state.js\";\n\n/** Maximum number of stale entries the opportunistic in-launch GC scans. */\nconst DEFAULT_GC_LIMIT = 16;\n\n/** Inputs to {@link launch}. */\nexport interface LaunchConfig {\n /** The worker command and its arguments. Must be non-empty. */\n workerArgv: readonly string[];\n /** Explicit socket path; when omitted, derived from the hash of the tuple. */\n socketPath?: string;\n /** Worker self-shutdown after this many seconds idle. Forwarded as\n * `--idle-timeout SEC`. Default: 300. */\n idleTimeout?: number;\n /** Maximum seconds to block waiting for the per-hash file lock. Default: 30. */\n connectTimeout?: number;\n /** Maximum seconds to wait for the worker to print `UNIX:<path>`. Default: 60. */\n workerStartupTimeout?: number;\n /** If set, worker stderr is appended to this file; otherwise discarded. */\n workerStderr?: string;\n /** Override the default state directory. */\n stateDir?: string;\n}\n\n/**\n * Ensure a worker is running and return its socket path.\n *\n * Either the existing worker for this hash is reused (probe succeeds) or\n * a fresh one is spawned under flock. Throws on any failure to bring up\n * a worker.\n */\nexport async function launch(config: LaunchConfig): Promise<string> {\n if (!config.workerArgv || config.workerArgv.length === 0) {\n throw new Error(\"workerArgv must be non-empty\");\n }\n const stateDir = config.stateDir ?? defaultStateDir();\n const idleTimeout = config.idleTimeout ?? 300;\n const connectTimeoutMs = (config.connectTimeout ?? 30) * 1000;\n const startupTimeoutMs = (config.workerStartupTimeout ?? 60) * 1000;\n\n let lockPath: string;\n let sockPath: string;\n let metaPath: string | null;\n let hashId: string | null;\n\n if (config.socketPath !== undefined) {\n const { resolve } = await import(\"node:path\");\n sockPath = resolve(config.socketPath);\n // Explicit paths get a sibling lock, no .meta, skipped by status/gc.\n lockPath = `${sockPath}.lock`;\n metaPath = null;\n hashId = null;\n } else {\n hashId = await computeHash(config.workerArgv);\n const paths = socketPaths(stateDir, hashId);\n lockPath = paths.lockPath;\n sockPath = paths.sockPath;\n metaPath = paths.metaPath;\n }\n\n const handle = await acquireLock(lockPath, connectTimeoutMs);\n try {\n // Probe — maybe a worker is already serving for this hash.\n if (await probeSocket(sockPath)) {\n return sockPath;\n }\n // Stale socket cleanup.\n try {\n unlinkSync(sockPath);\n } catch {\n // ENOENT is normal; anything else is broadened away (matches Python's\n // OSError suppression for Windows ERROR_SHARING_VIOLATION).\n }\n if (metaPath !== null) {\n writeMeta(metaPath, config.workerArgv, process.cwd(), sockPath);\n }\n await spawnWorker(config.workerArgv, sockPath, idleTimeout, config.workerStderr ?? null, startupTimeoutMs);\n return sockPath;\n } finally {\n handle.release();\n // Opportunistic GC after release — bounded so it can't dominate runtime.\n if (hashId !== null) {\n try {\n await gcStateDir(\n stateDir,\n async (p) => {\n const h = tryAcquireLock(p);\n return h ? () => h.release() : null;\n },\n { limit: DEFAULT_GC_LIMIT, excludeHash: hashId },\n );\n } catch {\n // GC is best-effort.\n }\n }\n }\n}\n\n/** Spawn the worker, wait for `UNIX:<path>` on stdout, return when ready. */\nasync function spawnWorker(\n workerArgv: readonly string[],\n sockPath: string,\n idleTimeout: number,\n workerStderr: string | null,\n startupTimeoutMs: number,\n): Promise<void> {\n const fullArgv = [...workerArgv, \"--unix\", sockPath, \"--idle-timeout\", String(idleTimeout)];\n const [cmd, ...rest] = fullArgv;\n\n const stderrTarget = workerStderr === null ? \"ignore\" : \"pipe\";\n\n const proc = spawn(cmd, rest, {\n stdio: [\"ignore\", \"pipe\", stderrTarget],\n detached: false,\n }) as ChildProcessWithoutNullStreams;\n\n if (workerStderr !== null && proc.stderr) {\n // Append mode so multiple worker generations share one log file.\n const sink = createWriteStream(workerStderr, { flags: \"a\" });\n proc.stderr.pipe(sink);\n }\n\n const expectedPrefix = `UNIX:${sockPath}`;\n\n // Read line-by-line from stdout until we see the bind announcement.\n const reader = lineReader(proc.stdout);\n const deadline = Date.now() + startupTimeoutMs;\n\n while (Date.now() < deadline) {\n // Race the next stdout line against the worker's exit and the deadline.\n const remaining = deadline - Date.now();\n const result = await Promise.race([\n reader.next().then((r) => ({ kind: \"line\" as const, value: r })),\n onceExit(proc).then((rc) => ({ kind: \"exit\" as const, rc })),\n delay(remaining).then(() => ({ kind: \"timeout\" as const })),\n ]);\n\n if (result.kind === \"exit\") {\n throw new Error(`worker exited before readiness (rc=${result.rc})`);\n }\n if (result.kind === \"timeout\") {\n proc.kill(\"SIGTERM\");\n throw new Error(`worker did not emit UNIX:<path> within ${startupTimeoutMs}ms`);\n }\n if (result.value.done) {\n // stdout closed without the announcement.\n const rc = await onceExit(proc);\n throw new Error(`worker exited before readiness (rc=${rc})`);\n }\n const line = result.value.value;\n if (line.startsWith(\"UNIX:\")) {\n if (line !== expectedPrefix) {\n proc.kill(\"SIGTERM\");\n throw new Error(\n `worker bound to unexpected path: ${JSON.stringify(line)} (expected ${JSON.stringify(expectedPrefix)})`,\n );\n }\n // Drain remaining stdout so a buffer-full doesn't deadlock the worker.\n reader.drainAndDiscard();\n return;\n }\n // Non-matching prefix — third-party noise; log at debug and keep reading.\n process.env.VGI_RPC_LAUNCHER_DEBUG &&\n process.stderr.write(`launcher: skipping pre-bind stdout line: ${JSON.stringify(line)}\\n`);\n }\n proc.kill(\"SIGTERM\");\n throw new Error(`worker did not emit UNIX:<path> within ${startupTimeoutMs}ms`);\n}\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\ninterface LineReader {\n next(): Promise<{ done: boolean; value: string }>;\n drainAndDiscard(): void;\n}\n\n/** Newline-delimited line reader over a Node Readable stream. */\nfunction lineReader(stream: NodeJS.ReadableStream): LineReader {\n let buffer = \"\";\n let ended = false;\n const queued: string[] = [];\n const waiters: Array<(line: { done: boolean; value: string }) => void> = [];\n let discardMode = false;\n\n const flushWaiter = () => {\n if (waiters.length === 0) return;\n if (queued.length > 0) {\n const w = waiters.shift();\n w?.({ done: false, value: queued.shift() ?? \"\" });\n } else if (ended) {\n const w = waiters.shift();\n w?.({ done: true, value: \"\" });\n }\n };\n\n stream.setEncoding?.(\"utf8\");\n stream.on(\"data\", (chunk) => {\n if (discardMode) return;\n buffer += String(chunk);\n for (;;) {\n const nl = buffer.indexOf(\"\\n\");\n if (nl < 0) break;\n const line = buffer.slice(0, nl).replace(/\\r$/, \"\");\n buffer = buffer.slice(nl + 1);\n queued.push(line);\n }\n flushWaiter();\n });\n stream.on(\"end\", () => {\n ended = true;\n if (buffer.length > 0) {\n queued.push(buffer.replace(/\\r$/, \"\"));\n buffer = \"\";\n }\n flushWaiter();\n });\n stream.on(\"error\", () => {\n ended = true;\n flushWaiter();\n });\n\n return {\n next() {\n return new Promise((resolve) => {\n waiters.push(resolve);\n flushWaiter();\n });\n },\n drainAndDiscard() {\n discardMode = true;\n // Drop any queued lines and let the stream flow into the void.\n queued.length = 0;\n stream.resume?.();\n },\n };\n}\n\nfunction onceExit(proc: ChildProcessWithoutNullStreams): Promise<number | null> {\n return new Promise((resolve) => {\n proc.once(\"exit\", (code) => resolve(code));\n });\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((r) => setTimeout(r, Math.max(0, ms)));\n}\n",
51
57
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Cross-process file lock with PID-stamp fallback.\n *\n * Python's launcher uses `filelock` (POSIX `flock(2)` / Windows\n * `LockFileEx`), which auto-releases on process death. Node has no\n * equivalent in its standard library, so we approximate it with a\n * persistent PID-stamp protocol:\n *\n * - File exists, empty content → unlocked (slot marker)\n * - File exists, content `<PID>`, PID alive → held by that PID\n * - File exists, content `<PID>`, PID dead → stale, treat as unlocked\n * - File doesn't exist → unlocked (slot never used)\n *\n * The lockfile **persists** after release (we truncate to zero bytes\n * rather than unlinking) so cross-language scanners — `statusRows` /\n * `gcStateDir` here and Python's `gc_state_dir` — can use lockfile\n * presence as a \"this hash slot has been used at some point\" marker\n * even when no launcher is currently coordinating.\n *\n * The acquire path has a small race window: between reading the stamp\n * and writing ours, another process can interleave. Mitigations:\n *\n * 1. After writing our PID we re-read and verify; on mismatch we\n * retry up to a small bound, then back off.\n * 2. The launcher's bind() step is itself a kernel mutex — two\n * workers racing past the lock will see exactly one bind()\n * succeed; the other fails fast with EADDRINUSE and the second\n * launcher's spawnWorker() surfaces the error.\n *\n * That's looser than `flock`-based mutual exclusion but adequate for\n * the launcher's use case: the protected critical section is short\n * (probe + spawn).\n */\n\nimport { closeSync, constants as FS, openSync, readSync, statSync, writeSync } from \"node:fs\";\n\n/** Result of a successful lock acquisition. */\nexport interface FileLockHandle {\n /** Path to the lockfile (informational). */\n readonly path: string;\n /** Release the lock — truncates the file to zero bytes; the file\n * itself persists as a slot marker. Idempotent. */\n release(): void;\n}\n\nconst POLL_MS = 50;\n/** Max retries for the post-write verify step. */\nconst VERIFY_RETRIES = 5;\n\nfunction pidAlive(pid: number): boolean {\n if (!Number.isInteger(pid) || pid <= 0) return false;\n try {\n process.kill(pid, 0);\n return true;\n } catch (err) {\n return (err as { code?: string })?.code === \"EPERM\";\n }\n}\n\nfunction readPid(path: string): number {\n try {\n const fd = openSync(path, FS.O_RDONLY);\n try {\n const buf = Buffer.alloc(64);\n const n = readSync(fd, buf, 0, buf.length, 0);\n const text = buf.subarray(0, n).toString(\"utf8\").trim();\n if (text === \"\") return 0;\n const parsed = Number(text);\n return Number.isInteger(parsed) ? parsed : 0;\n } finally {\n closeSync(fd);\n }\n } catch {\n return 0;\n }\n}\n\nfunction tryStampPid(path: string): boolean {\n // Open r/w, creating if missing. Truncate to zero, write our PID.\n // The natural race here is mitigated by the post-write verify in the\n // caller.\n const fd = openSync(path, FS.O_RDWR | FS.O_CREAT, 0o600);\n try {\n // Truncate via ftruncateSync — Node's fs has it but only on the fd.\n // Use a fresh write at offset 0 with the full string and re-stat to\n // confirm the file is our PID's worth of bytes.\n const stamp = Buffer.from(String(process.pid), \"utf8\");\n // Truncate by reopening with O_TRUNC would re-create; instead use ftruncateSync.\n // Node 18+ has `fs.ftruncateSync`.\n const { ftruncateSync } = require(\"node:fs\");\n ftruncateSync(fd, 0);\n let written = 0;\n while (written < stamp.length) {\n const n = writeSync(fd, stamp, written, stamp.length - written, 0 + written);\n if (n <= 0) throw new Error(`writeSync returned ${n}`);\n written += n;\n }\n // Sanity stat — confirm the file is our stamp's size (lossy check\n // for the basic interleave race).\n const st = statSync(path);\n if (st.size !== stamp.length) return false;\n return true;\n } finally {\n closeSync(fd);\n }\n}\n\nfunction clearStamp(path: string): void {\n try {\n const fd = openSync(path, FS.O_RDWR);\n try {\n const { ftruncateSync } = require(\"node:fs\");\n ftruncateSync(fd, 0);\n } finally {\n closeSync(fd);\n }\n } catch {\n // already gone\n }\n}\n\n/**\n * Try to acquire the lock once, non-blocking.\n *\n * Returns a release callback on success, or `null` when the lock is\n * held by another live process. Stale stamps (PID not alive) are\n * cleared and the call retries.\n */\nexport function tryAcquireLock(lockPath: string): FileLockHandle | null {\n for (let attempt = 0; attempt < VERIFY_RETRIES; attempt++) {\n const existingPid = readPid(lockPath);\n if (existingPid > 0 && pidAlive(existingPid)) {\n // Held by a live process (possibly even ourselves on a different\n // call site — match Python's filelock semantics: not reentrant).\n return null;\n }\n // Stale, empty, or missing — try to claim the slot.\n if (!tryStampPid(lockPath)) continue;\n const verifyPid = readPid(lockPath);\n if (verifyPid !== process.pid) {\n // Lost the race to a peer that wrote after our truncate.\n continue;\n }\n let released = false;\n return {\n path: lockPath,\n release() {\n if (released) return;\n released = true;\n clearStamp(lockPath);\n },\n };\n }\n return null;\n}\n\n/** Async version that polls until the lock is acquired or the timeout fires. */\nexport async function acquireLock(lockPath: string, timeoutMs: number): Promise<FileLockHandle> {\n const deadline = Date.now() + Math.max(0, timeoutMs);\n for (;;) {\n const handle = tryAcquireLock(lockPath);\n if (handle) return handle;\n if (Date.now() >= deadline) {\n throw new Error(`failed to acquire ${lockPath} within ${timeoutMs}ms`);\n }\n await new Promise((r) => setTimeout(r, POLL_MS));\n }\n}\n",
52
58
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * State directory + lock/sock/meta path layout for the AF_UNIX worker\n * launcher. Mirrors `vgi_rpc.launcher` so cross-language tooling\n * resolves to identical filesystem locations.\n */\n\nimport { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport * as path from \"node:path\";\n\nimport { computeHash } from \"./hash.js\";\n\n/** Filesystem layout for one worker tuple: `<state_dir>/<hash>.{lock,sock,meta}`. */\nexport interface SocketPaths {\n /** Advisory lockfile path (`<hash>.lock`) guarding launch + liveness. */\n lockPath: string;\n /** AF_UNIX socket path (`<hash>.sock`) the worker binds. */\n sockPath: string;\n /** Launch-metadata JSON path (`<hash>.meta`) read by `--status`. */\n metaPath: string;\n}\n\n/** Derive the lock/sock/meta path triple for a worker `hashId` under `stateDir`. */\nexport function socketPaths(stateDir: string, hashId: string): SocketPaths {\n return {\n lockPath: path.join(stateDir, `${hashId}.lock`),\n sockPath: path.join(stateDir, `${hashId}.sock`),\n metaPath: path.join(stateDir, `${hashId}.meta`),\n };\n}\n\n/**\n * Resolve the per-user state directory used for lockfiles + sockets.\n *\n * - Linux: `$XDG_RUNTIME_DIR/vgi-rpc/` when set (systemd-managed,\n * auto-cleaned on logout); otherwise `$TMPDIR/vgi-rpc-$UID/`.\n * - macOS / BSD: `$TMPDIR/vgi-rpc-$UID/`.\n * - Windows: `$TMP/vgi-rpc/`.\n *\n * The directory is created mode 0700 if missing. On POSIX, we refuse to\n * operate on a directory not owned by the current user — defends against\n * a hijacked `/tmp/vgi-rpc-$UID` left by an attacker.\n */\nexport function defaultStateDir(): string {\n let base: string;\n if (process.platform === \"win32\") {\n base = path.join(tmpdir(), \"vgi-rpc\");\n } else {\n const xdg = process.env.XDG_RUNTIME_DIR;\n if (xdg) {\n base = path.join(xdg, \"vgi-rpc\");\n } else {\n const uid = typeof process.geteuid === \"function\" ? process.geteuid() : 0;\n base = path.join(tmpdir(), `vgi-rpc-${uid}`);\n }\n }\n mkdirSync(base, { recursive: true, mode: 0o700 });\n if (process.platform !== \"win32\" && typeof process.geteuid === \"function\") {\n // Tighten mode every call (cheap + idempotent) and refuse a hijacked dir.\n try {\n // chmodSync is in node:fs; using statSync is enough to read the owner.\n const st = statSync(base);\n if (st.uid !== process.geteuid()) {\n throw new Error(`state directory ${base} is not owned by current user`);\n }\n } catch (err) {\n if ((err as { code?: string })?.code === \"ENOENT\") {\n // Race with the mkdirSync above — leave it to the next caller.\n } else {\n throw err;\n }\n }\n }\n return base;\n}\n\n// ---------------------------------------------------------------------------\n// Meta file\n// ---------------------------------------------------------------------------\n\n/** Best-effort write of human-readable launch metadata. Used by `--status`. */\nexport function writeMeta(metaPath: string, workerArgv: readonly string[], cwd: string, sockPath: string): void {\n const payload = {\n cmd: [...workerArgv],\n cwd,\n socket: sockPath,\n started_at: Date.now() / 1000,\n launcher_pid: process.pid,\n };\n try {\n writeFileSync(metaPath, JSON.stringify(payload, null, 2), { encoding: \"utf8\", mode: 0o600 });\n } catch {\n // observability is best-effort\n }\n}\n\n// ---------------------------------------------------------------------------\n// Status / GC\n// ---------------------------------------------------------------------------\n\n/** One row of `--status` output describing a launched worker tuple. */\nexport interface StatusRow {\n /** Canonical hash identifying the worker tuple (the `<hash>` filename stem). */\n hashId: string;\n /** Worker argv recorded at launch, or `[]` when the meta file is missing. */\n cmd: string[];\n /** Working directory recorded at launch, or `\"\"` when unknown. */\n cwd: string;\n /** AF_UNIX socket path the worker binds. */\n socket: string;\n /** Unix epoch seconds the worker was launched, or `null` when unknown. */\n startedAt: number | null;\n /** Whether a probe connection to {@link StatusRow.socket} currently succeeds. */\n alive: boolean;\n}\n\n/** Outcome of a {@link gcStateDir} sweep. */\nexport interface GcResult {\n /** Hash IDs of stale entries that were removed. */\n cleaned: string[];\n /** Hash IDs whose lockfile is currently held (a launch is in flight or the\n * worker is alive). */\n skippedInUse: string[];\n}\n\n/** Probe whether anyone is currently accepting on `sockPath`. */\nexport async function probeSocket(sockPath: string, timeoutMs = 2000): Promise<boolean> {\n if (!existsSync(sockPath)) return false;\n // Lazy require so workerd / browser bundles that never call probeSocket\n // don't trip on `node:net`.\n const net = await import(\"node:net\");\n return new Promise<boolean>((resolve) => {\n const sock = net.createConnection({ path: sockPath });\n const timer = setTimeout(() => {\n sock.destroy();\n resolve(false);\n }, timeoutMs);\n sock.once(\"connect\", () => {\n clearTimeout(timer);\n sock.end();\n resolve(true);\n });\n sock.once(\"error\", () => {\n clearTimeout(timer);\n resolve(false);\n });\n });\n}\n\nfunction tryReadMeta(metaPath: string): { cmd: string[]; cwd: string; startedAt: number | null } {\n try {\n const raw = readFileSync(metaPath, \"utf8\");\n const meta = JSON.parse(raw);\n return {\n cmd: Array.isArray(meta.cmd) ? meta.cmd.map(String) : [],\n cwd: typeof meta.cwd === \"string\" ? meta.cwd : \"\",\n startedAt: typeof meta.started_at === \"number\" ? meta.started_at : null,\n };\n } catch {\n return { cmd: [], cwd: \"\", startedAt: null };\n }\n}\n\n/** List one row per `<hash>.lock` in `stateDir`. Read-only; takes no locks. */\nexport async function statusRows(stateDir: string): Promise<StatusRow[]> {\n const { readdirSync } = await import(\"node:fs\");\n const rows: StatusRow[] = [];\n let entries: string[];\n try {\n entries = readdirSync(stateDir);\n } catch {\n return rows;\n }\n for (const name of entries.sort()) {\n if (!name.endsWith(\".lock\")) continue;\n const hashId = name.slice(0, -5);\n const { sockPath, metaPath } = socketPaths(stateDir, hashId);\n const meta = tryReadMeta(metaPath);\n rows.push({\n hashId,\n cmd: meta.cmd,\n cwd: meta.cwd,\n socket: sockPath,\n startedAt: meta.startedAt,\n alive: await probeSocket(sockPath),\n });\n }\n return rows;\n}\n\n/**\n * Remove `<hash>.lock`/`.sock`/`.meta` triples whose worker is no longer\n * accepting connections.\n *\n * @param tryAcquire Function provided by the lock module so we don't pull\n * the lock implementation into a circular import. Returns a release\n * callback when the lock can be acquired non-blocking, or `null` when\n * it's already held (the worker is alive or another launch is in flight).\n */\nexport async function gcStateDir(\n stateDir: string,\n tryAcquire: (lockPath: string) => Promise<(() => void) | null>,\n options?: { limit?: number; excludeHash?: string },\n): Promise<GcResult> {\n const { readdirSync } = await import(\"node:fs\");\n const cleaned: string[] = [];\n const skipped: string[] = [];\n const limit = options?.limit ?? null;\n const excludeHash = options?.excludeHash ?? null;\n\n let entries: string[];\n try {\n entries = readdirSync(stateDir);\n } catch {\n return { cleaned, skippedInUse: skipped };\n }\n\n let seen = 0;\n for (const name of entries.sort()) {\n if (!name.endsWith(\".lock\")) continue;\n if (limit !== null && seen >= limit) break;\n seen += 1;\n const hashId = name.slice(0, -5);\n if (excludeHash !== null && hashId === excludeHash) continue;\n\n const { lockPath, sockPath, metaPath } = socketPaths(stateDir, hashId);\n const release = await tryAcquire(lockPath);\n if (release === null) {\n skipped.push(hashId);\n continue;\n }\n try {\n if (await probeSocket(sockPath)) {\n // Worker is alive but didn't hold its own lock — odd, but leave it.\n continue;\n }\n for (const p of [sockPath, metaPath, lockPath]) {\n try {\n unlinkSync(p);\n } catch {\n // best-effort\n }\n }\n cleaned.push(hashId);\n } finally {\n release();\n }\n }\n return { cleaned, skippedInUse: skipped };\n}\n\n/** Re-export for callers that want canonical hashing without going through the\n * launch entry point. */\nexport { computeHash };\n",
53
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * AF_UNIX worker runner for vgi-rpc TypeScript.\n *\n * Bind a deterministic Unix-domain socket, accept connections one at a\n * time (sequential listen, matching Python's `serve_unix`), and dispatch\n * each via the existing {@link VgiRpcServer.serveOne} loop. Implements\n * the cross-language launcher contract:\n *\n * - Accept `--unix PATH` and `--idle-timeout SEC` (parsed by callers).\n * - Emit `UNIX:<absolute-path>\\n` to stdout once bind+listen succeed.\n * - Self-terminate after `idleTimeout` seconds with zero connected\n * clients; the timer starts ticking only after a `startupGrace`\n * window so a slow first caller doesn't see the server vanish.\n */\n\nimport { existsSync, unlinkSync } from \"node:fs\";\nimport { createServer, type Server, type Socket } from \"node:net\";\nimport * as path from \"node:path\";\nimport { schema as makeSchema, serializeBatch } from \"../arrow/index.js\";\nimport { DESCRIBE_METHOD_NAME } from \"../constants.js\";\nimport { buildDescribeBatch } from \"../dispatch/describe.js\";\nimport { dispatchStream } from \"../dispatch/stream.js\";\nimport { dispatchUnary } from \"../dispatch/unary.js\";\nimport { RpcError, VersionError } from \"../errors.js\";\nimport type { ExternalLocationConfig } from \"../external.js\";\nimport type { Protocol } from \"../protocol.js\";\nimport {\n type CallStatistics,\n type DispatchHook,\n type DispatchInfo,\n MethodType,\n type ServeStartHook,\n TransportKind,\n} from \"../types.js\";\nimport { IpcStreamReader } from \"../wire/reader.js\";\nimport { applyDefaults, parseRequest } from \"../wire/request.js\";\nimport { buildErrorBatch } from \"../wire/response.js\";\nimport { IpcStreamWriter } from \"../wire/writer.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\n/** Configuration for {@link serveUnix}. */\nexport interface ServeUnixOptions {\n /** Absolute path to the Unix socket file the worker should bind. */\n unixPath: string;\n /** Self-terminate after this many seconds with zero connected clients.\n * Default: 300. `0` disables the timer (server runs until killed). */\n idleTimeout?: number;\n /** Grace period after `listen()` succeeds before the idle timer starts\n * ticking. Default: 5 — gives the first launcher caller a chance to\n * connect after the `UNIX:<path>` announcement. */\n startupGraceSeconds?: number;\n /** Optional logical-service / protocol-contract version label. */\n protocolVersion?: string;\n /** Custom server identifier. */\n serverId?: string;\n /** Enable __describe__ method. Default: true. */\n enableDescribe?: boolean;\n /** Optional dispatch hook for observability. */\n dispatchHook?: DispatchHook;\n /** Optional external-storage config for large-batch externalisation. */\n externalLocation?: ExternalLocationConfig;\n /** Lifecycle hook fired once before the first dispatched request. */\n onServeStart?: ServeStartHook;\n /** Maximum sequential listen backlog. Mirrors Python's `serve_unix`\n * (`backlog=16`). Default: 16. */\n backlog?: number;\n /** Called *after* `listen()` returns successfully but *before*\n * `UNIX:<path>` is printed. The launcher uses this hook to write the\n * announcement only after we're sure the bind took. */\n onBound?: (sockPath: string) => void;\n /** Override the stream used for the `UNIX:<path>` line. Defaults to\n * `process.stdout`. */\n announcementSink?: NodeJS.WritableStream;\n}\n\n/** Handle returned by {@link serveUnix} for callers that want to stop the server. */\nexport interface ServeUnixHandle {\n /** Absolute path of the bound AF_UNIX socket the server is listening on. */\n readonly socketPath: string;\n /** Shut down the listener and unlink the socket file. */\n stop(): Promise<void>;\n /** Promise that resolves when the server has stopped (idle timeout, stop(),\n * or a fatal error). Mirrors Python's blocking `serve()` return. */\n readonly done: Promise<void>;\n}\n\n/**\n * Bind an AF_UNIX socket and serve `protocol` over per-connection IPC streams.\n *\n * Sequential listen — one client at a time, just like Python's `serve_unix`.\n * Each connection gets its own dispatch loop and shares the protocol.\n */\nexport async function serveUnix(protocol: Protocol, options: ServeUnixOptions): Promise<ServeUnixHandle> {\n const sockPath = path.resolve(options.unixPath);\n const idleTimeoutS = options.idleTimeout ?? 300;\n const startupGraceS = options.startupGraceSeconds ?? 5;\n const protocolVersion = options.protocolVersion ?? \"\";\n const serverId = options.serverId ?? crypto.randomUUID().replace(/-/g, \"\").slice(0, 12);\n const enableDescribe = options.enableDescribe ?? true;\n const dispatchHook = options.dispatchHook ?? null;\n const externalConfig = options.externalLocation;\n const onServeStart = options.onServeStart ?? null;\n const backlog = options.backlog ?? 16;\n const announcementSink = options.announcementSink ?? process.stdout;\n\n // Defensive probe-then-bind: an existing live worker on this path means a\n // peer launcher already won the race. Refuse to bind so we don't take\n // its connections. (A stale path with no listener was unlinked by the\n // launcher before spawning us, but a leftover from a co-launcher right\n // now is possible.)\n if (existsSync(sockPath)) {\n try {\n // Best-effort cleanup; bind below will surface any real conflict.\n unlinkSync(sockPath);\n } catch {\n // ignore — let listen() fail with EADDRINUSE.\n }\n }\n\n // Cache for __describe__ — Web-Crypto digest is async, so memoise.\n let describePromise: Promise<{ batch: import(\"../arrow/index.js\").VgiBatch; protocolHash: string }> | null = null;\n function describeInfo(): Promise<{ batch: import(\"../arrow/index.js\").VgiBatch; protocolHash: string }> {\n if (!describePromise) {\n describePromise = buildDescribeBatch(protocol.name, protocol.getMethods(), serverId).then(\n ({ batch, metadata }) => ({\n batch,\n protocolHash: metadata.get(\"vgi_rpc.protocol_hash\") ?? \"\",\n }),\n );\n }\n return describePromise;\n }\n\n // Lifecycle: only commit `serveStartFired` after the hook returns successfully.\n let serveStartFired = false;\n async function notifyTransport(): Promise<void> {\n if (serveStartFired) return;\n if (onServeStart) {\n await onServeStart(TransportKind.UNIX);\n }\n serveStartFired = true;\n }\n\n const server: Server = createServer({ allowHalfOpen: false });\n\n let activeConnections = 0;\n let idleTimer: ReturnType<typeof setTimeout> | null = null;\n let resolveDone: () => void = () => {};\n let rejectDone: (err: unknown) => void = () => {};\n const done = new Promise<void>((resolve, reject) => {\n resolveDone = resolve;\n rejectDone = reject;\n });\n let stopped = false;\n\n function armIdleTimer(): void {\n if (idleTimeoutS <= 0) return;\n if (idleTimer) clearTimeout(idleTimer);\n idleTimer = setTimeout(() => {\n if (activeConnections === 0 && !stopped) {\n void shutdown();\n }\n }, idleTimeoutS * 1000);\n }\n\n function disarmIdleTimer(): void {\n if (idleTimer) {\n clearTimeout(idleTimer);\n idleTimer = null;\n }\n }\n\n async function shutdown(): Promise<void> {\n if (stopped) return;\n stopped = true;\n disarmIdleTimer();\n await new Promise<void>((resolve) => {\n server.close(() => resolve());\n });\n try {\n unlinkSync(sockPath);\n } catch {\n // already gone\n }\n resolveDone();\n }\n\n server.on(\"connection\", (socket) => {\n activeConnections += 1;\n disarmIdleTimer();\n handleConnection(socket)\n .catch((err) => {\n // Per-connection errors must not take down the server — log to stderr\n // and let the next connection proceed.\n process.stderr.write(`vgi-rpc/unix: connection failed: ${(err as Error)?.message ?? err}\\n`);\n })\n .finally(() => {\n activeConnections -= 1;\n socket.destroy();\n if (activeConnections === 0 && !stopped) {\n armIdleTimer();\n }\n });\n });\n\n server.on(\"error\", (err) => {\n if (stopped) return;\n rejectDone(err);\n });\n\n async function handleConnection(socket: Socket): Promise<void> {\n // The reader takes any Node Readable; sockets are duplex Readables.\n const reader = await IpcStreamReader.create(socket);\n // Build the writer over the Socket itself, not its raw fd. AF_UNIX\n // sockets in Node are non-blocking; a fd-based writer would do\n // `fs.writeSync` and busy-wait on EAGAIN whenever the ~8 KB kernel send\n // buffer fills (trivial for any Arrow batch of meaningful size). That\n // synchronous wait freezes the shared event loop and starves every\n // *other* connection's handler — observed as 30 s `catalog_attach`\n // timeouts from co-running unittest processes. Going through\n // `socket.write` + `'drain'` lets the JS thread yield while the kernel\n // drains the buffer.\n const writer = new IpcStreamWriter(socket);\n\n try {\n // Fire on_serve_start lazily — first request retries on hook failure.\n await notifyTransport();\n\n while (true) {\n try {\n await serveOnce(reader, writer);\n } catch (e: unknown) {\n const err = e as { code?: string; message?: string };\n // EOF/closed client → end this connection cleanly.\n if (\n err?.message?.includes(\"closed\") ||\n err?.message?.includes(\"Expected Schema Message\") ||\n err?.message?.includes(\"null or length 0\") ||\n err?.message?.includes(\"EOF\") ||\n err?.code === \"EPIPE\" ||\n err?.code === \"ERR_STREAM_PREMATURE_CLOSE\" ||\n err?.code === \"ERR_STREAM_DESTROYED\"\n ) {\n return;\n }\n throw e;\n }\n }\n } finally {\n try {\n await reader.cancel();\n } catch {\n // already closed\n }\n }\n }\n\n async function serveOnce(reader: IpcStreamReader, writer: IpcStreamWriter): Promise<void> {\n const stream = await reader.readStream();\n if (!stream) {\n throw new Error(\"EOF\");\n }\n const { schema, batches } = stream;\n if (batches.length === 0) {\n const err = new RpcError(\"ProtocolError\", \"Request stream contains no batches\", \"\");\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n const batch = batches[0];\n let methodName: string;\n let params: Record<string, unknown>;\n let requestId: string | null;\n try {\n const parsed = parseRequest(schema, batch);\n methodName = parsed.methodName;\n params = parsed.params;\n requestId = parsed.requestId;\n } catch (e: unknown) {\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, e as Error, serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n if (e instanceof VersionError || e instanceof RpcError) return;\n throw e;\n }\n\n if (methodName === DESCRIBE_METHOD_NAME && enableDescribe) {\n const { batch: descBatch } = await describeInfo();\n await writer.writeStream(descBatch.schema, [descBatch]);\n return;\n }\n\n const methods = protocol.getMethods();\n const method = methods.get(methodName);\n if (!method) {\n const available = [...methods.keys()].sort();\n const err = new Error(`Unknown method: '${methodName}'. Available methods: [${available.join(\", \")}]`);\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, serverId, requestId);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n\n const methodType = method.type === MethodType.UNARY ? \"unary\" : \"stream\";\n let requestData: Uint8Array | undefined;\n try {\n requestData = serializeBatch(batch);\n } catch {\n // best-effort\n }\n const { protocolHash } = await describeInfo();\n const info: DispatchInfo = {\n method: methodName,\n methodType,\n serverId,\n requestId,\n protocol: protocol.name,\n protocolHash,\n protocolVersion,\n kind: TransportKind.UNIX,\n principal: \"\",\n authDomain: \"\",\n authenticated: false,\n remoteAddr: \"\",\n requestData,\n };\n const stats: CallStatistics = {\n inputBatches: 0,\n outputBatches: 0,\n inputRows: 0,\n outputRows: 0,\n inputBytes: 0,\n outputBytes: 0,\n };\n\n const token = dispatchHook?.onDispatchStart(info);\n let dispatchError: Error | undefined;\n applyDefaults(params, method.defaults);\n try {\n if (method.type === MethodType.UNARY) {\n await dispatchUnary(method, params, writer, serverId, requestId, externalConfig, TransportKind.UNIX);\n } else {\n await dispatchStream(method, params, writer, reader, serverId, requestId, externalConfig, TransportKind.UNIX);\n }\n } catch (e) {\n dispatchError = e instanceof Error ? e : new Error(String(e));\n throw e;\n } finally {\n dispatchHook?.onDispatchEnd(token, info, stats, dispatchError);\n }\n }\n\n // bind + listen\n await new Promise<void>((resolve, reject) => {\n server.listen({ path: sockPath, backlog }, () => resolve());\n server.once(\"error\", (err) => reject(err));\n });\n\n // Set a tight mode on the bound socket so peers from other UIDs can't\n // even initiate a connection.\n try {\n const { chmodSync } = await import(\"node:fs\");\n chmodSync(sockPath, 0o600);\n } catch {\n // best-effort — operator-managed dirs may already be 0700\n }\n\n options.onBound?.(sockPath);\n // Cross-language launcher contract: announce on stdout.\n announcementSink.write(`UNIX:${sockPath}\\n`);\n\n // Start the idle timer with a startup grace window.\n if (idleTimeoutS > 0) {\n setTimeout(() => {\n if (activeConnections === 0 && !stopped) armIdleTimer();\n }, startupGraceS * 1000).unref?.();\n }\n\n return {\n socketPath: sockPath,\n stop: shutdown,\n done,\n };\n}\n",
54
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { conformBatchToSchema, schema as makeSchema, withBatchMetadata } from \"../arrow/index.js\";\nimport { CANCEL_KEY } from \"../constants.js\";\nimport { type ExternalLocationConfig, maybeExternalizeBatch } from \"../external.js\";\nimport type { MethodDefinition, TransportKind } from \"../types.js\";\nimport { OutputCollector } from \"../types.js\";\nimport type { IpcStreamReader } from \"../wire/reader.js\";\nimport { buildErrorBatch, buildResultBatch } from \"../wire/response.js\";\nimport type { IpcStreamWriter } from \"../wire/writer.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\n/**\n * Dispatch a stream RPC call (producer or exchange).\n *\n * Producer streams (empty input schema):\n * - Client sends tick batches (empty schema, 0 rows)\n * - Server reads each tick, calls produce(state, out)\n * - Server writes output batch(es) for each tick\n * - When produce() calls out.finish(), server closes output stream\n *\n * Exchange streams (real input schema):\n * - Client sends data batches\n * - Server reads each batch, calls exchange(state, input, out)\n * - Server writes output batch(es) for each input\n * - Stream ends when client closes input (EOS)\n */\nexport async function dispatchStream(\n method: MethodDefinition,\n params: Record<string, any>,\n writer: IpcStreamWriter,\n reader: IpcStreamReader,\n serverId: string,\n requestId: string | null,\n externalConfig?: ExternalLocationConfig,\n kind?: TransportKind,\n): Promise<void> {\n const isProducer = !!method.producerFn;\n\n let state: any;\n try {\n if (isProducer) {\n state = await method.producerInit!(params);\n } else {\n state = await method.exchangeInit!(params);\n }\n } catch (error: any) {\n const errSchema = method.headerSchema ?? EMPTY_SCHEMA;\n const errBatch = buildErrorBatch(errSchema, error, serverId, requestId);\n await writer.writeStream(errSchema, [errBatch]);\n // Still need to consume the input stream from the client\n const inputSchema = await reader.openNextStream();\n if (inputSchema) {\n while ((await reader.readNextBatch()) !== null) {\n // drain\n }\n }\n return;\n }\n\n // Support dynamic output schemas: init may return state with __outputSchema\n // to override the method's registered output schema (needed for methods\n // like VGI's \"init\" that produce different schemas per invocation).\n const outputSchema = state?.__outputSchema ?? method.outputSchema!;\n\n // Effective producer mode: check state override (VGI \"init\" is registered as\n // exchange but may act as producer depending on the function type).\n const effectiveProducer = state?.__isProducer ?? isProducer;\n\n // Write header IPC stream if method has a header schema\n if (method.headerSchema && method.headerInit) {\n try {\n const headerOut = new OutputCollector(method.headerSchema, true, serverId, requestId, undefined, undefined, kind);\n const headerValues = method.headerInit(params, state, headerOut);\n const headerBatch = buildResultBatch(method.headerSchema, headerValues, serverId, requestId);\n const headerBatches = [...headerOut.batches.map((b) => b.batch), headerBatch];\n await writer.writeStream(method.headerSchema, headerBatches);\n } catch (error: any) {\n const errBatch = buildErrorBatch(method.headerSchema, error, serverId, requestId);\n await writer.writeStream(method.headerSchema, [errBatch]);\n // Drain input stream so client doesn't hang\n const inputSchema = await reader.openNextStream();\n if (inputSchema) {\n while ((await reader.readNextBatch()) !== null) {}\n }\n return;\n }\n }\n\n // Open the input IPC stream (ticks or data from client)\n const inputSchema = await reader.openNextStream();\n if (!inputSchema) {\n const errBatch = buildErrorBatch(outputSchema, new Error(\"Expected input stream but got EOF\"), serverId, requestId);\n await writer.writeStream(outputSchema, [errBatch]);\n return;\n }\n\n // Use a single continuous IPC stream for all output (matching Python vgi-rpc).\n // DuckDB exchanges are ping-pong: one input batch → one output batch on the\n // same stream. We use IncrementalStream which writes bytes synchronously.\n const stream = writer.openStream(outputSchema);\n\n // Expected input schema for casting compatible types (e.g., decimal→double).\n // State.__inputSchema overrides the method-registration schema per call,\n // mirroring the __outputSchema pattern. Used by dynamic-input exchange\n // methods (e.g., VGI's init, which binds to a user-supplied input shape).\n const expectedInputSchema = state?.__inputSchema ?? method.inputSchema;\n\n try {\n while (true) {\n let inputBatch = await reader.readNextBatch();\n if (!inputBatch) break;\n\n // Client cancellation: if the input batch carries vgi_rpc.cancel metadata,\n // end the stream cleanly without calling the producer/exchange handler.\n // The onCancel hook (if registered) runs once so state objects can\n // release resources.\n if (inputBatch.metadata?.get(CANCEL_KEY)) {\n if (method.onCancel) {\n try {\n await method.onCancel(state);\n } catch (err) {\n console.debug?.(`onCancel hook failed: ${err instanceof Error ? err.message : err}`);\n }\n }\n break;\n }\n\n // Cast compatible input types when schema doesn't match exactly.\n // Gated on effectiveProducer (not isProducer) so methods that flip to\n // producer mode via state.__isProducer skip the conform entirely — the\n // tick batches they receive have a dummy shape that shouldn't be checked.\n // Any conformance failure falls through with the original batch; the\n // exchange handler owns input-shape validation if it cares.\n if (expectedInputSchema && !effectiveProducer && inputBatch.schema !== expectedInputSchema) {\n try {\n inputBatch = conformBatchToSchema(inputBatch, expectedInputSchema);\n } catch (e) {\n // Field name/count mismatch (TypeError) is a hard contract violation —\n // propagate as an RpcError so callers see a structured failure instead\n // of a downstream hang or silent garbage. Other conform failures (e.g.\n // type-cast issues for dynamic-input handlers) fall through with the\n // original batch — handlers that bind their input shape per-call\n // should set state.__inputSchema so the conform doesn't run at all.\n if (e instanceof TypeError) throw e;\n console.debug?.(`Schema conformance skipped: ${e instanceof Error ? e.message : e}`);\n }\n }\n\n const out = new OutputCollector(outputSchema, effectiveProducer, serverId, requestId, undefined, undefined, kind);\n\n if (isProducer) {\n await method.producerFn!(state, out);\n } else {\n await method.exchangeFn!(state, inputBatch, out);\n }\n\n for (const emitted of out.batches) {\n let batch = emitted.batch;\n if (externalConfig) {\n batch = await maybeExternalizeBatch(batch, externalConfig);\n }\n // Attach per-emit metadata (e.g. vgi_batch_index,\n // vgi_partition_values#b64) as the RecordBatch message's\n // custom_metadata so the C++ extension can read it off the wire.\n if (emitted.metadata && emitted.metadata.size > 0) {\n batch = withBatchMetadata(batch, emitted.metadata);\n }\n await stream.write(batch);\n }\n\n if (out.finished) {\n break;\n }\n }\n } catch (error: any) {\n await stream.write(buildErrorBatch(outputSchema, error, serverId, requestId));\n }\n\n await stream.close();\n\n // Drain remaining input so transport stays synchronized for next request.\n // Matches Python's _drain_stream() called after every streaming method.\n // Needed when the loop exits early (out.finished, error) while client\n // is still sending batches.\n try {\n while ((await reader.readNextBatch()) !== null) {}\n } catch {\n // Suppress errors during drain (broken pipe, etc.)\n }\n}\n",
55
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { type ExternalLocationConfig, maybeExternalizeBatch } from \"../external.js\";\nimport type { MethodDefinition, TransportKind } from \"../types.js\";\nimport { OutputCollector } from \"../types.js\";\nimport { buildErrorBatch, buildResultBatch } from \"../wire/response.js\";\nimport type { IpcStreamWriter } from \"../wire/writer.js\";\n\n/**\n * Dispatch a unary RPC call.\n * Calls the handler with parsed params, writes result or error batch.\n * Supports client-directed logging via ctx.clientLog().\n */\nexport async function dispatchUnary(\n method: MethodDefinition,\n params: Record<string, any>,\n writer: IpcStreamWriter,\n serverId: string,\n requestId: string | null,\n externalConfig?: ExternalLocationConfig,\n kind?: TransportKind,\n): Promise<void> {\n const schema = method.resultSchema;\n const out = new OutputCollector(schema, true, serverId, requestId, undefined, undefined, kind);\n\n try {\n const result = await method.handler!(params, out);\n let resultBatch = buildResultBatch(schema, result, serverId, requestId);\n if (externalConfig) {\n resultBatch = await maybeExternalizeBatch(resultBatch, externalConfig);\n }\n // Collect log batches (from clientLog) + result batch\n const batches = [...out.batches.map((b) => b.batch), resultBatch];\n await writer.writeStream(schema, batches);\n } catch (error: any) {\n const batch = buildErrorBatch(schema, error, serverId, requestId);\n await writer.writeStream(schema, [batch]);\n }\n}\n",
56
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Socket } from \"node:net\";\nimport type { IncrementalEncoder, VgiBatch, VgiSchema } from \"../arrow/index.js\";\nimport { createIncrementalEncoder, serializeBatches } from \"../arrow/index.js\";\n\nconst STDOUT_FD = 1;\n\n// Resolve node:fs via indirect-string require so esbuild/wrangler don't\n// statically pull node:fs into the bundle. Workers (Cloudflare workerd) never\n// instantiate IpcStreamWriter (no stdio transport on workers), so the\n// runtime-time require(\"node:fs\") is unreachable in those builds.\n//\n// `globalThis.require` is undefined in both Bun ESM and Node ESM, so we try\n// `import.meta.require` (Bun) first, then fall back to globalThis.require\n// (Node CJS). Node ESM consumers must polyfill require if they need the\n// subprocess transport.\nconst _NODE_FS_MOD = \"node:fs\";\nlet _writeSync: ((fd: number, data: Uint8Array, offset?: number, len?: number) => number) | null = null;\nfunction _loadWriteSync(): (fd: number, data: Uint8Array, offset?: number, len?: number) => number {\n if (_writeSync) return _writeSync;\n const req: any = (import.meta as any).require ?? (globalThis as any).require ?? null;\n if (!req) {\n throw new Error(\n \"IpcStreamWriter requires Bun or Node.js CJS for sync node:fs.writeSync. \" +\n \"Subprocess transport is not available in this runtime.\",\n );\n }\n const fs = req(_NODE_FS_MOD);\n _writeSync = fs.writeSync.bind(fs);\n return _writeSync!;\n}\n\n/**\n * Write all bytes to a file descriptor, looping on partial writes.\n *\n * Stdio path only. The fd here is a pipe (typically stdout) inherited from\n * the launcher in subprocess transport. Pipes set up by fork/exec are\n * blocking by default, so writeSync blocks the kernel (not the event loop in\n * a bad way) until the parent reader drains — that is the *desired* lockstep\n * with the client. The AF_UNIX path does not come through here; sockets are\n * non-blocking and EAGAIN-spinning them would freeze the event loop and\n * starve every other connection. See `socketWriteAll` below.\n */\nfunction writeAll(fd: number, data: Uint8Array): void {\n const writeSync = _loadWriteSync();\n let offset = 0;\n while (offset < data.length) {\n try {\n const written = writeSync(fd, data, offset, data.length - offset);\n if (written <= 0) throw new Error(`writeSync returned ${written}`);\n offset += written;\n } catch (e: any) {\n if (e.code === \"EAGAIN\") {\n // A non-blocking pipe — unexpected for stdio, but handle defensively.\n // Yielding is not possible from a synchronous function; busy-wait\n // briefly. AF_UNIX sockets must NOT use this path.\n Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 1);\n continue;\n }\n throw e;\n }\n }\n}\n\n/**\n * Asynchronously write all bytes to a Node net.Socket, honouring backpressure.\n *\n * `socket.write(buf)` queues `buf` into libuv's per-socket outbound buffer\n * and returns false when that buffer has grown past `highWaterMark`. We then\n * `await` the `'drain'` event so the JS thread yields — other connections\n * can be dispatched while the kernel drains the send buffer in the\n * background. Without this yield, a slow consumer on connection A would\n * freeze every other connection's handler on the shared event loop.\n *\n * Resolves cleanly on socket close/error so the caller's try/finally can\n * unwind without dangling listeners.\n */\nasync function socketWriteAll(socket: Socket, data: Uint8Array): Promise<void> {\n if (socket.destroyed || socket.writableEnded) {\n throw new Error(\"socketWriteAll: socket is already closed\");\n }\n const ok = socket.write(data);\n if (ok) return;\n await new Promise<void>((resolve, reject) => {\n const cleanup = () => {\n socket.off(\"drain\", onDrain);\n socket.off(\"error\", onError);\n socket.off(\"close\", onClose);\n };\n const onDrain = () => {\n cleanup();\n resolve();\n };\n const onError = (err: Error) => {\n cleanup();\n reject(err);\n };\n const onClose = () => {\n // Peer hung up before drain. Resolve so the caller's try/finally\n // runs; the next read on this connection will surface EOF.\n cleanup();\n resolve();\n };\n socket.once(\"drain\", onDrain);\n socket.once(\"error\", onError);\n socket.once(\"close\", onClose);\n });\n}\n\ntype WriterTarget = { kind: \"fd\"; fd: number } | { kind: \"socket\"; socket: Socket };\n\n/**\n * Writes sequential IPC streams to either an fd (stdio subprocess transport)\n * or a Node Socket (AF_UNIX transport). Each call to writeStream() writes a\n * complete IPC stream: schema + batches + EOS.\n *\n * All public methods are async. The fd path resolves immediately after a\n * synchronous writeSync; the socket path awaits real `'drain'` events on\n * backpressure so the event loop stays responsive to other connections.\n */\nexport class IpcStreamWriter {\n private readonly target: WriterTarget;\n\n /**\n * Construct from a file descriptor (stdio transport) or a Node net.Socket\n * (AF_UNIX transport). The default targets stdout for legacy stdio servers\n * that didn't pass an fd.\n */\n constructor(fdOrSocket: number | Socket = STDOUT_FD) {\n if (typeof fdOrSocket === \"number\") {\n this.target = { kind: \"fd\", fd: fdOrSocket };\n } else {\n this.target = { kind: \"socket\", socket: fdOrSocket };\n }\n }\n\n /**\n * Write a complete IPC stream with the given schema and batches.\n * Creates schema message, writes all batches (with their metadata), writes EOS.\n */\n async writeStream(schema: VgiSchema, batches: VgiBatch[]): Promise<void> {\n // Delegate to the Arrow facade so the bytes-on-the-wire match the\n // active backend (arrow-js by default, flechette under the `workerd`/\n // `worker`/`browser` package.json conditions). The incremental stream\n // below still uses arrow-js directly — flechette has no equivalent\n // streaming-writer surface and only the stdio server uses the\n // incremental path.\n const bytes = serializeBatches(schema, batches);\n if (this.target.kind === \"fd\") {\n writeAll(this.target.fd, bytes);\n } else {\n await socketWriteAll(this.target.socket, bytes);\n }\n }\n\n /**\n * Open an incremental IPC stream for writing batches one at a time.\n */\n openStream(schema: VgiSchema): IncrementalStream {\n return new IncrementalStream(this.target, schema);\n }\n}\n\n/**\n * An open IPC stream that supports incremental batch writes.\n *\n * Drives a backend {@link IncrementalEncoder} and flushes its bytes through\n * the same target (fd or socket) as the parent IpcStreamWriter. The write()\n * and close() methods are async so the socket path can yield on backpressure\n * — critical under AF_UNIX where the kernel send buffer (~8 KB on macOS)\n * fills quickly and any synchronous busy-wait would starve every other\n * connection sharing this event loop.\n *\n * The encoder is obtained from the Arrow facade, so this file no longer\n * imports arrow-js directly — keeping arrow-js out of the flechette\n * (workerd/browser) bundle. The flechette encoder throws on construction;\n * the stdio exchange protocol is lockstep (the client reads each response\n * batch before sending the next input) which needs an incremental writer\n * flechette doesn't provide. workerd/browser deployments use HTTP (no\n * stdio), so the flechette path is never reached there; `flechette-pipe`\n * conformance is xfailed for streams.\n */\nexport class IncrementalStream {\n private readonly encoder: IncrementalEncoder;\n private readonly target: WriterTarget;\n private closed = false;\n // Chains async writes so concurrent callers can't interleave bytes on the\n // wire. Each operation appends to this promise; awaiting it preserves\n // FIFO order even when the caller doesn't await between writes.\n private writeChain: Promise<void> = Promise.resolve();\n\n constructor(target: WriterTarget, schema: VgiSchema) {\n this.target = target;\n this.encoder = createIncrementalEncoder(schema);\n // Schema bytes — synchronous on the fd path, queued on the socket path.\n // Callers don't await openStream(), so we serialize via writeChain.\n this.enqueue(this.encoder.start());\n }\n\n /** Write a single batch. Resolves once the bytes are queued/flushed. */\n async write(batch: VgiBatch): Promise<void> {\n if (this.closed) throw new Error(\"Stream already closed\");\n return this.enqueue(this.encoder.writeBatch(batch));\n }\n\n /** Close the stream (writes EOS marker). */\n async close(): Promise<void> {\n if (this.closed) return;\n this.closed = true;\n return this.enqueue(this.encoder.finish());\n }\n\n private enqueue(bytes: Uint8Array): Promise<void> {\n const next = this.writeChain.then(() => {\n if (this.target.kind === \"fd\") {\n writeAll(this.target.fd, bytes);\n return;\n }\n return socketWriteAll(this.target.socket, bytes);\n });\n // Swallow rejections on the chain so a single failure doesn't poison\n // every subsequent enqueue with an unhandled rejection. The returned\n // `next` still propagates the error to the caller that triggered it.\n this.writeChain = next.catch(() => undefined);\n return next;\n }\n}\n",
57
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n binary,\n bool as boolType,\n float32 as float32Type,\n float64 as float64Type,\n int8 as int8Type,\n int16 as int16Type,\n int32 as int32Type,\n int64 as int64Type,\n isBinary,\n isBool,\n isFloat,\n isInt,\n isUtf8,\n field as makeField,\n schema as makeSchema,\n uint8 as uint8Type,\n uint16 as uint16Type,\n uint32 as uint32Type,\n uint64 as uint64Type,\n utf8,\n type VgiDataType,\n type VgiField,\n type VgiSchema,\n} from \"./arrow/index.js\";\n\n// ---------------------------------------------------------------------------\n// Convenient DataType singletons — re-export so users avoid arrow imports\n// ---------------------------------------------------------------------------\n\n/** Apache Arrow Utf8 type. Use as schema shorthand: `{ name: str }` */\nexport const str = utf8();\n/** Apache Arrow Binary type. Use as schema shorthand: `{ data: bytes }` */\nexport const bytes = binary();\n/** Apache Arrow Int64 type. Use as schema shorthand: `{ count: int }` */\nexport const int = int64Type();\n/** Apache Arrow Int32 type. Use as schema shorthand: `{ count: int32 }` */\nexport const int32 = int32Type();\n/** Apache Arrow Int16 type. Use as schema shorthand: `{ count: int16 }` */\nexport const int16 = int16Type();\n/** Apache Arrow Int8 type. Use as schema shorthand: `{ count: int8 }` */\nexport const int8 = int8Type();\n/** Apache Arrow Uint8 type. Use as schema shorthand: `{ count: uint8 }` */\nexport const uint8 = uint8Type();\n/** Apache Arrow Uint16 type. Use as schema shorthand: `{ count: uint16 }` */\nexport const uint16 = uint16Type();\n/** Apache Arrow Uint32 type. Use as schema shorthand: `{ count: uint32 }` */\nexport const uint32 = uint32Type();\n/** Apache Arrow Uint64 type. Use as schema shorthand: `{ count: uint64 }` */\nexport const uint64 = uint64Type();\n/** Apache Arrow Float64 type. Use as schema shorthand: `{ value: float }` */\nexport const float = float64Type();\n/** Apache Arrow Float32 type. Use as schema shorthand: `{ value: float32 }` */\nexport const float32 = float32Type();\n/** Apache Arrow Bool type. Use as schema shorthand: `{ flag: bool }` */\nexport const bool = boolType();\n\n// ---------------------------------------------------------------------------\n// SchemaLike — shorthand for declaring schemas\n// ---------------------------------------------------------------------------\n\n/**\n * Structural minimum that any backend's Schema must satisfy. arrow-js's\n * `Schema`, vgi-typescript's `VgiSchema`, and flechette's `Schema` all match\n * this shape. Used so vgi-rpc consumers don't have to know which Arrow\n * library is on the other side of the wire.\n *\n * Kept exported for backwards compatibility — equivalent to `VgiSchema`.\n */\nexport interface SchemaShape {\n readonly fields: ReadonlyArray<{\n readonly name: string;\n readonly type: { readonly typeId: number };\n readonly nullable?: boolean;\n readonly metadata?: Map<string, string>;\n }>;\n readonly metadata?: Map<string, string> | null;\n}\n\n/**\n * A schema specification that accepts:\n * - A real `VgiSchema` (passed through)\n * - Anything structurally `SchemaShape`\n * - A record mapping field names to `VgiDataType` instances or `VgiField` instances\n * - An empty `{}` for an empty schema\n */\nexport type SchemaLike = VgiSchema | SchemaShape | Record<string, VgiDataType | VgiField>;\n\nfunction isField(x: unknown): x is VgiField {\n return (\n x != null &&\n typeof (x as any).name === \"string\" &&\n (x as any).type != null &&\n typeof (x as any).nullable === \"boolean\"\n );\n}\n\nfunction isDataType(x: unknown): x is VgiDataType {\n return x != null && typeof (x as any).typeId === \"number\";\n}\n\n/**\n * Convert a SchemaLike spec into a real `VgiSchema`.\n */\nexport function toSchema(spec: SchemaLike): VgiSchema {\n // VgiSchema / SchemaShape branch: anything with a `fields` array.\n const maybeFields = (spec as { fields?: unknown }).fields;\n if (Array.isArray(maybeFields)) {\n const out: VgiField[] = [];\n for (const f of maybeFields as ReadonlyArray<any>) {\n if (isField(f)) {\n out.push(f);\n } else {\n out.push(makeField(f.name, f.type, f.nullable ?? true, f.metadata));\n }\n }\n return makeSchema(out);\n }\n\n const fields: VgiField[] = [];\n for (const [name, value] of Object.entries(spec)) {\n if (isField(value)) {\n fields.push(value);\n } else if (isDataType(value)) {\n fields.push(makeField(name, value, false));\n } else {\n throw new TypeError(`Invalid schema value for \"${name}\": expected DataType or Field, got ${typeof value}`);\n }\n }\n return makeSchema(fields);\n}\n\n// ---------------------------------------------------------------------------\n// inferParamTypes — derive paramTypes from a schema spec\n// ---------------------------------------------------------------------------\n\n/**\n * Derive a `paramTypes` record from a SchemaLike spec.\n * Maps common Arrow scalar types to Python-style type strings.\n * Returns `undefined` if any field has a complex type (List, Map_, Dictionary, etc.).\n */\nexport function inferParamTypes(spec: SchemaLike): Record<string, string> | undefined {\n const sch = toSchema(spec);\n if (sch.fields.length === 0) return undefined;\n\n const result: Record<string, string> = {};\n for (const f of sch.fields) {\n let mapped: string | undefined;\n if (isUtf8(f.type)) mapped = \"str\";\n else if (isBinary(f.type)) mapped = \"bytes\";\n else if (isBool(f.type)) mapped = \"bool\";\n else if (isFloat(f.type)) mapped = \"float\";\n else if (isInt(f.type)) mapped = \"int\";\n if (!mapped) return undefined;\n result[f.name] = mapped;\n }\n return result;\n}\n",
58
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { schema as makeSchema } from \"./arrow/index.js\";\nimport { parseProtocolVersion } from \"./errors.js\";\nimport { inferParamTypes, type SchemaLike, toSchema } from \"./schema.js\";\nimport {\n type ExchangeFn,\n type ExchangeInit,\n type HeaderInit,\n type MethodDefinition,\n MethodType,\n type OnCancelFn,\n type ProducerFn,\n type ProducerInit,\n type UnaryHandler,\n} from \"./types.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\n/**\n * Fluent builder for defining RPC methods.\n * Register unary, producer, and exchange methods, then pass to `VgiRpcServer`.\n */\nexport class Protocol {\n /** Service / protocol name, exposed to clients via introspection. */\n readonly name: string;\n /**\n * Application protocol surface version. When non-empty, the server enforces\n * exact major+minor match (patch ignored) against every request's\n * `vgi_rpc.protocol_version` metadata; clients bound to this Protocol emit\n * the value on every request. Format: canonical semver MAJOR.MINOR.PATCH.\n * Mirrors Python's `Protocol.protocol_version` ClassVar.\n */\n readonly protocolVersion: string;\n /** Parsed semver tuple; null when `protocolVersion` is unset. */\n readonly protocolVersionParts: readonly [number, number, number] | null;\n private _methods: Map<string, MethodDefinition> = new Map();\n\n constructor(name: string, options?: { protocolVersion?: string }) {\n this.name = name;\n const raw = options?.protocolVersion;\n if (raw === undefined || raw === \"\") {\n this.protocolVersion = \"\";\n this.protocolVersionParts = null;\n } else {\n this.protocolVersion = raw;\n this.protocolVersionParts = parseProtocolVersion(raw);\n }\n }\n\n /**\n * Register a unary (request-response) method.\n * @param name - Method name exposed to clients\n * @param config.params - Parameter schema (SchemaLike)\n * @param config.result - Result schema (SchemaLike)\n * @param config.handler - Async function receiving params and returning result values\n * @param config.doc - Optional documentation string\n * @param config.defaults - Optional default parameter values\n * @param config.paramTypes - Optional parameter type hints (inferred from params if omitted)\n */\n unary(\n name: string,\n config: {\n params: SchemaLike;\n result: SchemaLike;\n handler: UnaryHandler;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n },\n ): this {\n const params = toSchema(config.params);\n this._methods.set(name, {\n name,\n type: MethodType.UNARY,\n paramsSchema: params,\n resultSchema: toSchema(config.result),\n handler: config.handler,\n doc: config.doc,\n defaults: config.defaults,\n paramTypes: config.paramTypes ?? inferParamTypes(params),\n });\n return this;\n }\n\n /**\n * Register a producer (server-streaming) method.\n * The generic `S` is inferred from the `init` return type and threaded to `produce`.\n */\n producer<S>(\n name: string,\n config: {\n params: SchemaLike;\n outputSchema: SchemaLike;\n init: ProducerInit<S>;\n produce: ProducerFn<S>;\n onCancel?: OnCancelFn<S>;\n headerSchema?: SchemaLike;\n headerInit?: HeaderInit;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n },\n ): this {\n const params = toSchema(config.params);\n this._methods.set(name, {\n name,\n type: MethodType.STREAM,\n paramsSchema: params,\n resultSchema: EMPTY_SCHEMA,\n outputSchema: toSchema(config.outputSchema),\n inputSchema: EMPTY_SCHEMA,\n producerInit: config.init as ProducerInit,\n producerFn: config.produce as ProducerFn,\n onCancel: config.onCancel as OnCancelFn | undefined,\n headerSchema: config.headerSchema ? toSchema(config.headerSchema) : undefined,\n headerInit: config.headerInit,\n doc: config.doc,\n defaults: config.defaults,\n paramTypes: config.paramTypes ?? inferParamTypes(params),\n });\n return this;\n }\n\n /**\n * Register an exchange (bidirectional-streaming) method.\n * The generic `S` is inferred from the `init` return type and threaded to `exchange`.\n */\n exchange<S>(\n name: string,\n config: {\n params: SchemaLike;\n inputSchema: SchemaLike;\n outputSchema: SchemaLike;\n init: ExchangeInit<S>;\n exchange: ExchangeFn<S>;\n onCancel?: OnCancelFn<S>;\n headerSchema?: SchemaLike;\n headerInit?: HeaderInit;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n },\n ): this {\n const params = toSchema(config.params);\n this._methods.set(name, {\n name,\n type: MethodType.STREAM,\n paramsSchema: params,\n resultSchema: EMPTY_SCHEMA,\n inputSchema: toSchema(config.inputSchema),\n outputSchema: toSchema(config.outputSchema),\n exchangeInit: config.init as ExchangeInit,\n exchangeFn: config.exchange as ExchangeFn,\n onCancel: config.onCancel as OnCancelFn | undefined,\n headerSchema: config.headerSchema ? toSchema(config.headerSchema) : undefined,\n headerInit: config.headerInit,\n doc: config.doc,\n defaults: config.defaults,\n paramTypes: config.paramTypes ?? inferParamTypes(params),\n });\n return this;\n }\n\n /** Snapshot of the registered methods, keyed by method name. Returns a copy,\n * so mutating it does not affect the protocol. */\n getMethods(): Map<string, MethodDefinition> {\n return new Map(this._methods);\n }\n}\n",
59
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { schema as makeSchema, serializeBatch } from \"./arrow/index.js\";\nimport { DESCRIBE_METHOD_NAME, PROTOCOL_VERSION_KEY } from \"./constants.js\";\nimport { buildDescribeBatch } from \"./dispatch/describe.js\";\nimport { dispatchStream } from \"./dispatch/stream.js\";\nimport { dispatchUnary } from \"./dispatch/unary.js\";\nimport {\n MethodNotImplementedError,\n ProtocolVersionError,\n parseProtocolVersion,\n RpcError,\n VersionError,\n} from \"./errors.js\";\nimport type { ExternalLocationConfig } from \"./external.js\";\nimport type { Protocol } from \"./protocol.js\";\nimport {\n type CallStatistics,\n type DispatchHook,\n type DispatchInfo,\n MethodType,\n type ServeStartHook,\n TransportKind,\n} from \"./types.js\";\nimport { IpcStreamReader } from \"./wire/reader.js\";\nimport { applyDefaults, parseRequest } from \"./wire/request.js\";\nimport { buildErrorBatch } from \"./wire/response.js\";\nimport { IpcStreamWriter } from \"./wire/writer.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\nfunction randomStreamId(): string {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n let out = \"\";\n for (let i = 0; i < bytes.length; i++) {\n out += bytes[i].toString(16).padStart(2, \"0\");\n }\n return out;\n}\n\n/**\n * RPC server that reads Arrow IPC requests from stdin and writes responses to stdout.\n * Supports unary and streaming (producer/exchange) methods.\n */\nexport class VgiRpcServer {\n private protocol: Protocol;\n private enableDescribe: boolean;\n private serverId: string;\n // Lazily initialized — `buildDescribeBatch` is async because the protocol\n // hash is computed via `crypto.subtle.digest` (Web Crypto). The dispatch\n // path awaits the cached promise on first use.\n private _describePromise: Promise<{\n batch: import(\"./arrow/index.js\").VgiBatch;\n protocolHash: string;\n }> | null = null;\n private protocolVersion: string;\n private dispatchHook: DispatchHook | null = null;\n private externalConfig: ExternalLocationConfig | undefined;\n private onServeStart: ServeStartHook | null = null;\n /** True once the on_serve_start hook has fired successfully. The bind\n * state is committed only after the hook returns, so a transient\n * failure on first request leaves it `false` and the next request\n * re-fires rather than silently skipping. Mirrors Python 7b3999c. */\n private serveStartFired = false;\n\n constructor(\n protocol: Protocol,\n options?: {\n enableDescribe?: boolean;\n serverId?: string;\n dispatchHook?: DispatchHook;\n externalLocation?: ExternalLocationConfig;\n protocolVersion?: string;\n /** Lifecycle hook fired once before the first dispatched request. */\n onServeStart?: ServeStartHook;\n },\n ) {\n this.protocol = protocol;\n this.enableDescribe = options?.enableDescribe ?? true;\n this.serverId = options?.serverId ?? crypto.randomUUID().replace(/-/g, \"\").slice(0, 12);\n this.dispatchHook = options?.dispatchHook ?? null;\n this.externalConfig = options?.externalLocation;\n this.protocolVersion = options?.protocolVersion ?? \"\";\n this.onServeStart = options?.onServeStart ?? null;\n }\n\n /** Fire the on_serve_start hook once for this transport. Idempotent\n * on success — re-throws on failure without committing the bind. */\n private async notifyTransport(kind: TransportKind): Promise<void> {\n if (this.serveStartFired) return;\n if (this.onServeStart) {\n await this.onServeStart(kind);\n }\n this.serveStartFired = true;\n }\n\n /** Build (or retrieve cached) describe batch + protocol hash. */\n private async describeInfo(): Promise<{\n batch: import(\"./arrow/index.js\").VgiBatch;\n protocolHash: string;\n }> {\n if (!this._describePromise) {\n this._describePromise = buildDescribeBatch(\n this.protocol.name,\n this.protocol.getMethods(),\n this.serverId,\n this.protocol.protocolVersion || undefined,\n ).then(({ batch, metadata }) => ({\n batch,\n protocolHash: metadata.get(\"vgi_rpc.protocol_hash\") ?? \"\",\n }));\n }\n return this._describePromise;\n }\n\n /** Validate a client's declared protocol_version against the Protocol's\n * declared version. Caller invokes only when\n * `protocol.protocolVersionParts` is non-null. Mirrors Python's\n * `RpcServer._check_protocol_version`: exact major+minor match, patch\n * ignored; directional error message names which side is older. */\n private checkProtocolVersion(clientVersion: string | undefined): void {\n const serverParts = this.protocol.protocolVersionParts!;\n const serverVersion = this.protocol.protocolVersion;\n if (clientVersion === undefined) {\n throw new ProtocolVersionError(\n \"VGI client/worker protocol_version mismatch.\\n\" +\n \" Client: <not declared>\\n\" +\n ` Server: ${serverVersion}\\n` +\n \" Direction: the client did not send a vgi_rpc.protocol_version \" +\n \"metadata key. This is either a vgi-rpc framework bug or a \" +\n \"non-VGI client connecting to a VGI worker.\",\n );\n }\n let clientParts: readonly [number, number, number];\n try {\n clientParts = parseProtocolVersion(clientVersion);\n } catch {\n throw new ProtocolVersionError(\n \"VGI client/worker protocol_version mismatch.\\n\" +\n ` Client: ${clientVersion}\\n` +\n ` Server: ${serverVersion}\\n` +\n \" Direction: client sent a malformed protocol_version. \" +\n \"Expected canonical semver MAJOR.MINOR.PATCH.\",\n );\n }\n if (clientParts[0] === serverParts[0] && clientParts[1] === serverParts[1]) {\n return;\n }\n const clientOlder =\n clientParts[0] < serverParts[0] || (clientParts[0] === serverParts[0] && clientParts[1] < serverParts[1]);\n const direction = clientOlder\n ? `client is too old; upgrade the VGI extension/client to a version supporting protocol_version ${serverVersion}.`\n : `server is too old; upgrade the VGI worker to a version supporting protocol_version ${clientVersion}.`;\n throw new ProtocolVersionError(\n \"VGI client/worker protocol_version mismatch.\\n\" +\n ` Client: ${clientVersion}\\n` +\n ` Server: ${serverVersion}\\n` +\n ` Direction: ${direction}`,\n );\n }\n\n /** Start the server loop. Reads requests until stdin closes. */\n async run(): Promise<void> {\n const stdin = process.stdin as unknown as ReadableStream<Uint8Array>;\n\n // Warn if running interactively\n if (process.stdin.isTTY || process.stdout.isTTY) {\n process.stderr.write(\n \"WARNING: This process communicates via Arrow IPC on stdin/stdout \" +\n \"and is not intended to be run interactively.\\n\" +\n \"It should be launched as a subprocess by an RPC client \" +\n \"(e.g. vgi_rpc.connect()).\\n\",\n );\n }\n\n const reader = await IpcStreamReader.create(stdin);\n const writer = new IpcStreamWriter();\n\n try {\n while (true) {\n // Fire on_serve_start lazily so the hook can do work that\n // depends on the transport binding (matches Python which fires\n // it inside serve()). Inside the loop so a failure on the very\n // first request can be retried.\n await this.notifyTransport(TransportKind.PIPE);\n await this.serveOne(reader, writer);\n }\n } catch (e: any) {\n // EOF or broken pipe → clean exit\n if (\n e.message?.includes(\"closed\") ||\n e.message?.includes(\"Expected Schema Message\") ||\n e.message?.includes(\"null or length 0\") ||\n e.code === \"EPIPE\" ||\n e.code === \"ERR_STREAM_PREMATURE_CLOSE\" ||\n e.code === \"ERR_STREAM_DESTROYED\" ||\n (e instanceof Error && e.message.includes(\"EOF\"))\n ) {\n return;\n }\n // ArrowInvalid or unexpected error\n throw e;\n } finally {\n await reader.cancel();\n }\n }\n\n private async serveOne(reader: IpcStreamReader, writer: IpcStreamWriter): Promise<void> {\n const stream = await reader.readStream();\n if (!stream) {\n throw new Error(\"EOF\");\n }\n\n const { schema, batches } = stream;\n if (batches.length === 0) {\n const err = new RpcError(\"ProtocolError\", \"Request stream contains no batches\", \"\");\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, this.serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n\n const batch = batches[0];\n let methodName: string;\n let params: Record<string, any>;\n let requestId: string | null;\n\n try {\n const parsed = parseRequest(schema, batch);\n methodName = parsed.methodName;\n params = parsed.params;\n requestId = parsed.requestId;\n } catch (e: any) {\n // Write error response for protocol/version errors\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, e, this.serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n if (e instanceof VersionError || e instanceof RpcError) {\n return; // Continue serving\n }\n throw e;\n }\n\n // Handle __describe__ — lazy-build on first request.\n if (methodName === DESCRIBE_METHOD_NAME && this.enableDescribe) {\n const { batch } = await this.describeInfo();\n await writer.writeStream(batch.schema, [batch]);\n return;\n }\n\n // Look up method\n const methods = this.protocol.getMethods();\n const method = methods.get(methodName);\n if (!method) {\n const available = [...methods.keys()].sort();\n const err = new MethodNotImplementedError(\n `Unknown method: '${methodName}'. Available methods: [${available.join(\", \")}]`,\n );\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, this.serverId, requestId);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n\n // Application-protocol-version gate. Fires only when the Protocol\n // declared a `protocolVersion`. `__describe__` is exempt — it is the\n // diagnostic path a mismatched client uses to introspect the server's\n // version. Mirrors Python's serve_one dispatch-boundary check.\n if (this.protocol.protocolVersionParts !== null) {\n try {\n const md = batch.metadata;\n this.checkProtocolVersion(md?.get(PROTOCOL_VERSION_KEY));\n } catch (exc) {\n const errSchema = method.type === MethodType.UNARY ? method.resultSchema : EMPTY_SCHEMA;\n const errBatch = buildErrorBatch(errSchema, exc as Error, this.serverId, requestId);\n await writer.writeStream(errSchema, [errBatch]);\n return;\n }\n }\n\n // Dispatch based on method type, with optional hook\n const methodType = method.type === MethodType.UNARY ? \"unary\" : \"stream\";\n\n // Capture self-contained IPC bytes of the request batch for the access log.\n let requestData: Uint8Array | undefined;\n try {\n requestData = serializeBatch(batch as any);\n } catch {\n // best-effort; observability must not fail dispatch\n }\n\n let streamId: string | undefined;\n if (methodType === \"stream\") {\n streamId = randomStreamId();\n }\n\n const { protocolHash } = await this.describeInfo();\n const info: DispatchInfo = {\n method: methodName,\n methodType,\n serverId: this.serverId,\n requestId,\n protocol: this.protocol.name,\n protocolHash,\n protocolVersion: this.protocolVersion,\n kind: TransportKind.PIPE,\n principal: \"\",\n authDomain: \"\",\n authenticated: false,\n remoteAddr: \"\",\n requestData,\n streamId,\n };\n const stats: CallStatistics = {\n inputBatches: 0,\n outputBatches: 0,\n inputRows: 0,\n outputRows: 0,\n inputBytes: 0,\n outputBytes: 0,\n };\n\n const token = this.dispatchHook?.onDispatchStart(info);\n let dispatchError: Error | undefined;\n\n applyDefaults(params, method.defaults);\n\n try {\n if (method.type === MethodType.UNARY) {\n await dispatchUnary(method, params, writer, this.serverId, requestId, this.externalConfig, TransportKind.PIPE);\n } else {\n await dispatchStream(\n method,\n params,\n writer,\n reader,\n this.serverId,\n requestId,\n this.externalConfig,\n TransportKind.PIPE,\n );\n }\n } catch (e) {\n dispatchError = e instanceof Error ? e : new Error(String(e));\n throw e;\n } finally {\n this.dispatchHook?.onDispatchEnd(token, info, stats, dispatchError);\n }\n }\n}\n"
59
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * AF_UNIX worker runner for vgi-rpc TypeScript.\n *\n * Bind a deterministic Unix-domain socket, accept connections one at a\n * time (sequential listen, matching Python's `serve_unix`), and dispatch\n * each via the existing {@link VgiRpcServer.serveOne} loop. Implements\n * the cross-language launcher contract:\n *\n * - Accept `--unix PATH` and `--idle-timeout SEC` (parsed by callers).\n * - Emit `UNIX:<absolute-path>\\n` to stdout once bind+listen succeed.\n * - Self-terminate after `idleTimeout` seconds with zero connected\n * clients; the timer starts ticking only after a `startupGrace`\n * window so a slow first caller doesn't see the server vanish.\n */\n\nimport { existsSync, unlinkSync } from \"node:fs\";\nimport { createServer, type Server, type Socket } from \"node:net\";\nimport * as path from \"node:path\";\nimport { schema as makeSchema, serializeBatch } from \"../arrow/index.js\";\nimport { DESCRIBE_METHOD_NAME } from \"../constants.js\";\nimport { buildDescribeBatch } from \"../dispatch/describe.js\";\nimport { dispatchStream } from \"../dispatch/stream.js\";\nimport { dispatchUnary } from \"../dispatch/unary.js\";\nimport { RpcError, VersionError } from \"../errors.js\";\nimport type { ExternalLocationConfig } from \"../external.js\";\nimport type { Protocol } from \"../protocol.js\";\nimport {\n type CallStatistics,\n type DispatchHook,\n type DispatchInfo,\n MethodType,\n type ServeStartHook,\n TransportKind,\n} from \"../types.js\";\nimport { IpcStreamReader } from \"../wire/reader.js\";\nimport { applyDefaults, parseRequest } from \"../wire/request.js\";\nimport { buildErrorBatch } from \"../wire/response.js\";\nimport { IpcStreamWriter } from \"../wire/writer.js\";\n\nconst EMPTY_SCHEMA = makeSchema([]);\n\n/** Configuration for {@link serveUnix}. */\nexport interface ServeUnixOptions {\n /** Absolute path to the Unix socket file the worker should bind. */\n unixPath: string;\n /** Self-terminate after this many seconds with zero connected clients.\n * Default: 300. `0` disables the timer (server runs until killed). */\n idleTimeout?: number;\n /** Grace period after `listen()` succeeds before the idle timer starts\n * ticking. Default: 5 — gives the first launcher caller a chance to\n * connect after the `UNIX:<path>` announcement. */\n startupGraceSeconds?: number;\n /** Optional logical-service / protocol-contract version label. */\n protocolVersion?: string;\n /** Custom server identifier. */\n serverId?: string;\n /** Enable __describe__ method. Default: true. */\n enableDescribe?: boolean;\n /** Optional dispatch hook for observability. */\n dispatchHook?: DispatchHook;\n /** Optional external-storage config for large-batch externalisation. */\n externalLocation?: ExternalLocationConfig;\n /** Lifecycle hook fired once before the first dispatched request. */\n onServeStart?: ServeStartHook;\n /** Maximum sequential listen backlog. Mirrors Python's `serve_unix`\n * (`backlog=16`). Default: 16. */\n backlog?: number;\n /** Called *after* `listen()` returns successfully but *before*\n * `UNIX:<path>` is printed. The launcher uses this hook to write the\n * announcement only after we're sure the bind took. */\n onBound?: (sockPath: string) => void;\n /** Override the stream used for the `UNIX:<path>` line. Defaults to\n * `process.stdout`. */\n announcementSink?: NodeJS.WritableStream;\n}\n\n/** Handle returned by {@link serveUnix} for callers that want to stop the server. */\nexport interface ServeUnixHandle {\n /** Absolute path of the bound AF_UNIX socket the server is listening on. */\n readonly socketPath: string;\n /** Shut down the listener and unlink the socket file. */\n stop(): Promise<void>;\n /** Promise that resolves when the server has stopped (idle timeout, stop(),\n * or a fatal error). Mirrors Python's blocking `serve()` return. */\n readonly done: Promise<void>;\n}\n\n/**\n * Bind an AF_UNIX socket and serve `protocol` over per-connection IPC streams.\n *\n * Sequential listen — one client at a time, just like Python's `serve_unix`.\n * Each connection gets its own dispatch loop and shares the protocol.\n */\nexport async function serveUnix(protocol: Protocol, options: ServeUnixOptions): Promise<ServeUnixHandle> {\n const sockPath = path.resolve(options.unixPath);\n const idleTimeoutS = options.idleTimeout ?? 300;\n const startupGraceS = options.startupGraceSeconds ?? 5;\n const protocolVersion = options.protocolVersion ?? \"\";\n const serverId = options.serverId ?? crypto.randomUUID().replace(/-/g, \"\").slice(0, 12);\n const enableDescribe = options.enableDescribe ?? true;\n const dispatchHook = options.dispatchHook ?? null;\n const externalConfig = options.externalLocation;\n const onServeStart = options.onServeStart ?? null;\n const backlog = options.backlog ?? 16;\n const announcementSink = options.announcementSink ?? process.stdout;\n\n // Defensive probe-then-bind: an existing live worker on this path means a\n // peer launcher already won the race. Refuse to bind so we don't take\n // its connections. (A stale path with no listener was unlinked by the\n // launcher before spawning us, but a leftover from a co-launcher right\n // now is possible.)\n if (existsSync(sockPath)) {\n try {\n // Best-effort cleanup; bind below will surface any real conflict.\n unlinkSync(sockPath);\n } catch {\n // ignore — let listen() fail with EADDRINUSE.\n }\n }\n\n // Cache for __describe__ — Web-Crypto digest is async, so memoise.\n let describePromise: Promise<{ batch: import(\"../arrow/index.js\").VgiBatch; protocolHash: string }> | null = null;\n function describeInfo(): Promise<{ batch: import(\"../arrow/index.js\").VgiBatch; protocolHash: string }> {\n if (!describePromise) {\n describePromise = buildDescribeBatch(protocol.name, protocol.getMethods(), serverId).then(\n ({ batch, metadata }) => ({\n batch,\n protocolHash: metadata.get(\"vgi_rpc.protocol_hash\") ?? \"\",\n }),\n );\n }\n return describePromise;\n }\n\n // Lifecycle: only commit `serveStartFired` after the hook returns successfully.\n let serveStartFired = false;\n async function notifyTransport(): Promise<void> {\n if (serveStartFired) return;\n if (onServeStart) {\n await onServeStart(TransportKind.UNIX);\n }\n serveStartFired = true;\n }\n\n const server: Server = createServer({ allowHalfOpen: false });\n\n let activeConnections = 0;\n let idleTimer: ReturnType<typeof setTimeout> | null = null;\n let resolveDone: () => void = () => {};\n let rejectDone: (err: unknown) => void = () => {};\n const done = new Promise<void>((resolve, reject) => {\n resolveDone = resolve;\n rejectDone = reject;\n });\n let stopped = false;\n\n function armIdleTimer(): void {\n if (idleTimeoutS <= 0) return;\n if (idleTimer) clearTimeout(idleTimer);\n idleTimer = setTimeout(() => {\n if (activeConnections === 0 && !stopped) {\n void shutdown();\n }\n }, idleTimeoutS * 1000);\n }\n\n function disarmIdleTimer(): void {\n if (idleTimer) {\n clearTimeout(idleTimer);\n idleTimer = null;\n }\n }\n\n async function shutdown(): Promise<void> {\n if (stopped) return;\n stopped = true;\n disarmIdleTimer();\n await new Promise<void>((resolve) => {\n server.close(() => resolve());\n });\n try {\n unlinkSync(sockPath);\n } catch {\n // already gone\n }\n resolveDone();\n }\n\n server.on(\"connection\", (socket) => {\n activeConnections += 1;\n disarmIdleTimer();\n handleConnection(socket)\n .catch((err) => {\n // Per-connection errors must not take down the server — log to stderr\n // and let the next connection proceed.\n process.stderr.write(`vgi-rpc/unix: connection failed: ${(err as Error)?.message ?? err}\\n`);\n })\n .finally(() => {\n activeConnections -= 1;\n socket.destroy();\n if (activeConnections === 0 && !stopped) {\n armIdleTimer();\n }\n });\n });\n\n server.on(\"error\", (err) => {\n if (stopped) return;\n rejectDone(err);\n });\n\n async function handleConnection(socket: Socket): Promise<void> {\n // The reader takes any Node Readable; sockets are duplex Readables.\n const reader = await IpcStreamReader.create(socket);\n // Build the writer over the Socket itself, not its raw fd. AF_UNIX\n // sockets in Node are non-blocking; a fd-based writer would do\n // `fs.writeSync` and busy-wait on EAGAIN whenever the ~8 KB kernel send\n // buffer fills (trivial for any Arrow batch of meaningful size). That\n // synchronous wait freezes the shared event loop and starves every\n // *other* connection's handler — observed as 30 s `catalog_attach`\n // timeouts from co-running unittest processes. Going through\n // `socket.write` + `'drain'` lets the JS thread yield while the kernel\n // drains the buffer.\n const writer = new IpcStreamWriter(socket);\n\n try {\n // Fire on_serve_start lazily — first request retries on hook failure.\n await notifyTransport();\n\n while (true) {\n try {\n await serveOnce(reader, writer);\n } catch (e: unknown) {\n const err = e as { code?: string; message?: string };\n // EOF/closed client → end this connection cleanly.\n if (\n err?.message?.includes(\"closed\") ||\n err?.message?.includes(\"Expected Schema Message\") ||\n err?.message?.includes(\"null or length 0\") ||\n err?.message?.includes(\"EOF\") ||\n err?.code === \"EPIPE\" ||\n err?.code === \"ERR_STREAM_PREMATURE_CLOSE\" ||\n err?.code === \"ERR_STREAM_DESTROYED\"\n ) {\n return;\n }\n throw e;\n }\n }\n } finally {\n try {\n await reader.cancel();\n } catch {\n // already closed\n }\n }\n }\n\n async function serveOnce(reader: IpcStreamReader, writer: IpcStreamWriter): Promise<void> {\n const stream = await reader.readStream();\n if (!stream) {\n throw new Error(\"EOF\");\n }\n const { schema, batches } = stream;\n if (batches.length === 0) {\n const err = new RpcError(\"ProtocolError\", \"Request stream contains no batches\", \"\");\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n const batch = batches[0];\n let methodName: string;\n let params: Record<string, unknown>;\n let requestId: string | null;\n try {\n const parsed = parseRequest(schema, batch);\n methodName = parsed.methodName;\n params = parsed.params;\n requestId = parsed.requestId;\n } catch (e: unknown) {\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, e as Error, serverId, null);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n if (e instanceof VersionError || e instanceof RpcError) return;\n throw e;\n }\n\n if (methodName === DESCRIBE_METHOD_NAME && enableDescribe) {\n const { batch: descBatch } = await describeInfo();\n await writer.writeStream(descBatch.schema, [descBatch]);\n return;\n }\n\n const methods = protocol.getMethods();\n const method = methods.get(methodName);\n if (!method) {\n const available = [...methods.keys()].sort();\n const err = new Error(`Unknown method: '${methodName}'. Available methods: [${available.join(\", \")}]`);\n const errBatch = buildErrorBatch(EMPTY_SCHEMA, err, serverId, requestId);\n await writer.writeStream(EMPTY_SCHEMA, [errBatch]);\n return;\n }\n\n const methodType = method.type === MethodType.UNARY ? \"unary\" : \"stream\";\n let requestData: Uint8Array | undefined;\n try {\n requestData = serializeBatch(batch);\n } catch {\n // best-effort\n }\n const { protocolHash } = await describeInfo();\n const info: DispatchInfo = {\n method: methodName,\n methodType,\n serverId,\n requestId,\n protocol: protocol.name,\n protocolHash,\n protocolVersion,\n kind: TransportKind.UNIX,\n principal: \"\",\n authDomain: \"\",\n authenticated: false,\n remoteAddr: \"\",\n requestData,\n };\n const stats: CallStatistics = {\n inputBatches: 0,\n outputBatches: 0,\n inputRows: 0,\n outputRows: 0,\n inputBytes: 0,\n outputBytes: 0,\n };\n\n const token = dispatchHook?.onDispatchStart(info);\n let dispatchError: Error | undefined;\n applyDefaults(params, method.defaults);\n try {\n if (method.type === MethodType.UNARY) {\n await dispatchUnary(method, params, writer, serverId, requestId, externalConfig, TransportKind.UNIX);\n } else {\n await dispatchStream(method, params, writer, reader, serverId, requestId, externalConfig, TransportKind.UNIX);\n }\n } catch (e) {\n dispatchError = e instanceof Error ? e : new Error(String(e));\n throw e;\n } finally {\n dispatchHook?.onDispatchEnd(token, info, stats, dispatchError);\n }\n }\n\n // bind + listen\n await new Promise<void>((resolve, reject) => {\n server.listen({ path: sockPath, backlog }, () => resolve());\n server.once(\"error\", (err) => reject(err));\n });\n\n // Set a tight mode on the bound socket so peers from other UIDs can't\n // even initiate a connection.\n try {\n const { chmodSync } = await import(\"node:fs\");\n chmodSync(sockPath, 0o600);\n } catch {\n // best-effort — operator-managed dirs may already be 0700\n }\n\n options.onBound?.(sockPath);\n // Cross-language launcher contract: announce on stdout.\n announcementSink.write(`UNIX:${sockPath}\\n`);\n\n // Start the idle timer with a startup grace window.\n if (idleTimeoutS > 0) {\n setTimeout(() => {\n if (activeConnections === 0 && !stopped) armIdleTimer();\n }, startupGraceS * 1000).unref?.();\n }\n\n return {\n socketPath: sockPath,\n stop: shutdown,\n done,\n };\n}\n"
60
60
  ],
61
- "mappings": "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KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,M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",
62
- "debugId": "03000096478B827564756E2164756E21",
61
+ "mappings": "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KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,M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",
62
+ "debugId": "4D9D32B49233679B64756E2164756E21",
63
63
  "names": []
64
64
  }