@synnaxlabs/client 0.22.1 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +7 -6
- package/dist/auth/auth.d.ts.map +1 -1
- package/dist/channel/client.d.ts +14 -4
- package/dist/channel/client.d.ts.map +1 -1
- package/dist/channel/creator.d.ts +1 -1
- package/dist/channel/creator.d.ts.map +1 -1
- package/dist/channel/external.d.ts +1 -1
- package/dist/channel/external.d.ts.map +1 -1
- package/dist/channel/payload.d.ts +21 -8
- package/dist/channel/payload.d.ts.map +1 -1
- package/dist/channel/retriever.d.ts +6 -6
- package/dist/channel/retriever.d.ts.map +1 -1
- package/dist/channel/writer.d.ts +13 -1
- package/dist/channel/writer.d.ts.map +1 -1
- package/dist/client.cjs +17 -18
- package/dist/client.d.ts +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5487 -13615
- package/dist/connection/checker.d.ts +4 -4
- package/dist/control/client.d.ts +9 -0
- package/dist/control/client.d.ts.map +1 -0
- package/dist/control/external.d.ts +1 -1
- package/dist/control/external.d.ts.map +1 -1
- package/dist/control/state.d.ts +17 -52
- package/dist/control/state.d.ts.map +1 -1
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/framer/adapter.d.ts +1 -1
- package/dist/framer/adapter.d.ts.map +1 -1
- package/dist/framer/client.d.ts +7 -5
- package/dist/framer/client.d.ts.map +1 -1
- package/dist/framer/deleter.d.ts +68 -0
- package/dist/framer/deleter.d.ts.map +1 -0
- package/dist/framer/deleter.spec.d.ts +2 -0
- package/dist/framer/deleter.spec.d.ts.map +1 -0
- package/dist/framer/frame.d.ts +45 -241
- package/dist/framer/frame.d.ts.map +1 -1
- package/dist/framer/iterator.d.ts +1 -1
- package/dist/framer/iterator.d.ts.map +1 -1
- package/dist/framer/streamProxy.d.ts.map +1 -1
- package/dist/framer/streamer.d.ts.map +1 -1
- package/dist/framer/writer.d.ts +86 -231
- package/dist/framer/writer.d.ts.map +1 -1
- package/dist/hardware/device/client.d.ts +9 -7
- package/dist/hardware/device/client.d.ts.map +1 -1
- package/dist/hardware/task/client.d.ts +17 -14
- package/dist/hardware/task/client.d.ts.map +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/label/client.d.ts.map +1 -1
- package/dist/label/external.d.ts +2 -2
- package/dist/label/external.d.ts.map +1 -1
- package/dist/label/writer.d.ts +4 -2
- package/dist/label/writer.d.ts.map +1 -1
- package/dist/ontology/client.d.ts +8 -8
- package/dist/ontology/client.d.ts.map +1 -1
- package/dist/ontology/group/client.d.ts +1 -1
- package/dist/ontology/group/client.d.ts.map +1 -1
- package/dist/ontology/group/external.d.ts +1 -1
- package/dist/ontology/group/external.d.ts.map +1 -1
- package/dist/ontology/group/writer.d.ts +1 -1
- package/dist/ontology/group/writer.d.ts.map +1 -1
- package/dist/ontology/payload.d.ts +14 -26
- package/dist/ontology/payload.d.ts.map +1 -1
- package/dist/ontology/writer.d.ts.map +1 -1
- package/dist/ranger/active.d.ts +1 -1
- package/dist/ranger/active.d.ts.map +1 -1
- package/dist/ranger/alias.d.ts.map +1 -1
- package/dist/ranger/client.d.ts +16 -100
- package/dist/ranger/client.d.ts.map +1 -1
- package/dist/ranger/external.d.ts +2 -2
- package/dist/ranger/external.d.ts.map +1 -1
- package/dist/ranger/kv.d.ts.map +1 -1
- package/dist/ranger/payload.d.ts +34 -270
- package/dist/ranger/payload.d.ts.map +1 -1
- package/dist/ranger/range.d.ts +1 -1
- package/dist/ranger/range.d.ts.map +1 -1
- package/dist/ranger/writer.d.ts.map +1 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/util/retrieve.d.ts.map +1 -1
- package/dist/util/zod.d.ts.map +1 -1
- package/dist/workspace/client.d.ts.map +1 -1
- package/dist/workspace/external.d.ts +1 -1
- package/dist/workspace/external.d.ts.map +1 -1
- package/dist/workspace/lineplot/client.d.ts +1 -1
- package/dist/workspace/lineplot/client.d.ts.map +1 -1
- package/dist/workspace/lineplot/external.d.ts +1 -1
- package/dist/workspace/lineplot/external.d.ts.map +1 -1
- package/dist/workspace/lineplot/payload.d.ts +2 -2
- package/dist/workspace/lineplot/retriever.d.ts.map +1 -1
- package/dist/workspace/lineplot/writer.d.ts +4 -4
- package/dist/workspace/lineplot/writer.d.ts.map +1 -1
- package/dist/workspace/payload.d.ts +6 -4
- package/dist/workspace/payload.d.ts.map +1 -1
- package/dist/workspace/retriever.d.ts.map +1 -1
- package/dist/workspace/schematic/client.d.ts.map +1 -1
- package/dist/workspace/schematic/external.d.ts +1 -1
- package/dist/workspace/schematic/external.d.ts.map +1 -1
- package/dist/workspace/schematic/payload.d.ts +2 -2
- package/dist/workspace/schematic/retriever.d.ts +1 -1
- package/dist/workspace/schematic/retriever.d.ts.map +1 -1
- package/dist/workspace/schematic/writer.d.ts +4 -4
- package/dist/workspace/schematic/writer.d.ts.map +1 -1
- package/dist/workspace/writer.d.ts +7 -5
- package/dist/workspace/writer.d.ts.map +1 -1
- package/eslint.config.js +12 -0
- package/examples/node/basicReadWrite.js +11 -2
- package/examples/node/liveStream.js +13 -4
- package/examples/node/seriesAndFrames.js +12 -3
- package/examples/node/streamWrite.js +15 -6
- package/package.json +11 -8
- package/src/auth/auth.spec.ts +7 -6
- package/src/auth/auth.ts +17 -13
- package/src/auth/index.ts +1 -1
- package/src/channel/batchRetriever.spec.ts +16 -5
- package/src/channel/channel.spec.ts +42 -4
- package/src/channel/client.ts +26 -9
- package/src/channel/creator.ts +2 -2
- package/src/channel/external.ts +2 -2
- package/src/channel/index.ts +1 -1
- package/src/channel/payload.ts +3 -1
- package/src/channel/retriever.ts +6 -4
- package/src/channel/writer.ts +23 -4
- package/src/client.ts +5 -3
- package/src/connection/checker.ts +1 -1
- package/src/connection/connection.spec.ts +1 -1
- package/src/connection/index.ts +1 -1
- package/src/control/client.ts +17 -0
- package/src/control/external.ts +2 -2
- package/src/control/index.ts +1 -1
- package/src/control/state.spec.ts +2 -3
- package/src/control/state.ts +20 -84
- package/src/errors.ts +18 -7
- package/src/framer/adapter.spec.ts +9 -0
- package/src/framer/adapter.ts +3 -3
- package/src/framer/client.spec.ts +1 -1
- package/src/framer/client.ts +30 -12
- package/src/framer/deleter.spec.ts +129 -0
- package/src/framer/deleter.ts +49 -0
- package/src/framer/external.ts +1 -1
- package/src/framer/frame.spec.ts +1 -1
- package/src/framer/frame.ts +14 -14
- package/src/framer/index.ts +1 -1
- package/src/framer/iterator.spec.ts +2 -2
- package/src/framer/iterator.ts +2 -2
- package/src/framer/streamProxy.ts +2 -4
- package/src/framer/streamer.spec.ts +2 -2
- package/src/framer/streamer.ts +6 -5
- package/src/framer/writer.spec.ts +18 -1
- package/src/framer/writer.ts +19 -27
- package/src/hardware/device/client.ts +2 -2
- package/src/hardware/device/index.ts +1 -1
- package/src/hardware/external.ts +1 -1
- package/src/hardware/index.ts +1 -1
- package/src/hardware/rack/rack.spec.ts +1 -1
- package/src/hardware/task/client.ts +3 -3
- package/src/hardware/task/task.spec.ts +2 -2
- package/src/index.ts +26 -25
- package/src/label/client.ts +2 -2
- package/src/label/external.ts +3 -3
- package/src/label/index.ts +1 -1
- package/src/label/label.spec.ts +1 -1
- package/src/label/payload.ts +1 -1
- package/src/label/retriever.ts +1 -1
- package/src/label/writer.ts +1 -1
- package/src/ontology/client.ts +7 -7
- package/src/ontology/external.ts +1 -1
- package/src/ontology/group/client.ts +3 -3
- package/src/ontology/group/external.ts +2 -2
- package/src/ontology/group/group.spec.ts +2 -2
- package/src/ontology/group/group.ts +1 -1
- package/src/ontology/group/index.ts +1 -1
- package/src/ontology/group/payload.ts +1 -1
- package/src/ontology/group/writer.ts +22 -6
- package/src/ontology/index.ts +1 -1
- package/src/ontology/ontology.spec.ts +2 -2
- package/src/ontology/payload.ts +3 -3
- package/src/ontology/writer.ts +2 -2
- package/src/ranger/active.ts +2 -2
- package/src/ranger/alias.ts +2 -2
- package/src/ranger/client.ts +15 -16
- package/src/ranger/external.ts +3 -3
- package/src/ranger/index.ts +1 -1
- package/src/ranger/kv.ts +2 -2
- package/src/ranger/payload.ts +1 -1
- package/src/ranger/range.ts +2 -2
- package/src/ranger/ranger.spec.ts +1 -1
- package/src/ranger/writer.ts +3 -3
- package/src/setupspecs.ts +1 -1
- package/src/signals/external.ts +1 -1
- package/src/signals/index.ts +1 -1
- package/src/signals/observable.ts +1 -1
- package/src/transport.ts +2 -2
- package/src/user/index.ts +1 -1
- package/src/user/payload.ts +1 -1
- package/src/util/retrieve.spec.ts +1 -1
- package/src/util/retrieve.ts +1 -1
- package/src/util/telem.ts +1 -1
- package/src/util/zod.ts +9 -0
- package/src/vite-env.d.ts +2 -2
- package/src/workspace/client.ts +2 -2
- package/src/workspace/external.ts +2 -2
- package/src/workspace/index.ts +1 -1
- package/src/workspace/lineplot/client.ts +2 -2
- package/src/workspace/lineplot/external.ts +2 -2
- package/src/workspace/lineplot/index.ts +1 -1
- package/src/workspace/lineplot/linePlot.spec.ts +2 -2
- package/src/workspace/lineplot/payload.ts +1 -1
- package/src/workspace/lineplot/retriever.ts +4 -10
- package/src/workspace/lineplot/writer.ts +4 -4
- package/src/workspace/payload.ts +3 -6
- package/src/workspace/retriever.ts +4 -8
- package/src/workspace/schematic/client.ts +2 -2
- package/src/workspace/schematic/external.ts +2 -2
- package/src/workspace/schematic/index.ts +1 -1
- package/src/workspace/schematic/payload.ts +1 -1
- package/src/workspace/schematic/retriever.ts +17 -18
- package/src/workspace/schematic/schematic.spec.ts +2 -2
- package/src/workspace/schematic/writer.ts +5 -5
- package/src/workspace/workspace.spec.ts +2 -2
- package/src/workspace/writer.ts +3 -3
- package/vite.config.ts +3 -4
- package/.eslintrc.cjs +0 -18
- package/dist/client.cjs.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/control/authority.d.ts +0 -8
- package/dist/control/authority.d.ts.map +0 -1
- package/src/control/authority.ts +0 -26
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../../../freighter/ts/dist/freighter.js","../../../x/ts/dist/index-GKyuv4Un.js","../../../x/ts/dist/index-Bcm6lEr8.js","../../../x/ts/dist/index-DGl1HeGK.js","../../../x/ts/dist/base-BFiX58sV.js","../../../x/ts/dist/index-j0nI5Ulm.js","../../../x/ts/dist/index-ClwaLrxu.js","../../../x/ts/dist/index-DDN3mTB_.js","../../../x/ts/dist/index-DCtHmiqr.js","../../../x/ts/dist/dimensions.js","../../../x/ts/dist/index-Cx2GASyR.js","../../../x/ts/dist/telem.js","../src/channel/payload.ts","../src/channel/writer.ts","../../../x/ts/dist/toArray.js","../../../x/ts/dist/debounce.js","../../../node_modules/.pnpm/async-mutex@0.5.0/node_modules/async-mutex/index.mjs","../src/errors.ts","../../../x/ts/dist/record.js","../../../x/ts/dist/identity.js","../../../x/ts/dist/runtime.js","../../../x/ts/dist/unique.js","../../../x/ts/dist/url.js","../../../x/ts/dist/binary.js","../../../x/ts/dist/observe.js","../../../x/ts/dist/index.js","../src/util/retrieve.ts","../src/util/zod.ts","../src/channel/retriever.ts","../src/channel/client.ts","../src/user/payload.ts","../src/auth/auth.ts","../src/connection/checker.ts","../src/framer/frame.ts","../src/framer/adapter.ts","../src/framer/streamProxy.ts","../src/framer/iterator.ts","../src/framer/streamer.ts","../src/control/authority.ts","../src/control/state.ts","../src/framer/writer.ts","../src/framer/client.ts","../src/hardware/client.ts","../src/hardware/rack/client.ts","../src/signals/observable.ts","../src/hardware/device/client.ts","../../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/index.browser.js","../src/hardware/task/client.ts","../src/ontology/group/group.ts","../src/ontology/group/payload.ts","../src/ontology/payload.ts","../src/ontology/group/writer.ts","../src/ontology/group/client.ts","../src/ontology/writer.ts","../src/ontology/client.ts","../src/label/payload.ts","../src/label/retriever.ts","../src/label/writer.ts","../src/label/client.ts","../src/ranger/payload.ts","../src/ranger/active.ts","../src/ranger/alias.ts","../src/ranger/kv.ts","../src/ranger/range.ts","../src/ranger/client.ts","../src/ranger/writer.ts","../src/transport.ts","../src/workspace/payload.ts","../src/workspace/lineplot/payload.ts","../src/workspace/lineplot/retriever.ts","../src/workspace/lineplot/writer.ts","../src/workspace/lineplot/client.ts","../src/workspace/schematic/payload.ts","../src/workspace/schematic/retriever.ts","../src/workspace/schematic/writer.ts","../src/workspace/schematic/client.ts","../src/workspace/retriever.ts","../src/workspace/writer.ts","../src/workspace/client.ts","../src/client.ts"],"sourcesContent":["var ps = Object.defineProperty;\nvar ms = (r, e, t) => e in r ? ps(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;\nvar U = (r, e, t) => (ms(r, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nvar Q = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, A = {}, lr = {};\nObject.defineProperty(lr, \"__esModule\", { value: !0 });\nfunction ys(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/[^A-Za-z0-9]+/g, \"$\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"$\" + n;\n }).toLowerCase().replace(/(\\$)(\\w)/g, function(e, t, n) {\n return n.toUpperCase();\n }) : \"\";\n}\nlr.default = ys;\nvar hr = {};\nObject.defineProperty(hr, \"__esModule\", { value: !0 });\nfunction vs(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"_\" + n.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"_\").toLowerCase() : \"\";\n}\nhr.default = vs;\nvar fr = {};\nObject.defineProperty(fr, \"__esModule\", { value: !0 });\nfunction gs(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"$\").replace(/[^A-Za-z0-9]+/g, \"$\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"$\" + n;\n }).toLowerCase().replace(/(\\$)(\\w?)/g, function(e, t, n) {\n return n.toUpperCase();\n }) : \"\";\n}\nfr.default = gs;\nvar zr = {};\nObject.defineProperty(zr, \"__esModule\", { value: !0 });\nfunction _s(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"_\" + n.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \".\").toLowerCase() : \"\";\n}\nzr.default = _s;\nvar Br = {};\nObject.defineProperty(Br, \"__esModule\", { value: !0 });\nfunction bs(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"_\" + n.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"/\").toLowerCase() : \"\";\n}\nBr.default = bs;\nvar Vr = {};\nObject.defineProperty(Vr, \"__esModule\", { value: !0 });\nfunction ws(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"_\" + n.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase() : \"\";\n}\nVr.default = ws;\nvar Yr = {};\nObject.defineProperty(Yr, \"__esModule\", { value: !0 });\nfunction xs(r) {\n if (r === void 0 && (r = \"\"), !r)\n return \"\";\n var e = String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(t, n, s) {\n return n + \"_\" + s.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase();\n return e.charAt(0).toUpperCase() + e.slice(1);\n}\nYr.default = xs;\nvar Kr = {};\nObject.defineProperty(Kr, \"__esModule\", { value: !0 });\nfunction Ts(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"_\" + n.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase().replace(/( ?)(\\w+)( ?)/g, function(e, t, n, s) {\n return t + n.charAt(0).toUpperCase() + n.slice(1) + s;\n }) : \"\";\n}\nKr.default = Ts;\nvar pr = {};\nObject.defineProperty(pr, \"__esModule\", { value: !0 });\nfunction Os(r) {\n return r === void 0 && (r = \"\"), r ? String(r).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, t, n) {\n return t + \"_\" + n.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"-\").toLowerCase() : \"\";\n}\npr.default = Os;\nvar Wr = {}, Ke = {};\n(function(r) {\n Object.defineProperty(r, \"__esModule\", { value: !0 }), r.belongToTypes = r.isValidObject = r.isArrayObject = r.validateOptions = r.DefaultOption = void 0, r.DefaultOption = {\n recursive: !1,\n recursiveInArray: !1,\n keepTypesOnRecursion: []\n }, r.validateOptions = function(e) {\n return e === void 0 && (e = r.DefaultOption), e.recursive == null ? e = r.DefaultOption : e.recursiveInArray == null && (e.recursiveInArray = !1), e;\n }, r.isArrayObject = function(e) {\n return e != null && Array.isArray(e);\n }, r.isValidObject = function(e) {\n return e != null && typeof e == \"object\" && !Array.isArray(e);\n }, r.belongToTypes = function(e, t) {\n return (t || []).some(function(n) {\n return e instanceof n;\n });\n };\n})(Ke);\nvar ks = Q && Q.__spreadArrays || function() {\n for (var r = 0, e = 0, t = arguments.length; e < t; e++)\n r += arguments[e].length;\n for (var n = Array(r), s = 0, e = 0; e < t; e++)\n for (var a = arguments[e], i = 0, o = a.length; i < o; i++, s++)\n n[s] = a[i];\n return n;\n};\nObject.defineProperty(Wr, \"__esModule\", { value: !0 });\nvar fe = Ke;\nfunction At(r, e) {\n if (e === void 0 && (e = fe.DefaultOption), !fe.isValidObject(r))\n return null;\n e = fe.validateOptions(e);\n var t = {};\n return Object.keys(r).forEach(function(n) {\n var s = r[n], a = n.toLowerCase();\n e.recursive && (fe.isValidObject(s) ? fe.belongToTypes(s, e.keepTypesOnRecursion) || (s = At(s, e)) : e.recursiveInArray && fe.isArrayObject(s) && (s = ks(s).map(function(i) {\n var o = i;\n if (fe.isValidObject(i))\n fe.belongToTypes(o, e.keepTypesOnRecursion) || (o = At(i, e));\n else if (fe.isArrayObject(i)) {\n var u = At({ key: i }, e);\n o = u.key;\n }\n return o;\n }))), t[a] = s;\n }), t;\n}\nWr.default = At;\nvar qr = {}, Ss = Q && Q.__spreadArrays || function() {\n for (var r = 0, e = 0, t = arguments.length; e < t; e++)\n r += arguments[e].length;\n for (var n = Array(r), s = 0, e = 0; e < t; e++)\n for (var a = arguments[e], i = 0, o = a.length; i < o; i++, s++)\n n[s] = a[i];\n return n;\n};\nObject.defineProperty(qr, \"__esModule\", { value: !0 });\nvar pe = Ke;\nfunction $t(r, e) {\n if (e === void 0 && (e = pe.DefaultOption), !pe.isValidObject(r))\n return null;\n e = pe.validateOptions(e);\n var t = {};\n return Object.keys(r).forEach(function(n) {\n var s = r[n], a = n.toUpperCase();\n e.recursive && (pe.isValidObject(s) ? pe.belongToTypes(s, e.keepTypesOnRecursion) || (s = $t(s, e)) : e.recursiveInArray && pe.isArrayObject(s) && (s = Ss(s).map(function(i) {\n var o = i;\n if (pe.isValidObject(i))\n pe.belongToTypes(o, e.keepTypesOnRecursion) || (o = $t(i, e));\n else if (pe.isArrayObject(i)) {\n var u = $t({ key: i }, e);\n o = u.key;\n }\n return o;\n }))), t[a] = s;\n }), t;\n}\nqr.default = $t;\nvar Fr = {}, Ns = Q && Q.__spreadArrays || function() {\n for (var r = 0, e = 0, t = arguments.length; e < t; e++)\n r += arguments[e].length;\n for (var n = Array(r), s = 0, e = 0; e < t; e++)\n for (var a = arguments[e], i = 0, o = a.length; i < o; i++, s++)\n n[s] = a[i];\n return n;\n};\nObject.defineProperty(Fr, \"__esModule\", { value: !0 });\nvar me = Ke, Is = lr;\nfunction jt(r, e) {\n if (e === void 0 && (e = me.DefaultOption), !me.isValidObject(r))\n return null;\n e = me.validateOptions(e);\n var t = {};\n return Object.keys(r).forEach(function(n) {\n var s = r[n], a = Is.default(n);\n e.recursive && (me.isValidObject(s) ? me.belongToTypes(s, e.keepTypesOnRecursion) || (s = jt(s, e)) : e.recursiveInArray && me.isArrayObject(s) && (s = Ns(s).map(function(i) {\n var o = i;\n if (me.isValidObject(i))\n me.belongToTypes(o, e.keepTypesOnRecursion) || (o = jt(i, e));\n else if (me.isArrayObject(i)) {\n var u = jt({ key: i }, e);\n o = u.key;\n }\n return o;\n }))), t[a] = s;\n }), t;\n}\nFr.default = jt;\nvar Gr = {}, Zs = Q && Q.__spreadArrays || function() {\n for (var r = 0, e = 0, t = arguments.length; e < t; e++)\n r += arguments[e].length;\n for (var n = Array(r), s = 0, e = 0; e < t; e++)\n for (var a = arguments[e], i = 0, o = a.length; i < o; i++, s++)\n n[s] = a[i];\n return n;\n};\nObject.defineProperty(Gr, \"__esModule\", { value: !0 });\nvar ye = Ke, Es = hr;\nfunction Rt(r, e) {\n if (e === void 0 && (e = ye.DefaultOption), !ye.isValidObject(r))\n return null;\n e = ye.validateOptions(e);\n var t = {};\n return Object.keys(r).forEach(function(n) {\n var s = r[n], a = Es.default(n);\n e.recursive && (ye.isValidObject(s) ? ye.belongToTypes(s, e.keepTypesOnRecursion) || (s = Rt(s, e)) : e.recursiveInArray && ye.isArrayObject(s) && (s = Zs(s).map(function(i) {\n var o = i;\n if (ye.isValidObject(i))\n ye.belongToTypes(o, e.keepTypesOnRecursion) || (o = Rt(i, e));\n else if (ye.isArrayObject(i)) {\n var u = Rt({ key: i }, e);\n o = u.key;\n }\n return o;\n }))), t[a] = s;\n }), t;\n}\nGr.default = Rt;\nvar Hr = {}, Cs = Q && Q.__spreadArrays || function() {\n for (var r = 0, e = 0, t = arguments.length; e < t; e++)\n r += arguments[e].length;\n for (var n = Array(r), s = 0, e = 0; e < t; e++)\n for (var a = arguments[e], i = 0, o = a.length; i < o; i++, s++)\n n[s] = a[i];\n return n;\n};\nObject.defineProperty(Hr, \"__esModule\", { value: !0 });\nvar ve = Ke, As = fr;\nfunction Mt(r, e) {\n if (e === void 0 && (e = ve.DefaultOption), !ve.isValidObject(r))\n return null;\n e = ve.validateOptions(e);\n var t = {};\n return Object.keys(r).forEach(function(n) {\n var s = r[n], a = As.default(n);\n e.recursive && (ve.isValidObject(s) ? ve.belongToTypes(s, e.keepTypesOnRecursion) || (s = Mt(s, e)) : e.recursiveInArray && ve.isArrayObject(s) && (s = Cs(s).map(function(i) {\n var o = i;\n if (ve.isValidObject(i))\n ve.belongToTypes(o, e.keepTypesOnRecursion) || (o = Mt(i, e));\n else if (ve.isArrayObject(i)) {\n var u = Mt({ key: i }, e);\n o = u.key;\n }\n return o;\n }))), t[a] = s;\n }), t;\n}\nHr.default = Mt;\nvar Jr = {}, $s = Q && Q.__spreadArrays || function() {\n for (var r = 0, e = 0, t = arguments.length; e < t; e++)\n r += arguments[e].length;\n for (var n = Array(r), s = 0, e = 0; e < t; e++)\n for (var a = arguments[e], i = 0, o = a.length; i < o; i++, s++)\n n[s] = a[i];\n return n;\n};\nObject.defineProperty(Jr, \"__esModule\", { value: !0 });\nvar ge = Ke, js = pr;\nfunction Pt(r, e) {\n if (e === void 0 && (e = ge.DefaultOption), !ge.isValidObject(r))\n return null;\n e = ge.validateOptions(e);\n var t = {};\n return Object.keys(r).forEach(function(n) {\n var s = r[n], a = js.default(n);\n e.recursive && (ge.isValidObject(s) ? ge.belongToTypes(s, e.keepTypesOnRecursion) || (s = Pt(s, e)) : e.recursiveInArray && ge.isArrayObject(s) && (s = $s(s).map(function(i) {\n var o = i;\n if (ge.isValidObject(i))\n ge.belongToTypes(o, e.keepTypesOnRecursion) || (o = Pt(i, e));\n else if (ge.isArrayObject(i)) {\n var u = Pt({ key: i }, e);\n o = u.key;\n }\n return o;\n }))), t[a] = s;\n }), t;\n}\nJr.default = Pt;\nObject.defineProperty(A, \"__esModule\", { value: !0 });\nA.kebabKeys = A.pascalKeys = A.snakeKeys = A.camelKeys = A.upperKeys = A.lowerKeys = A.toLowerCase = A.toUpperCase = A.toKebabCase = A.toHeaderCase = A.toSentenceCase = A.toTextCase = A.toPathCase = A.toDotCase = A.toPascalCase = A.toSnakeCase = A.toCamelCase = void 0;\nvar mn = lr;\nA.toCamelCase = mn.default;\nvar yn = hr;\nA.toSnakeCase = yn.default;\nvar vn = fr;\nA.toPascalCase = vn.default;\nvar gn = zr;\nA.toDotCase = gn.default;\nvar _n = Br;\nA.toPathCase = _n.default;\nvar bn = Vr;\nA.toTextCase = bn.default;\nvar wn = Yr;\nA.toSentenceCase = wn.default;\nvar xn = Kr;\nA.toHeaderCase = xn.default;\nvar Tn = pr;\nA.toKebabCase = Tn.default;\nvar On = Wr;\nA.lowerKeys = On.default;\nvar kn = qr;\nA.upperKeys = kn.default;\nvar Sn = Fr;\nA.camelKeys = Sn.default;\nvar Nn = Gr;\nA.snakeKeys = Nn.default;\nvar In = Hr;\nA.pascalKeys = In.default;\nvar Zn = Jr;\nA.kebabKeys = Zn.default;\nvar En = function(r) {\n return String(r || \"\").toLowerCase();\n};\nA.toLowerCase = En;\nvar Cn = function(r) {\n return String(r || \"\").toUpperCase();\n};\nA.toUpperCase = Cn;\nvar Rs = {\n toCamelCase: mn.default,\n toSnakeCase: yn.default,\n toPascalCase: vn.default,\n toDotCase: gn.default,\n toPathCase: _n.default,\n toTextCase: bn.default,\n toSentenceCase: wn.default,\n toHeaderCase: xn.default,\n toKebabCase: Tn.default,\n toUpperCase: Cn,\n toLowerCase: En,\n lowerKeys: On.default,\n upperKeys: kn.default,\n camelKeys: Sn.default,\n snakeKeys: Nn.default,\n pascalKeys: In.default,\n kebabKeys: Zn.default\n};\nA.default = Rs;\nvar An = A;\nconst $n = {\n recursive: !0,\n recursiveInArray: !0,\n keepTypesOnRecursion: [Number, String, Uint8Array]\n}, Ms = (r) => An.snakeKeys(r, $n), Ps = (r) => An.camelKeys(r, $n);\nvar $;\n(function(r) {\n r.assertEqual = (s) => s;\n function e(s) {\n }\n r.assertIs = e;\n function t(s) {\n throw new Error();\n }\n r.assertNever = t, r.arrayToEnum = (s) => {\n const a = {};\n for (const i of s)\n a[i] = i;\n return a;\n }, r.getValidEnumValues = (s) => {\n const a = r.objectKeys(s).filter((o) => typeof s[s[o]] != \"number\"), i = {};\n for (const o of a)\n i[o] = s[o];\n return r.objectValues(i);\n }, r.objectValues = (s) => r.objectKeys(s).map(function(a) {\n return s[a];\n }), r.objectKeys = typeof Object.keys == \"function\" ? (s) => Object.keys(s) : (s) => {\n const a = [];\n for (const i in s)\n Object.prototype.hasOwnProperty.call(s, i) && a.push(i);\n return a;\n }, r.find = (s, a) => {\n for (const i of s)\n if (a(i))\n return i;\n }, r.isInteger = typeof Number.isInteger == \"function\" ? (s) => Number.isInteger(s) : (s) => typeof s == \"number\" && isFinite(s) && Math.floor(s) === s;\n function n(s, a = \" | \") {\n return s.map((i) => typeof i == \"string\" ? `'${i}'` : i).join(a);\n }\n r.joinValues = n, r.jsonStringifyReplacer = (s, a) => typeof a == \"bigint\" ? a.toString() : a;\n})($ || ($ = {}));\nvar Ir;\n(function(r) {\n r.mergeShapes = (e, t) => ({\n ...e,\n ...t\n // second overwrites first\n });\n})(Ir || (Ir = {}));\nconst y = $.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]), Se = (r) => {\n switch (typeof r) {\n case \"undefined\":\n return y.undefined;\n case \"string\":\n return y.string;\n case \"number\":\n return isNaN(r) ? y.nan : y.number;\n case \"boolean\":\n return y.boolean;\n case \"function\":\n return y.function;\n case \"bigint\":\n return y.bigint;\n case \"symbol\":\n return y.symbol;\n case \"object\":\n return Array.isArray(r) ? y.array : r === null ? y.null : r.then && typeof r.then == \"function\" && r.catch && typeof r.catch == \"function\" ? y.promise : typeof Map < \"u\" && r instanceof Map ? y.map : typeof Set < \"u\" && r instanceof Set ? y.set : typeof Date < \"u\" && r instanceof Date ? y.date : y.object;\n default:\n return y.unknown;\n }\n}, h = $.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]), Us = (r) => JSON.stringify(r, null, 2).replace(/\"([^\"]+)\":/g, \"$1:\");\nclass te extends Error {\n constructor(e) {\n super(), this.issues = [], this.addIssue = (n) => {\n this.issues = [...this.issues, n];\n }, this.addIssues = (n = []) => {\n this.issues = [...this.issues, ...n];\n };\n const t = new.target.prototype;\n Object.setPrototypeOf ? Object.setPrototypeOf(this, t) : this.__proto__ = t, this.name = \"ZodError\", this.issues = e;\n }\n get errors() {\n return this.issues;\n }\n format(e) {\n const t = e || function(a) {\n return a.message;\n }, n = { _errors: [] }, s = (a) => {\n for (const i of a.issues)\n if (i.code === \"invalid_union\")\n i.unionErrors.map(s);\n else if (i.code === \"invalid_return_type\")\n s(i.returnTypeError);\n else if (i.code === \"invalid_arguments\")\n s(i.argumentsError);\n else if (i.path.length === 0)\n n._errors.push(t(i));\n else {\n let o = n, u = 0;\n for (; u < i.path.length; ) {\n const c = i.path[u];\n u === i.path.length - 1 ? (o[c] = o[c] || { _errors: [] }, o[c]._errors.push(t(i))) : o[c] = o[c] || { _errors: [] }, o = o[c], u++;\n }\n }\n };\n return s(this), n;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, $.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(e = (t) => t.message) {\n const t = {}, n = [];\n for (const s of this.issues)\n s.path.length > 0 ? (t[s.path[0]] = t[s.path[0]] || [], t[s.path[0]].push(e(s))) : n.push(e(s));\n return { formErrors: n, fieldErrors: t };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nte.create = (r) => new te(r);\nconst st = (r, e) => {\n let t;\n switch (r.code) {\n case h.invalid_type:\n r.received === y.undefined ? t = \"Required\" : t = `Expected ${r.expected}, received ${r.received}`;\n break;\n case h.invalid_literal:\n t = `Invalid literal value, expected ${JSON.stringify(r.expected, $.jsonStringifyReplacer)}`;\n break;\n case h.unrecognized_keys:\n t = `Unrecognized key(s) in object: ${$.joinValues(r.keys, \", \")}`;\n break;\n case h.invalid_union:\n t = \"Invalid input\";\n break;\n case h.invalid_union_discriminator:\n t = `Invalid discriminator value. Expected ${$.joinValues(r.options)}`;\n break;\n case h.invalid_enum_value:\n t = `Invalid enum value. Expected ${$.joinValues(r.options)}, received '${r.received}'`;\n break;\n case h.invalid_arguments:\n t = \"Invalid function arguments\";\n break;\n case h.invalid_return_type:\n t = \"Invalid function return type\";\n break;\n case h.invalid_date:\n t = \"Invalid date\";\n break;\n case h.invalid_string:\n typeof r.validation == \"object\" ? \"includes\" in r.validation ? (t = `Invalid input: must include \"${r.validation.includes}\"`, typeof r.validation.position == \"number\" && (t = `${t} at one or more positions greater than or equal to ${r.validation.position}`)) : \"startsWith\" in r.validation ? t = `Invalid input: must start with \"${r.validation.startsWith}\"` : \"endsWith\" in r.validation ? t = `Invalid input: must end with \"${r.validation.endsWith}\"` : $.assertNever(r.validation) : r.validation !== \"regex\" ? t = `Invalid ${r.validation}` : t = \"Invalid\";\n break;\n case h.too_small:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"more than\"} ${r.minimum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"over\"} ${r.minimum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${r.minimum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${new Date(Number(r.minimum))}` : t = \"Invalid input\";\n break;\n case h.too_big:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"less than\"} ${r.maximum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"under\"} ${r.maximum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"bigint\" ? t = `BigInt must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly\" : r.inclusive ? \"smaller than or equal to\" : \"smaller than\"} ${new Date(Number(r.maximum))}` : t = \"Invalid input\";\n break;\n case h.custom:\n t = \"Invalid input\";\n break;\n case h.invalid_intersection_types:\n t = \"Intersection results could not be merged\";\n break;\n case h.not_multiple_of:\n t = `Number must be a multiple of ${r.multipleOf}`;\n break;\n case h.not_finite:\n t = \"Number must be finite\";\n break;\n default:\n t = e.defaultError, $.assertNever(r);\n }\n return { message: t };\n};\nlet jn = st;\nfunction Ds(r) {\n jn = r;\n}\nfunction Yt() {\n return jn;\n}\nconst Kt = (r) => {\n const { data: e, path: t, errorMaps: n, issueData: s } = r, a = [...t, ...s.path || []], i = {\n ...s,\n path: a\n };\n let o = \"\";\n const u = n.filter((c) => !!c).slice().reverse();\n for (const c of u)\n o = c(i, { data: e, defaultError: o }).message;\n return {\n ...s,\n path: a,\n message: s.message || o\n };\n}, Ls = [];\nfunction g(r, e) {\n const t = Kt({\n issueData: e,\n data: r.data,\n path: r.path,\n errorMaps: [\n r.common.contextualErrorMap,\n r.schemaErrorMap,\n Yt(),\n st\n // then global default map\n ].filter((n) => !!n)\n });\n r.common.issues.push(t);\n}\nclass q {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n this.value === \"valid\" && (this.value = \"dirty\");\n }\n abort() {\n this.value !== \"aborted\" && (this.value = \"aborted\");\n }\n static mergeArray(e, t) {\n const n = [];\n for (const s of t) {\n if (s.status === \"aborted\")\n return S;\n s.status === \"dirty\" && e.dirty(), n.push(s.value);\n }\n return { status: e.value, value: n };\n }\n static async mergeObjectAsync(e, t) {\n const n = [];\n for (const s of t)\n n.push({\n key: await s.key,\n value: await s.value\n });\n return q.mergeObjectSync(e, n);\n }\n static mergeObjectSync(e, t) {\n const n = {};\n for (const s of t) {\n const { key: a, value: i } = s;\n if (a.status === \"aborted\" || i.status === \"aborted\")\n return S;\n a.status === \"dirty\" && e.dirty(), i.status === \"dirty\" && e.dirty(), a.value !== \"__proto__\" && (typeof i.value < \"u\" || s.alwaysSet) && (n[a.value] = i.value);\n }\n return { status: e.value, value: n };\n }\n}\nconst S = Object.freeze({\n status: \"aborted\"\n}), Rn = (r) => ({ status: \"dirty\", value: r }), H = (r) => ({ status: \"valid\", value: r }), Zr = (r) => r.status === \"aborted\", Er = (r) => r.status === \"dirty\", at = (r) => r.status === \"valid\", Wt = (r) => typeof Promise < \"u\" && r instanceof Promise;\nvar b;\n(function(r) {\n r.errToObj = (e) => typeof e == \"string\" ? { message: e } : e || {}, r.toString = (e) => typeof e == \"string\" ? e : e == null ? void 0 : e.message;\n})(b || (b = {}));\nlet ue = class {\n constructor(e, t, n, s) {\n this._cachedPath = [], this.parent = e, this.data = t, this._path = n, this._key = s;\n }\n get path() {\n return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath;\n }\n};\nconst en = (r, e) => {\n if (at(e))\n return { success: !0, data: e.value };\n if (!r.common.issues.length)\n throw new Error(\"Validation failed but no issues detected.\");\n return {\n success: !1,\n get error() {\n if (this._error)\n return this._error;\n const t = new te(r.common.issues);\n return this._error = t, this._error;\n }\n };\n};\nfunction N(r) {\n if (!r)\n return {};\n const { errorMap: e, invalid_type_error: t, required_error: n, description: s } = r;\n if (e && (t || n))\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n return e ? { errorMap: e, description: s } : { errorMap: (a, i) => a.code !== \"invalid_type\" ? { message: i.defaultError } : typeof i.data > \"u\" ? { message: n ?? i.defaultError } : { message: t ?? i.defaultError }, description: s };\n}\nlet E = class {\n constructor(e) {\n this.spa = this.safeParseAsync, this._def = e, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.readonly = this.readonly.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(e) {\n return Se(e.data);\n }\n _getOrReturnCtx(e, t) {\n return t || {\n common: e.parent.common,\n data: e.data,\n parsedType: Se(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n };\n }\n _processInputParams(e) {\n return {\n status: new q(),\n ctx: {\n common: e.parent.common,\n data: e.data,\n parsedType: Se(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n }\n };\n }\n _parseSync(e) {\n const t = this._parse(e);\n if (Wt(t))\n throw new Error(\"Synchronous parse encountered promise.\");\n return t;\n }\n _parseAsync(e) {\n const t = this._parse(e);\n return Promise.resolve(t);\n }\n parse(e, t) {\n const n = this.safeParse(e, t);\n if (n.success)\n return n.data;\n throw n.error;\n }\n safeParse(e, t) {\n var n;\n const s = {\n common: {\n issues: [],\n async: (n = t == null ? void 0 : t.async) !== null && n !== void 0 ? n : !1,\n contextualErrorMap: t == null ? void 0 : t.errorMap\n },\n path: (t == null ? void 0 : t.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: Se(e)\n }, a = this._parseSync({ data: e, path: s.path, parent: s });\n return en(s, a);\n }\n async parseAsync(e, t) {\n const n = await this.safeParseAsync(e, t);\n if (n.success)\n return n.data;\n throw n.error;\n }\n async safeParseAsync(e, t) {\n const n = {\n common: {\n issues: [],\n contextualErrorMap: t == null ? void 0 : t.errorMap,\n async: !0\n },\n path: (t == null ? void 0 : t.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: Se(e)\n }, s = this._parse({ data: e, path: n.path, parent: n }), a = await (Wt(s) ? s : Promise.resolve(s));\n return en(n, a);\n }\n refine(e, t) {\n const n = (s) => typeof t == \"string\" || typeof t > \"u\" ? { message: t } : typeof t == \"function\" ? t(s) : t;\n return this._refinement((s, a) => {\n const i = e(s), o = () => a.addIssue({\n code: h.custom,\n ...n(s)\n });\n return typeof Promise < \"u\" && i instanceof Promise ? i.then((u) => u ? !0 : (o(), !1)) : i ? !0 : (o(), !1);\n });\n }\n refinement(e, t) {\n return this._refinement((n, s) => e(n) ? !0 : (s.addIssue(typeof t == \"function\" ? t(n, s) : t), !1));\n }\n _refinement(e) {\n return new se({\n schema: this,\n typeName: x.ZodEffects,\n effect: { type: \"refinement\", refinement: e }\n });\n }\n superRefine(e) {\n return this._refinement(e);\n }\n optional() {\n return xe.create(this, this._def);\n }\n nullable() {\n return De.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return Ue.create(this, this._def);\n }\n promise() {\n return Je.create(this, this._def);\n }\n or(e) {\n return ct.create([this, e], this._def);\n }\n and(e) {\n return dt.create(this, e, this._def);\n }\n transform(e) {\n return new se({\n ...N(this._def),\n schema: this,\n typeName: x.ZodEffects,\n effect: { type: \"transform\", transform: e }\n });\n }\n default(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new mt({\n ...N(this._def),\n innerType: this,\n defaultValue: t,\n typeName: x.ZodDefault\n });\n }\n brand() {\n return new Dn({\n typeName: x.ZodBranded,\n type: this,\n ...N(this._def)\n });\n }\n catch(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new Jt({\n ...N(this._def),\n innerType: this,\n catchValue: t,\n typeName: x.ZodCatch\n });\n }\n describe(e) {\n const t = this.constructor;\n return new t({\n ...this._def,\n description: e\n });\n }\n pipe(e) {\n return It.create(this, e);\n }\n readonly() {\n return Qt.create(this);\n }\n isOptional() {\n return this.safeParse(void 0).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n};\nconst zs = /^c[^\\s-]{8,}$/i, Bs = /^[a-z][a-z0-9]*$/, Vs = /^[0-9A-HJKMNP-TV-Z]{26}$/, Ys = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i, Ks = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i, Ws = \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\";\nlet wr;\nconst qs = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/, Fs = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, Gs = (r) => r.precision ? r.offset ? new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${r.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`) : new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${r.precision}}Z$`) : r.precision === 0 ? r.offset ? new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$\") : new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\") : r.offset ? new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$\") : new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$\");\nfunction Hs(r, e) {\n return !!((e === \"v4\" || !e) && qs.test(r) || (e === \"v6\" || !e) && Fs.test(r));\n}\nlet Ge = class tt extends E {\n _parse(e) {\n if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== y.string) {\n const s = this._getOrReturnCtx(e);\n return g(\n s,\n {\n code: h.invalid_type,\n expected: y.string,\n received: s.parsedType\n }\n //\n ), S;\n }\n const t = new q();\n let n;\n for (const s of this._def.checks)\n if (s.kind === \"min\")\n e.data.length < s.value && (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.too_small,\n minimum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"max\")\n e.data.length > s.value && (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.too_big,\n maximum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"length\") {\n const a = e.data.length > s.value, i = e.data.length < s.value;\n (a || i) && (n = this._getOrReturnCtx(e, n), a ? g(n, {\n code: h.too_big,\n maximum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: s.message\n }) : i && g(n, {\n code: h.too_small,\n minimum: s.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: s.message\n }), t.dirty());\n } else if (s.kind === \"email\")\n Ks.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"email\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"emoji\")\n wr || (wr = new RegExp(Ws, \"u\")), wr.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"emoji\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"uuid\")\n Ys.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"uuid\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"cuid\")\n zs.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"cuid\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"cuid2\")\n Bs.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"cuid2\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"ulid\")\n Vs.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"ulid\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty());\n else if (s.kind === \"url\")\n try {\n new URL(e.data);\n } catch {\n n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"url\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty();\n }\n else\n s.kind === \"regex\" ? (s.regex.lastIndex = 0, s.regex.test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"regex\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty())) : s.kind === \"trim\" ? e.data = e.data.trim() : s.kind === \"includes\" ? e.data.includes(s.value, s.position) || (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.invalid_string,\n validation: { includes: s.value, position: s.position },\n message: s.message\n }), t.dirty()) : s.kind === \"toLowerCase\" ? e.data = e.data.toLowerCase() : s.kind === \"toUpperCase\" ? e.data = e.data.toUpperCase() : s.kind === \"startsWith\" ? e.data.startsWith(s.value) || (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.invalid_string,\n validation: { startsWith: s.value },\n message: s.message\n }), t.dirty()) : s.kind === \"endsWith\" ? e.data.endsWith(s.value) || (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.invalid_string,\n validation: { endsWith: s.value },\n message: s.message\n }), t.dirty()) : s.kind === \"datetime\" ? Gs(s).test(e.data) || (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.invalid_string,\n validation: \"datetime\",\n message: s.message\n }), t.dirty()) : s.kind === \"ip\" ? Hs(e.data, s.version) || (n = this._getOrReturnCtx(e, n), g(n, {\n validation: \"ip\",\n code: h.invalid_string,\n message: s.message\n }), t.dirty()) : $.assertNever(s);\n return { status: t.value, value: e.data };\n }\n _regex(e, t, n) {\n return this.refinement((s) => e.test(s), {\n validation: t,\n code: h.invalid_string,\n ...b.errToObj(n)\n });\n }\n _addCheck(e) {\n return new tt({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n email(e) {\n return this._addCheck({ kind: \"email\", ...b.errToObj(e) });\n }\n url(e) {\n return this._addCheck({ kind: \"url\", ...b.errToObj(e) });\n }\n emoji(e) {\n return this._addCheck({ kind: \"emoji\", ...b.errToObj(e) });\n }\n uuid(e) {\n return this._addCheck({ kind: \"uuid\", ...b.errToObj(e) });\n }\n cuid(e) {\n return this._addCheck({ kind: \"cuid\", ...b.errToObj(e) });\n }\n cuid2(e) {\n return this._addCheck({ kind: \"cuid2\", ...b.errToObj(e) });\n }\n ulid(e) {\n return this._addCheck({ kind: \"ulid\", ...b.errToObj(e) });\n }\n ip(e) {\n return this._addCheck({ kind: \"ip\", ...b.errToObj(e) });\n }\n datetime(e) {\n var t;\n return typeof e == \"string\" ? this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: !1,\n message: e\n }) : this._addCheck({\n kind: \"datetime\",\n precision: typeof (e == null ? void 0 : e.precision) > \"u\" ? null : e == null ? void 0 : e.precision,\n offset: (t = e == null ? void 0 : e.offset) !== null && t !== void 0 ? t : !1,\n ...b.errToObj(e == null ? void 0 : e.message)\n });\n }\n regex(e, t) {\n return this._addCheck({\n kind: \"regex\",\n regex: e,\n ...b.errToObj(t)\n });\n }\n includes(e, t) {\n return this._addCheck({\n kind: \"includes\",\n value: e,\n position: t == null ? void 0 : t.position,\n ...b.errToObj(t == null ? void 0 : t.message)\n });\n }\n startsWith(e, t) {\n return this._addCheck({\n kind: \"startsWith\",\n value: e,\n ...b.errToObj(t)\n });\n }\n endsWith(e, t) {\n return this._addCheck({\n kind: \"endsWith\",\n value: e,\n ...b.errToObj(t)\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e,\n ...b.errToObj(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e,\n ...b.errToObj(t)\n });\n }\n length(e, t) {\n return this._addCheck({\n kind: \"length\",\n value: e,\n ...b.errToObj(t)\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(e) {\n return this.min(1, b.errToObj(e));\n }\n trim() {\n return new tt({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new tt({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new tt({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((e) => e.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((e) => e.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((e) => e.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((e) => e.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((e) => e.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((e) => e.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((e) => e.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((e) => e.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((e) => e.kind === \"ip\");\n }\n get minLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n};\nGe.create = (r) => {\n var e;\n return new Ge({\n checks: [],\n typeName: x.ZodString,\n coerce: (e = r == null ? void 0 : r.coerce) !== null && e !== void 0 ? e : !1,\n ...N(r)\n });\n};\nfunction Js(r, e) {\n const t = (r.toString().split(\".\")[1] || \"\").length, n = (e.toString().split(\".\")[1] || \"\").length, s = t > n ? t : n, a = parseInt(r.toFixed(s).replace(\".\", \"\")), i = parseInt(e.toFixed(s).replace(\".\", \"\"));\n return a % i / Math.pow(10, s);\n}\nclass Ie extends E {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== y.number) {\n const s = this._getOrReturnCtx(e);\n return g(s, {\n code: h.invalid_type,\n expected: y.number,\n received: s.parsedType\n }), S;\n }\n let t;\n const n = new q();\n for (const s of this._def.checks)\n s.kind === \"int\" ? $.isInteger(e.data) || (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: s.message\n }), n.dirty()) : s.kind === \"min\" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.too_small,\n minimum: s.value,\n type: \"number\",\n inclusive: s.inclusive,\n exact: !1,\n message: s.message\n }), n.dirty()) : s.kind === \"max\" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.too_big,\n maximum: s.value,\n type: \"number\",\n inclusive: s.inclusive,\n exact: !1,\n message: s.message\n }), n.dirty()) : s.kind === \"multipleOf\" ? Js(e.data, s.value) !== 0 && (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.not_multiple_of,\n multipleOf: s.value,\n message: s.message\n }), n.dirty()) : s.kind === \"finite\" ? Number.isFinite(e.data) || (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.not_finite,\n message: s.message\n }), n.dirty()) : $.assertNever(s);\n return { status: n.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, b.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, b.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, b.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, b.toString(t));\n }\n setLimit(e, t, n, s) {\n return new Ie({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: n,\n message: b.toString(s)\n }\n ]\n });\n }\n _addCheck(e) {\n return new Ie({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n int(e) {\n return this._addCheck({\n kind: \"int\",\n message: b.toString(e)\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !1,\n message: b.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !1,\n message: b.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !0,\n message: b.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !0,\n message: b.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: b.toString(t)\n });\n }\n finite(e) {\n return this._addCheck({\n kind: \"finite\",\n message: b.toString(e)\n });\n }\n safe(e) {\n return this._addCheck({\n kind: \"min\",\n inclusive: !0,\n value: Number.MIN_SAFE_INTEGER,\n message: b.toString(e)\n })._addCheck({\n kind: \"max\",\n inclusive: !0,\n value: Number.MAX_SAFE_INTEGER,\n message: b.toString(e)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n get isInt() {\n return !!this._def.checks.find((e) => e.kind === \"int\" || e.kind === \"multipleOf\" && $.isInteger(e.value));\n }\n get isFinite() {\n let e = null, t = null;\n for (const n of this._def.checks) {\n if (n.kind === \"finite\" || n.kind === \"int\" || n.kind === \"multipleOf\")\n return !0;\n n.kind === \"min\" ? (t === null || n.value > t) && (t = n.value) : n.kind === \"max\" && (e === null || n.value < e) && (e = n.value);\n }\n return Number.isFinite(t) && Number.isFinite(e);\n }\n}\nIe.create = (r) => new Ie({\n checks: [],\n typeName: x.ZodNumber,\n coerce: (r == null ? void 0 : r.coerce) || !1,\n ...N(r)\n});\nclass Ze extends E {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = BigInt(e.data)), this._getType(e) !== y.bigint) {\n const s = this._getOrReturnCtx(e);\n return g(s, {\n code: h.invalid_type,\n expected: y.bigint,\n received: s.parsedType\n }), S;\n }\n let t;\n const n = new q();\n for (const s of this._def.checks)\n s.kind === \"min\" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.too_small,\n type: \"bigint\",\n minimum: s.value,\n inclusive: s.inclusive,\n message: s.message\n }), n.dirty()) : s.kind === \"max\" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.too_big,\n type: \"bigint\",\n maximum: s.value,\n inclusive: s.inclusive,\n message: s.message\n }), n.dirty()) : s.kind === \"multipleOf\" ? e.data % s.value !== BigInt(0) && (t = this._getOrReturnCtx(e, t), g(t, {\n code: h.not_multiple_of,\n multipleOf: s.value,\n message: s.message\n }), n.dirty()) : $.assertNever(s);\n return { status: n.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, b.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, b.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, b.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, b.toString(t));\n }\n setLimit(e, t, n, s) {\n return new Ze({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: n,\n message: b.toString(s)\n }\n ]\n });\n }\n _addCheck(e) {\n return new Ze({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !1,\n message: b.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !1,\n message: b.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !0,\n message: b.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !0,\n message: b.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: b.toString(t)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\nZe.create = (r) => {\n var e;\n return new Ze({\n checks: [],\n typeName: x.ZodBigInt,\n coerce: (e = r == null ? void 0 : r.coerce) !== null && e !== void 0 ? e : !1,\n ...N(r)\n });\n};\nclass it extends E {\n _parse(e) {\n if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== y.boolean) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.boolean,\n received: t.parsedType\n }), S;\n }\n return H(e.data);\n }\n}\nit.create = (r) => new it({\n typeName: x.ZodBoolean,\n coerce: (r == null ? void 0 : r.coerce) || !1,\n ...N(r)\n});\nclass Pe extends E {\n _parse(e) {\n if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== y.date) {\n const s = this._getOrReturnCtx(e);\n return g(s, {\n code: h.invalid_type,\n expected: y.date,\n received: s.parsedType\n }), S;\n }\n if (isNaN(e.data.getTime())) {\n const s = this._getOrReturnCtx(e);\n return g(s, {\n code: h.invalid_date\n }), S;\n }\n const t = new q();\n let n;\n for (const s of this._def.checks)\n s.kind === \"min\" ? e.data.getTime() < s.value && (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.too_small,\n message: s.message,\n inclusive: !0,\n exact: !1,\n minimum: s.value,\n type: \"date\"\n }), t.dirty()) : s.kind === \"max\" ? e.data.getTime() > s.value && (n = this._getOrReturnCtx(e, n), g(n, {\n code: h.too_big,\n message: s.message,\n inclusive: !0,\n exact: !1,\n maximum: s.value,\n type: \"date\"\n }), t.dirty()) : $.assertNever(s);\n return {\n status: t.value,\n value: new Date(e.data.getTime())\n };\n }\n _addCheck(e) {\n return new Pe({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e.getTime(),\n message: b.toString(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e.getTime(),\n message: b.toString(t)\n });\n }\n get minDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n get maxDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n}\nPe.create = (r) => new Pe({\n checks: [],\n coerce: (r == null ? void 0 : r.coerce) || !1,\n typeName: x.ZodDate,\n ...N(r)\n});\nclass qt extends E {\n _parse(e) {\n if (this._getType(e) !== y.symbol) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.symbol,\n received: t.parsedType\n }), S;\n }\n return H(e.data);\n }\n}\nqt.create = (r) => new qt({\n typeName: x.ZodSymbol,\n ...N(r)\n});\nlet ot = class extends E {\n _parse(e) {\n if (this._getType(e) !== y.undefined) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.undefined,\n received: t.parsedType\n }), S;\n }\n return H(e.data);\n }\n};\not.create = (r) => new ot({\n typeName: x.ZodUndefined,\n ...N(r)\n});\nclass ut extends E {\n _parse(e) {\n if (this._getType(e) !== y.null) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.null,\n received: t.parsedType\n }), S;\n }\n return H(e.data);\n }\n}\nut.create = (r) => new ut({\n typeName: x.ZodNull,\n ...N(r)\n});\nlet He = class extends E {\n constructor() {\n super(...arguments), this._any = !0;\n }\n _parse(e) {\n return H(e.data);\n }\n};\nHe.create = (r) => new He({\n typeName: x.ZodAny,\n ...N(r)\n});\nlet Re = class extends E {\n constructor() {\n super(...arguments), this._unknown = !0;\n }\n _parse(e) {\n return H(e.data);\n }\n};\nRe.create = (r) => new Re({\n typeName: x.ZodUnknown,\n ...N(r)\n});\nlet Oe = class extends E {\n _parse(e) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.never,\n received: t.parsedType\n }), S;\n }\n};\nOe.create = (r) => new Oe({\n typeName: x.ZodNever,\n ...N(r)\n});\nclass Ft extends E {\n _parse(e) {\n if (this._getType(e) !== y.undefined) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.void,\n received: t.parsedType\n }), S;\n }\n return H(e.data);\n }\n}\nFt.create = (r) => new Ft({\n typeName: x.ZodVoid,\n ...N(r)\n});\nlet Ue = class Ut extends E {\n _parse(e) {\n const { ctx: t, status: n } = this._processInputParams(e), s = this._def;\n if (t.parsedType !== y.array)\n return g(t, {\n code: h.invalid_type,\n expected: y.array,\n received: t.parsedType\n }), S;\n if (s.exactLength !== null) {\n const i = t.data.length > s.exactLength.value, o = t.data.length < s.exactLength.value;\n (i || o) && (g(t, {\n code: i ? h.too_big : h.too_small,\n minimum: o ? s.exactLength.value : void 0,\n maximum: i ? s.exactLength.value : void 0,\n type: \"array\",\n inclusive: !0,\n exact: !0,\n message: s.exactLength.message\n }), n.dirty());\n }\n if (s.minLength !== null && t.data.length < s.minLength.value && (g(t, {\n code: h.too_small,\n minimum: s.minLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: s.minLength.message\n }), n.dirty()), s.maxLength !== null && t.data.length > s.maxLength.value && (g(t, {\n code: h.too_big,\n maximum: s.maxLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: s.maxLength.message\n }), n.dirty()), t.common.async)\n return Promise.all([...t.data].map((i, o) => s.type._parseAsync(new ue(t, i, t.path, o)))).then((i) => q.mergeArray(n, i));\n const a = [...t.data].map((i, o) => s.type._parseSync(new ue(t, i, t.path, o)));\n return q.mergeArray(n, a);\n }\n get element() {\n return this._def.type;\n }\n min(e, t) {\n return new Ut({\n ...this._def,\n minLength: { value: e, message: b.toString(t) }\n });\n }\n max(e, t) {\n return new Ut({\n ...this._def,\n maxLength: { value: e, message: b.toString(t) }\n });\n }\n length(e, t) {\n return new Ut({\n ...this._def,\n exactLength: { value: e, message: b.toString(t) }\n });\n }\n nonempty(e) {\n return this.min(1, e);\n }\n};\nUe.create = (r, e) => new Ue({\n type: r,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: x.ZodArray,\n ...N(e)\n});\nfunction We(r) {\n if (r instanceof D) {\n const e = {};\n for (const t in r.shape) {\n const n = r.shape[t];\n e[t] = xe.create(We(n));\n }\n return new D({\n ...r._def,\n shape: () => e\n });\n } else\n return r instanceof Ue ? new Ue({\n ...r._def,\n type: We(r.element)\n }) : r instanceof xe ? xe.create(We(r.unwrap())) : r instanceof De ? De.create(We(r.unwrap())) : r instanceof Ee ? Ee.create(r.items.map((e) => We(e))) : r;\n}\nclass D extends E {\n constructor() {\n super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const e = this._def.shape(), t = $.objectKeys(e);\n return this._cached = { shape: e, keys: t };\n }\n _parse(e) {\n if (this._getType(e) !== y.object) {\n const u = this._getOrReturnCtx(e);\n return g(u, {\n code: h.invalid_type,\n expected: y.object,\n received: u.parsedType\n }), S;\n }\n const { status: t, ctx: n } = this._processInputParams(e), { shape: s, keys: a } = this._getCached(), i = [];\n if (!(this._def.catchall instanceof Oe && this._def.unknownKeys === \"strip\"))\n for (const u in n.data)\n a.includes(u) || i.push(u);\n const o = [];\n for (const u of a) {\n const c = s[u], p = n.data[u];\n o.push({\n key: { status: \"valid\", value: u },\n value: c._parse(new ue(n, p, n.path, u)),\n alwaysSet: u in n.data\n });\n }\n if (this._def.catchall instanceof Oe) {\n const u = this._def.unknownKeys;\n if (u === \"passthrough\")\n for (const c of i)\n o.push({\n key: { status: \"valid\", value: c },\n value: { status: \"valid\", value: n.data[c] }\n });\n else if (u === \"strict\")\n i.length > 0 && (g(n, {\n code: h.unrecognized_keys,\n keys: i\n }), t.dirty());\n else if (u !== \"strip\")\n throw new Error(\"Internal ZodObject error: invalid unknownKeys value.\");\n } else {\n const u = this._def.catchall;\n for (const c of i) {\n const p = n.data[c];\n o.push({\n key: { status: \"valid\", value: c },\n value: u._parse(\n new ue(n, p, n.path, c)\n //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: c in n.data\n });\n }\n }\n return n.common.async ? Promise.resolve().then(async () => {\n const u = [];\n for (const c of o) {\n const p = await c.key;\n u.push({\n key: p,\n value: await c.value,\n alwaysSet: c.alwaysSet\n });\n }\n return u;\n }).then((u) => q.mergeObjectSync(t, u)) : q.mergeObjectSync(t, o);\n }\n get shape() {\n return this._def.shape();\n }\n strict(e) {\n return b.errToObj, new D({\n ...this._def,\n unknownKeys: \"strict\",\n ...e !== void 0 ? {\n errorMap: (t, n) => {\n var s, a, i, o;\n const u = (i = (a = (s = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(s, t, n).message) !== null && i !== void 0 ? i : n.defaultError;\n return t.code === \"unrecognized_keys\" ? {\n message: (o = b.errToObj(e).message) !== null && o !== void 0 ? o : u\n } : {\n message: u\n };\n }\n } : {}\n });\n }\n strip() {\n return new D({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new D({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(e) {\n return new D({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...e\n })\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(e) {\n return new D({\n unknownKeys: e._def.unknownKeys,\n catchall: e._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...e._def.shape()\n }),\n typeName: x.ZodObject\n });\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(e, t) {\n return this.augment({ [e]: t });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(e) {\n return new D({\n ...this._def,\n catchall: e\n });\n }\n pick(e) {\n const t = {};\n return $.objectKeys(e).forEach((n) => {\n e[n] && this.shape[n] && (t[n] = this.shape[n]);\n }), new D({\n ...this._def,\n shape: () => t\n });\n }\n omit(e) {\n const t = {};\n return $.objectKeys(this.shape).forEach((n) => {\n e[n] || (t[n] = this.shape[n]);\n }), new D({\n ...this._def,\n shape: () => t\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return We(this);\n }\n partial(e) {\n const t = {};\n return $.objectKeys(this.shape).forEach((n) => {\n const s = this.shape[n];\n e && !e[n] ? t[n] = s : t[n] = s.optional();\n }), new D({\n ...this._def,\n shape: () => t\n });\n }\n required(e) {\n const t = {};\n return $.objectKeys(this.shape).forEach((n) => {\n if (e && !e[n])\n t[n] = this.shape[n];\n else {\n let s = this.shape[n];\n for (; s instanceof xe; )\n s = s._def.innerType;\n t[n] = s;\n }\n }), new D({\n ...this._def,\n shape: () => t\n });\n }\n keyof() {\n return Un($.objectKeys(this.shape));\n }\n}\nD.create = (r, e) => new D({\n shape: () => r,\n unknownKeys: \"strip\",\n catchall: Oe.create(),\n typeName: x.ZodObject,\n ...N(e)\n});\nD.strictCreate = (r, e) => new D({\n shape: () => r,\n unknownKeys: \"strict\",\n catchall: Oe.create(),\n typeName: x.ZodObject,\n ...N(e)\n});\nD.lazycreate = (r, e) => new D({\n shape: r,\n unknownKeys: \"strip\",\n catchall: Oe.create(),\n typeName: x.ZodObject,\n ...N(e)\n});\nclass ct extends E {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), n = this._def.options;\n function s(a) {\n for (const o of a)\n if (o.result.status === \"valid\")\n return o.result;\n for (const o of a)\n if (o.result.status === \"dirty\")\n return t.common.issues.push(...o.ctx.common.issues), o.result;\n const i = a.map((o) => new te(o.ctx.common.issues));\n return g(t, {\n code: h.invalid_union,\n unionErrors: i\n }), S;\n }\n if (t.common.async)\n return Promise.all(n.map(async (a) => {\n const i = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await a._parseAsync({\n data: t.data,\n path: t.path,\n parent: i\n }),\n ctx: i\n };\n })).then(s);\n {\n let a;\n const i = [];\n for (const u of n) {\n const c = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n }, p = u._parseSync({\n data: t.data,\n path: t.path,\n parent: c\n });\n if (p.status === \"valid\")\n return p;\n p.status === \"dirty\" && !a && (a = { result: p, ctx: c }), c.common.issues.length && i.push(c.common.issues);\n }\n if (a)\n return t.common.issues.push(...a.ctx.common.issues), a.result;\n const o = i.map((u) => new te(u));\n return g(t, {\n code: h.invalid_union,\n unionErrors: o\n }), S;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nct.create = (r, e) => new ct({\n options: r,\n typeName: x.ZodUnion,\n ...N(e)\n});\nconst Dt = (r) => r instanceof ht ? Dt(r.schema) : r instanceof se ? Dt(r.innerType()) : r instanceof ft ? [r.value] : r instanceof Ce ? r.options : r instanceof pt ? Object.keys(r.enum) : r instanceof mt ? Dt(r._def.innerType) : r instanceof ot ? [void 0] : r instanceof ut ? [null] : null;\nclass mr extends E {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== y.object)\n return g(t, {\n code: h.invalid_type,\n expected: y.object,\n received: t.parsedType\n }), S;\n const n = this.discriminator, s = t.data[n], a = this.optionsMap.get(s);\n return a ? t.common.async ? a._parseAsync({\n data: t.data,\n path: t.path,\n parent: t\n }) : a._parseSync({\n data: t.data,\n path: t.path,\n parent: t\n }) : (g(t, {\n code: h.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [n]\n }), S);\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(e, t, n) {\n const s = /* @__PURE__ */ new Map();\n for (const a of t) {\n const i = Dt(a.shape[e]);\n if (!i)\n throw new Error(`A discriminator value for key \\`${e}\\` could not be extracted from all schema options`);\n for (const o of i) {\n if (s.has(o))\n throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);\n s.set(o, a);\n }\n }\n return new mr({\n typeName: x.ZodDiscriminatedUnion,\n discriminator: e,\n options: t,\n optionsMap: s,\n ...N(n)\n });\n }\n}\nfunction Cr(r, e) {\n const t = Se(r), n = Se(e);\n if (r === e)\n return { valid: !0, data: r };\n if (t === y.object && n === y.object) {\n const s = $.objectKeys(e), a = $.objectKeys(r).filter((o) => s.indexOf(o) !== -1), i = { ...r, ...e };\n for (const o of a) {\n const u = Cr(r[o], e[o]);\n if (!u.valid)\n return { valid: !1 };\n i[o] = u.data;\n }\n return { valid: !0, data: i };\n } else if (t === y.array && n === y.array) {\n if (r.length !== e.length)\n return { valid: !1 };\n const s = [];\n for (let a = 0; a < r.length; a++) {\n const i = r[a], o = e[a], u = Cr(i, o);\n if (!u.valid)\n return { valid: !1 };\n s.push(u.data);\n }\n return { valid: !0, data: s };\n } else\n return t === y.date && n === y.date && +r == +e ? { valid: !0, data: r } : { valid: !1 };\n}\nclass dt extends E {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e), s = (a, i) => {\n if (Zr(a) || Zr(i))\n return S;\n const o = Cr(a.value, i.value);\n return o.valid ? ((Er(a) || Er(i)) && t.dirty(), { status: t.value, value: o.data }) : (g(n, {\n code: h.invalid_intersection_types\n }), S);\n };\n return n.common.async ? Promise.all([\n this._def.left._parseAsync({\n data: n.data,\n path: n.path,\n parent: n\n }),\n this._def.right._parseAsync({\n data: n.data,\n path: n.path,\n parent: n\n })\n ]).then(([a, i]) => s(a, i)) : s(this._def.left._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n }), this._def.right._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n }));\n }\n}\ndt.create = (r, e, t) => new dt({\n left: r,\n right: e,\n typeName: x.ZodIntersection,\n ...N(t)\n});\nlet Ee = class Mn extends E {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== y.array)\n return g(n, {\n code: h.invalid_type,\n expected: y.array,\n received: n.parsedType\n }), S;\n if (n.data.length < this._def.items.length)\n return g(n, {\n code: h.too_small,\n minimum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), S;\n !this._def.rest && n.data.length > this._def.items.length && (g(n, {\n code: h.too_big,\n maximum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), t.dirty());\n const s = [...n.data].map((a, i) => {\n const o = this._def.items[i] || this._def.rest;\n return o ? o._parse(new ue(n, a, n.path, i)) : null;\n }).filter((a) => !!a);\n return n.common.async ? Promise.all(s).then((a) => q.mergeArray(t, a)) : q.mergeArray(t, s);\n }\n get items() {\n return this._def.items;\n }\n rest(e) {\n return new Mn({\n ...this._def,\n rest: e\n });\n }\n};\nEe.create = (r, e) => {\n if (!Array.isArray(r))\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n return new Ee({\n items: r,\n typeName: x.ZodTuple,\n rest: null,\n ...N(e)\n });\n};\nclass lt extends E {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== y.object)\n return g(n, {\n code: h.invalid_type,\n expected: y.object,\n received: n.parsedType\n }), S;\n const s = [], a = this._def.keyType, i = this._def.valueType;\n for (const o in n.data)\n s.push({\n key: a._parse(new ue(n, o, n.path, o)),\n value: i._parse(new ue(n, n.data[o], n.path, o))\n });\n return n.common.async ? q.mergeObjectAsync(t, s) : q.mergeObjectSync(t, s);\n }\n get element() {\n return this._def.valueType;\n }\n static create(e, t, n) {\n return t instanceof E ? new lt({\n keyType: e,\n valueType: t,\n typeName: x.ZodRecord,\n ...N(n)\n }) : new lt({\n keyType: Ge.create(),\n valueType: e,\n typeName: x.ZodRecord,\n ...N(t)\n });\n }\n}\nclass Gt extends E {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== y.map)\n return g(n, {\n code: h.invalid_type,\n expected: y.map,\n received: n.parsedType\n }), S;\n const s = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([o, u], c) => ({\n key: s._parse(new ue(n, o, n.path, [c, \"key\"])),\n value: a._parse(new ue(n, u, n.path, [c, \"value\"]))\n }));\n if (n.common.async) {\n const o = /* @__PURE__ */ new Map();\n return Promise.resolve().then(async () => {\n for (const u of i) {\n const c = await u.key, p = await u.value;\n if (c.status === \"aborted\" || p.status === \"aborted\")\n return S;\n (c.status === \"dirty\" || p.status === \"dirty\") && t.dirty(), o.set(c.value, p.value);\n }\n return { status: t.value, value: o };\n });\n } else {\n const o = /* @__PURE__ */ new Map();\n for (const u of i) {\n const c = u.key, p = u.value;\n if (c.status === \"aborted\" || p.status === \"aborted\")\n return S;\n (c.status === \"dirty\" || p.status === \"dirty\") && t.dirty(), o.set(c.value, p.value);\n }\n return { status: t.value, value: o };\n }\n }\n}\nGt.create = (r, e, t) => new Gt({\n valueType: e,\n keyType: r,\n typeName: x.ZodMap,\n ...N(t)\n});\nlet Ht = class Ar extends E {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== y.set)\n return g(n, {\n code: h.invalid_type,\n expected: y.set,\n received: n.parsedType\n }), S;\n const s = this._def;\n s.minSize !== null && n.data.size < s.minSize.value && (g(n, {\n code: h.too_small,\n minimum: s.minSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: s.minSize.message\n }), t.dirty()), s.maxSize !== null && n.data.size > s.maxSize.value && (g(n, {\n code: h.too_big,\n maximum: s.maxSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: s.maxSize.message\n }), t.dirty());\n const a = this._def.valueType;\n function i(u) {\n const c = /* @__PURE__ */ new Set();\n for (const p of u) {\n if (p.status === \"aborted\")\n return S;\n p.status === \"dirty\" && t.dirty(), c.add(p.value);\n }\n return { status: t.value, value: c };\n }\n const o = [...n.data.values()].map((u, c) => a._parse(new ue(n, u, n.path, c)));\n return n.common.async ? Promise.all(o).then((u) => i(u)) : i(o);\n }\n min(e, t) {\n return new Ar({\n ...this._def,\n minSize: { value: e, message: b.toString(t) }\n });\n }\n max(e, t) {\n return new Ar({\n ...this._def,\n maxSize: { value: e, message: b.toString(t) }\n });\n }\n size(e, t) {\n return this.min(e, t).max(e, t);\n }\n nonempty(e) {\n return this.min(1, e);\n }\n};\nHt.create = (r, e) => new Ht({\n valueType: r,\n minSize: null,\n maxSize: null,\n typeName: x.ZodSet,\n ...N(e)\n});\nlet Pn = class Lt extends E {\n constructor() {\n super(...arguments), this.validate = this.implement;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== y.function)\n return g(t, {\n code: h.invalid_type,\n expected: y.function,\n received: t.parsedType\n }), S;\n function n(o, u) {\n return Kt({\n data: o,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n Yt(),\n st\n ].filter((c) => !!c),\n issueData: {\n code: h.invalid_arguments,\n argumentsError: u\n }\n });\n }\n function s(o, u) {\n return Kt({\n data: o,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n Yt(),\n st\n ].filter((c) => !!c),\n issueData: {\n code: h.invalid_return_type,\n returnTypeError: u\n }\n });\n }\n const a = { errorMap: t.common.contextualErrorMap }, i = t.data;\n if (this._def.returns instanceof Je) {\n const o = this;\n return H(async function(...u) {\n const c = new te([]), p = await o._def.args.parseAsync(u, a).catch((K) => {\n throw c.addIssue(n(u, K)), c;\n }), Z = await Reflect.apply(i, this, p);\n return await o._def.returns._def.type.parseAsync(Z, a).catch((K) => {\n throw c.addIssue(s(Z, K)), c;\n });\n });\n } else {\n const o = this;\n return H(function(...u) {\n const c = o._def.args.safeParse(u, a);\n if (!c.success)\n throw new te([n(u, c.error)]);\n const p = Reflect.apply(i, this, c.data), Z = o._def.returns.safeParse(p, a);\n if (!Z.success)\n throw new te([s(p, Z.error)]);\n return Z.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...e) {\n return new Lt({\n ...this._def,\n args: Ee.create(e).rest(Re.create())\n });\n }\n returns(e) {\n return new Lt({\n ...this._def,\n returns: e\n });\n }\n implement(e) {\n return this.parse(e);\n }\n strictImplement(e) {\n return this.parse(e);\n }\n static create(e, t, n) {\n return new Lt({\n args: e || Ee.create([]).rest(Re.create()),\n returns: t || Re.create(),\n typeName: x.ZodFunction,\n ...N(n)\n });\n }\n};\nclass ht extends E {\n get schema() {\n return this._def.getter();\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n return this._def.getter()._parse({ data: t.data, path: t.path, parent: t });\n }\n}\nht.create = (r, e) => new ht({\n getter: r,\n typeName: x.ZodLazy,\n ...N(e)\n});\nclass ft extends E {\n _parse(e) {\n if (e.data !== this._def.value) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n received: t.data,\n code: h.invalid_literal,\n expected: this._def.value\n }), S;\n }\n return { status: \"valid\", value: e.data };\n }\n get value() {\n return this._def.value;\n }\n}\nft.create = (r, e) => new ft({\n value: r,\n typeName: x.ZodLiteral,\n ...N(e)\n});\nfunction Un(r, e) {\n return new Ce({\n values: r,\n typeName: x.ZodEnum,\n ...N(e)\n });\n}\nclass Ce extends E {\n _parse(e) {\n if (typeof e.data != \"string\") {\n const t = this._getOrReturnCtx(e), n = this._def.values;\n return g(t, {\n expected: $.joinValues(n),\n received: t.parsedType,\n code: h.invalid_type\n }), S;\n }\n if (this._def.values.indexOf(e.data) === -1) {\n const t = this._getOrReturnCtx(e), n = this._def.values;\n return g(t, {\n received: t.data,\n code: h.invalid_enum_value,\n options: n\n }), S;\n }\n return H(e.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Values() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n extract(e) {\n return Ce.create(e);\n }\n exclude(e) {\n return Ce.create(this.options.filter((t) => !e.includes(t)));\n }\n}\nCe.create = Un;\nclass pt extends E {\n _parse(e) {\n const t = $.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e);\n if (n.parsedType !== y.string && n.parsedType !== y.number) {\n const s = $.objectValues(t);\n return g(n, {\n expected: $.joinValues(s),\n received: n.parsedType,\n code: h.invalid_type\n }), S;\n }\n if (t.indexOf(e.data) === -1) {\n const s = $.objectValues(t);\n return g(n, {\n received: n.data,\n code: h.invalid_enum_value,\n options: s\n }), S;\n }\n return H(e.data);\n }\n get enum() {\n return this._def.values;\n }\n}\npt.create = (r, e) => new pt({\n values: r,\n typeName: x.ZodNativeEnum,\n ...N(e)\n});\nlet Je = class extends E {\n unwrap() {\n return this._def.type;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== y.promise && t.common.async === !1)\n return g(t, {\n code: h.invalid_type,\n expected: y.promise,\n received: t.parsedType\n }), S;\n const n = t.parsedType === y.promise ? t.data : Promise.resolve(t.data);\n return H(n.then((s) => this._def.type.parseAsync(s, {\n path: t.path,\n errorMap: t.common.contextualErrorMap\n })));\n }\n};\nJe.create = (r, e) => new Je({\n type: r,\n typeName: x.ZodPromise,\n ...N(e)\n});\nlet se = class extends E {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === x.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e), s = this._def.effect || null, a = {\n addIssue: (i) => {\n g(n, i), i.fatal ? t.abort() : t.dirty();\n },\n get path() {\n return n.path;\n }\n };\n if (a.addIssue = a.addIssue.bind(a), s.type === \"preprocess\") {\n const i = s.transform(n.data, a);\n return n.common.issues.length ? {\n status: \"dirty\",\n value: n.data\n } : n.common.async ? Promise.resolve(i).then((o) => this._def.schema._parseAsync({\n data: o,\n path: n.path,\n parent: n\n })) : this._def.schema._parseSync({\n data: i,\n path: n.path,\n parent: n\n });\n }\n if (s.type === \"refinement\") {\n const i = (o) => {\n const u = s.refinement(o, a);\n if (n.common.async)\n return Promise.resolve(u);\n if (u instanceof Promise)\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n return o;\n };\n if (n.common.async === !1) {\n const o = this._def.schema._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n });\n return o.status === \"aborted\" ? S : (o.status === \"dirty\" && t.dirty(), i(o.value), { status: t.value, value: o.value });\n } else\n return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((o) => o.status === \"aborted\" ? S : (o.status === \"dirty\" && t.dirty(), i(o.value).then(() => ({ status: t.value, value: o.value }))));\n }\n if (s.type === \"transform\")\n if (n.common.async === !1) {\n const i = this._def.schema._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n });\n if (!at(i))\n return i;\n const o = s.transform(i.value, a);\n if (o instanceof Promise)\n throw new Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");\n return { status: t.value, value: o };\n } else\n return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => at(i) ? Promise.resolve(s.transform(i.value, a)).then((o) => ({ status: t.value, value: o })) : i);\n $.assertNever(s);\n }\n};\nse.create = (r, e, t) => new se({\n schema: r,\n typeName: x.ZodEffects,\n effect: e,\n ...N(t)\n});\nse.createWithPreprocess = (r, e, t) => new se({\n schema: e,\n effect: { type: \"preprocess\", transform: r },\n typeName: x.ZodEffects,\n ...N(t)\n});\nlet xe = class extends E {\n _parse(e) {\n return this._getType(e) === y.undefined ? H(void 0) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n};\nxe.create = (r, e) => new xe({\n innerType: r,\n typeName: x.ZodOptional,\n ...N(e)\n});\nlet De = class extends E {\n _parse(e) {\n return this._getType(e) === y.null ? H(null) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n};\nDe.create = (r, e) => new De({\n innerType: r,\n typeName: x.ZodNullable,\n ...N(e)\n});\nclass mt extends E {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n let n = t.data;\n return t.parsedType === y.undefined && (n = this._def.defaultValue()), this._def.innerType._parse({\n data: n,\n path: t.path,\n parent: t\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nmt.create = (r, e) => new mt({\n innerType: r,\n typeName: x.ZodDefault,\n defaultValue: typeof e.default == \"function\" ? e.default : () => e.default,\n ...N(e)\n});\nclass Jt extends E {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), n = {\n ...t,\n common: {\n ...t.common,\n issues: []\n }\n }, s = this._def.innerType._parse({\n data: n.data,\n path: n.path,\n parent: {\n ...n\n }\n });\n return Wt(s) ? s.then((a) => ({\n status: \"valid\",\n value: a.status === \"valid\" ? a.value : this._def.catchValue({\n get error() {\n return new te(n.common.issues);\n },\n input: n.data\n })\n })) : {\n status: \"valid\",\n value: s.status === \"valid\" ? s.value : this._def.catchValue({\n get error() {\n return new te(n.common.issues);\n },\n input: n.data\n })\n };\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nJt.create = (r, e) => new Jt({\n innerType: r,\n typeName: x.ZodCatch,\n catchValue: typeof e.catch == \"function\" ? e.catch : () => e.catch,\n ...N(e)\n});\nclass Xt extends E {\n _parse(e) {\n if (this._getType(e) !== y.nan) {\n const t = this._getOrReturnCtx(e);\n return g(t, {\n code: h.invalid_type,\n expected: y.nan,\n received: t.parsedType\n }), S;\n }\n return { status: \"valid\", value: e.data };\n }\n}\nXt.create = (r) => new Xt({\n typeName: x.ZodNaN,\n ...N(r)\n});\nconst Xs = Symbol(\"zod_brand\");\nclass Dn extends E {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), n = t.data;\n return this._def.type._parse({\n data: n,\n path: t.path,\n parent: t\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass It extends E {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.common.async)\n return (async () => {\n const s = await this._def.in._parseAsync({\n data: n.data,\n path: n.path,\n parent: n\n });\n return s.status === \"aborted\" ? S : s.status === \"dirty\" ? (t.dirty(), Rn(s.value)) : this._def.out._parseAsync({\n data: s.value,\n path: n.path,\n parent: n\n });\n })();\n {\n const s = this._def.in._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n });\n return s.status === \"aborted\" ? S : s.status === \"dirty\" ? (t.dirty(), {\n status: \"dirty\",\n value: s.value\n }) : this._def.out._parseSync({\n data: s.value,\n path: n.path,\n parent: n\n });\n }\n }\n static create(e, t) {\n return new It({\n in: e,\n out: t,\n typeName: x.ZodPipeline\n });\n }\n}\nclass Qt extends E {\n _parse(e) {\n const t = this._def.innerType._parse(e);\n return at(t) && (t.value = Object.freeze(t.value)), t;\n }\n}\nQt.create = (r, e) => new Qt({\n innerType: r,\n typeName: x.ZodReadonly,\n ...N(e)\n});\nconst Ln = (r, e = {}, t) => r ? He.create().superRefine((n, s) => {\n var a, i;\n if (!r(n)) {\n const o = typeof e == \"function\" ? e(n) : typeof e == \"string\" ? { message: e } : e, u = (i = (a = o.fatal) !== null && a !== void 0 ? a : t) !== null && i !== void 0 ? i : !0, c = typeof o == \"string\" ? { message: o } : o;\n s.addIssue({ code: \"custom\", ...c, fatal: u });\n }\n}) : He.create(), Qs = {\n object: D.lazycreate\n};\nvar x;\n(function(r) {\n r.ZodString = \"ZodString\", r.ZodNumber = \"ZodNumber\", r.ZodNaN = \"ZodNaN\", r.ZodBigInt = \"ZodBigInt\", r.ZodBoolean = \"ZodBoolean\", r.ZodDate = \"ZodDate\", r.ZodSymbol = \"ZodSymbol\", r.ZodUndefined = \"ZodUndefined\", r.ZodNull = \"ZodNull\", r.ZodAny = \"ZodAny\", r.ZodUnknown = \"ZodUnknown\", r.ZodNever = \"ZodNever\", r.ZodVoid = \"ZodVoid\", r.ZodArray = \"ZodArray\", r.ZodObject = \"ZodObject\", r.ZodUnion = \"ZodUnion\", r.ZodDiscriminatedUnion = \"ZodDiscriminatedUnion\", r.ZodIntersection = \"ZodIntersection\", r.ZodTuple = \"ZodTuple\", r.ZodRecord = \"ZodRecord\", r.ZodMap = \"ZodMap\", r.ZodSet = \"ZodSet\", r.ZodFunction = \"ZodFunction\", r.ZodLazy = \"ZodLazy\", r.ZodLiteral = \"ZodLiteral\", r.ZodEnum = \"ZodEnum\", r.ZodEffects = \"ZodEffects\", r.ZodNativeEnum = \"ZodNativeEnum\", r.ZodOptional = \"ZodOptional\", r.ZodNullable = \"ZodNullable\", r.ZodDefault = \"ZodDefault\", r.ZodCatch = \"ZodCatch\", r.ZodPromise = \"ZodPromise\", r.ZodBranded = \"ZodBranded\", r.ZodPipeline = \"ZodPipeline\", r.ZodReadonly = \"ZodReadonly\";\n})(x || (x = {}));\nconst ea = (r, e = {\n message: `Input not instance of ${r.name}`\n}) => Ln((t) => t instanceof r, e), zn = Ge.create, Bn = Ie.create, ta = Xt.create, ra = Ze.create, Vn = it.create, na = Pe.create, sa = qt.create, aa = ot.create, ia = ut.create, oa = He.create, ua = Re.create, ca = Oe.create, da = Ft.create, la = Ue.create, ha = D.create, fa = D.strictCreate, pa = ct.create, ma = mr.create, ya = dt.create, va = Ee.create, ga = lt.create, _a = Gt.create, ba = Ht.create, wa = Pn.create, xa = ht.create, Ta = ft.create, Oa = Ce.create, ka = pt.create, Sa = Je.create, tn = se.create, Na = xe.create, Ia = De.create, Za = se.createWithPreprocess, Ea = It.create, Ca = () => zn().optional(), Aa = () => Bn().optional(), $a = () => Vn().optional(), ja = {\n string: (r) => Ge.create({ ...r, coerce: !0 }),\n number: (r) => Ie.create({ ...r, coerce: !0 }),\n boolean: (r) => it.create({\n ...r,\n coerce: !0\n }),\n bigint: (r) => Ze.create({ ...r, coerce: !0 }),\n date: (r) => Pe.create({ ...r, coerce: !0 })\n}, Ra = S;\nvar d = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n defaultErrorMap: st,\n setErrorMap: Ds,\n getErrorMap: Yt,\n makeIssue: Kt,\n EMPTY_PATH: Ls,\n addIssueToContext: g,\n ParseStatus: q,\n INVALID: S,\n DIRTY: Rn,\n OK: H,\n isAborted: Zr,\n isDirty: Er,\n isValid: at,\n isAsync: Wt,\n get util() {\n return $;\n },\n get objectUtil() {\n return Ir;\n },\n ZodParsedType: y,\n getParsedType: Se,\n ZodType: E,\n ZodString: Ge,\n ZodNumber: Ie,\n ZodBigInt: Ze,\n ZodBoolean: it,\n ZodDate: Pe,\n ZodSymbol: qt,\n ZodUndefined: ot,\n ZodNull: ut,\n ZodAny: He,\n ZodUnknown: Re,\n ZodNever: Oe,\n ZodVoid: Ft,\n ZodArray: Ue,\n ZodObject: D,\n ZodUnion: ct,\n ZodDiscriminatedUnion: mr,\n ZodIntersection: dt,\n ZodTuple: Ee,\n ZodRecord: lt,\n ZodMap: Gt,\n ZodSet: Ht,\n ZodFunction: Pn,\n ZodLazy: ht,\n ZodLiteral: ft,\n ZodEnum: Ce,\n ZodNativeEnum: pt,\n ZodPromise: Je,\n ZodEffects: se,\n ZodTransformer: se,\n ZodOptional: xe,\n ZodNullable: De,\n ZodDefault: mt,\n ZodCatch: Jt,\n ZodNaN: Xt,\n BRAND: Xs,\n ZodBranded: Dn,\n ZodPipeline: It,\n ZodReadonly: Qt,\n custom: Ln,\n Schema: E,\n ZodSchema: E,\n late: Qs,\n get ZodFirstPartyTypeKind() {\n return x;\n },\n coerce: ja,\n any: oa,\n array: la,\n bigint: ra,\n boolean: Vn,\n date: na,\n discriminatedUnion: ma,\n effect: tn,\n enum: Oa,\n function: wa,\n instanceof: ea,\n intersection: ya,\n lazy: xa,\n literal: Ta,\n map: _a,\n nan: ta,\n nativeEnum: ka,\n never: ca,\n null: ia,\n nullable: Ia,\n number: Bn,\n object: ha,\n oboolean: $a,\n onumber: Aa,\n optional: Na,\n ostring: Ca,\n pipeline: Ea,\n preprocess: Za,\n promise: Sa,\n record: ga,\n set: ba,\n strictObject: fa,\n string: zn,\n symbol: sa,\n transformer: tn,\n tuple: va,\n undefined: aa,\n union: pa,\n unknown: ua,\n void: da,\n NEVER: Ra,\n ZodIssueCode: h,\n quotelessJson: Us,\n ZodError: te\n});\nconst yr = d.tuple([d.number(), d.number()]);\nd.tuple([d.bigint(), d.bigint()]);\nconst Yn = d.object({ width: d.number(), height: d.number() }), Ma = d.object({\n signedWidth: d.number(),\n signedHeight: d.number()\n}), Pa = [\"width\", \"height\"];\nd.enum(Pa);\nconst Ua = [\"start\", \"center\", \"end\"], Da = [\"signedWidth\", \"signedHeight\"];\nd.enum(Da);\nconst er = d.object({ x: d.number(), y: d.number() }), La = d.object({ clientX: d.number(), clientY: d.number() }), za = [\"x\", \"y\"], Kn = d.enum(za), Wn = [\"top\", \"right\", \"bottom\", \"left\"];\nd.enum(Wn);\nconst Ba = [\"left\", \"right\"], qn = d.enum(Ba), Va = [\"top\", \"bottom\"], Fn = d.enum(Va), Gn = [\"center\"], rn = d.enum(Gn), Ya = [...Wn, ...Gn], Hn = d.enum(Ya);\nd.enum(Ua);\nconst Ka = [\"first\", \"last\"];\nd.enum(Ka);\nconst Wa = d.object({ lower: d.number(), upper: d.number() }), qa = d.object({ lower: d.bigint(), upper: d.bigint() });\nd.union([Wa, yr]);\nd.union([qa, yr]);\nd.union([Kn, Hn]);\nd.union([Kn, Hn, d.instanceof(String)]);\nconst xr = (r, e) => {\n const t = {};\n if (typeof r == \"number\" || typeof r == \"bigint\")\n e != null ? (t.lower = r, t.upper = e) : (t.lower = typeof r == \"bigint\" ? 0n : 0, t.upper = r);\n else if (Array.isArray(r)) {\n if (r.length !== 2)\n throw new Error(\"bounds: expected array of length 2\");\n [t.lower, t.upper] = r;\n } else\n return nn(r);\n return nn(t);\n}, nn = (r) => r.lower > r.upper ? { lower: r.upper, upper: r.lower } : r;\nd.object({\n x: qn.or(rn),\n y: Fn.or(rn)\n});\nconst Fa = d.object({ x: qn, y: Fn }), Ga = Object.freeze({ x: \"left\", y: \"top\" }), Ha = (r, e) => r.x === e.x && r.y === e.y, sn = d.union([\n d.number(),\n er,\n yr,\n Yn,\n Ma,\n La\n]), Ja = (r, e) => {\n if (typeof r == \"string\") {\n if (e === void 0)\n throw new Error(\"The y coordinate must be given.\");\n return r === \"x\" ? { x: e, y: 0 } : { x: 0, y: e };\n }\n return typeof r == \"number\" ? { x: r, y: e ?? r } : Array.isArray(r) ? { x: r[0], y: r[1] } : \"signedWidth\" in r ? { x: r.signedWidth, y: r.signedHeight } : \"clientX\" in r ? { x: r.clientX, y: r.clientY } : \"width\" in r ? { x: r.width, y: r.height } : { x: r.x, y: r.y };\n}, an = Object.freeze({ x: 0, y: 0 }), Et = d.union([d.number(), d.string()]);\nd.object({\n top: Et,\n left: Et,\n width: Et,\n height: Et\n});\nd.object({\n left: d.number(),\n top: d.number(),\n right: d.number(),\n bottom: d.number()\n});\nd.object({\n one: er,\n two: er,\n root: Fa\n});\nconst Xr = (r, e, t = 0, n = 0, s) => {\n const a = {\n one: { ...an },\n two: { ...an },\n root: s ?? Ga\n };\n if (typeof r == \"number\") {\n if (typeof e != \"number\")\n throw new Error(\"Box constructor called with invalid arguments\");\n return a.one = { x: r, y: e }, a.two = { x: a.one.x + t, y: a.one.y + n }, a;\n }\n return \"one\" in r && \"two\" in r && \"root\" in r ? { ...r, root: s ?? r.root } : (\"getBoundingClientRect\" in r && (r = r.getBoundingClientRect()), \"left\" in r ? (a.one = { x: r.left, y: r.top }, a.two = { x: r.right, y: r.bottom }, a) : (a.one = r, e == null ? a.two = { x: a.one.x + t, y: a.one.y + n } : typeof e == \"number\" ? a.two = { x: a.one.x + e, y: a.one.y + t } : \"width\" in e ? a.two = {\n x: a.one.x + e.width,\n y: a.one.y + e.height\n } : \"signedWidth\" in e ? a.two = {\n x: a.one.x + e.signedWidth,\n y: a.one.y + e.signedHeight\n } : a.two = e, a));\n}, Tr = (r) => {\n const e = Xr(r);\n return { lower: e.one.x, upper: e.two.x };\n}, Or = (r) => {\n const e = Xr(r);\n return { lower: e.one.y, upper: e.two.y };\n}, Xa = (r) => typeof r != \"object\" || r == null ? !1 : \"one\" in r && \"two\" in r && \"root\" in r, Qa = d.object({ signedWidth: d.number(), signedHeight: d.number() });\nd.union([Yn, Qa, er, yr]);\nvar ei = Object.defineProperty, ti = (r, e, t) => e in r ? ei(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, we = (r, e, t) => (ti(r, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nconst ri = (r, e, t) => (e != null && (r = Math.max(r, e)), t != null && (r = Math.min(r, t)), r);\nd.object({ offset: sn, scale: sn });\nconst ni = (r) => (e, t, n, s) => t === \"dimension\" ? [e, n] : [e, s ? n - r : n + r], si = (r) => (e, t, n, s) => [e, s ? n / r : n * r], ai = (r) => (e, t, n) => {\n if (e === null)\n return [r, n];\n const { lower: s, upper: a } = e, { lower: i, upper: o } = r, u = a - s, c = o - i;\n if (t === \"dimension\")\n return [r, n * (c / u)];\n const p = (n - s) * (c / u) + i;\n return [r, p];\n}, ii = (r) => (e, t, n) => [r, n], oi = () => (r, e, t) => {\n if (r === null)\n throw new Error(\"cannot invert without bounds\");\n if (e === \"dimension\")\n return [r, t];\n const { lower: n, upper: s } = r;\n return [r, s - (t - n)];\n}, ui = (r) => (e, t, n) => {\n const { lower: s, upper: a } = r;\n return n = ri(n, s, a), [e, n];\n}, $r = class rt {\n constructor() {\n we(this, \"ops\", []), we(this, \"currBounds\", null), we(this, \"currType\", null), we(this, \"reversed\", !1), this.ops = [];\n }\n static translate(e) {\n return new rt().translate(e);\n }\n static magnify(e) {\n return new rt().magnify(e);\n }\n static scale(e, t) {\n return new rt().scale(e, t);\n }\n translate(e) {\n const t = this.new(), n = ni(e);\n return n.type = \"translate\", t.ops.push(n), t;\n }\n magnify(e) {\n const t = this.new(), n = si(e);\n return n.type = \"magnify\", t.ops.push(n), t;\n }\n scale(e, t) {\n const n = xr(e, t), s = this.new(), a = ai(n);\n return a.type = \"scale\", s.ops.push(a), s;\n }\n clamp(e, t) {\n const n = xr(e, t), s = this.new(), a = ui(n);\n return a.type = \"clamp\", s.ops.push(a), s;\n }\n reBound(e, t) {\n const n = xr(e, t), s = this.new(), a = ii(n);\n return a.type = \"re-bound\", s.ops.push(a), s;\n }\n invert() {\n const e = oi();\n e.type = \"invert\";\n const t = this.new();\n return t.ops.push(e), t;\n }\n pos(e) {\n return this.exec(\"position\", e);\n }\n dim(e) {\n return this.exec(\"dimension\", e);\n }\n new() {\n const e = new rt();\n return e.ops = this.ops.slice(), e.reversed = this.reversed, e;\n }\n exec(e, t) {\n return this.currBounds = null, this.ops.reduce(\n ([n, s], a) => a(n, e, s, this.reversed),\n [null, t]\n )[1];\n }\n reverse() {\n const e = this.new();\n e.ops.reverse();\n const t = [];\n return e.ops.forEach((n, s) => {\n if (n.type === \"scale\" || t.some(([i, o]) => s >= i && s <= o))\n return;\n const a = e.ops.findIndex((i, o) => i.type === \"scale\" && o > s);\n a !== -1 && t.push([s, a]);\n }), t.forEach(([n, s]) => {\n const a = e.ops.slice(n, s);\n a.unshift(e.ops[s]), e.ops.splice(n, s - n + 1, ...a);\n }), e.reversed = !e.reversed, e;\n }\n};\nwe($r, \"IDENTITY\", new $r());\nlet on = $r;\nconst un = class _e {\n constructor(e = new on(), t = new on(), n = null) {\n we(this, \"x\"), we(this, \"y\"), we(this, \"currRoot\"), this.x = e, this.y = t, this.currRoot = n;\n }\n static translate(e, t) {\n return new _e().translate(e, t);\n }\n static translateX(e) {\n return new _e().translateX(e);\n }\n static translateY(e) {\n return new _e().translateY(e);\n }\n static clamp(e) {\n return new _e().clamp(e);\n }\n static magnify(e) {\n return new _e().magnify(e);\n }\n static scale(e) {\n return new _e().scale(e);\n }\n static reBound(e) {\n return new _e().reBound(e);\n }\n translate(e, t) {\n const n = Ja(e, t), s = this.copy();\n return s.x = this.x.translate(n.x), s.y = this.y.translate(n.y), s;\n }\n translateX(e) {\n const t = this.copy();\n return t.x = this.x.translate(e), t;\n }\n translateY(e) {\n const t = this.copy();\n return t.y = this.y.translate(e), t;\n }\n magnify(e) {\n const t = this.copy();\n return t.x = this.x.magnify(e.x), t.y = this.y.magnify(e.y), t;\n }\n scale(e) {\n const t = this.copy();\n if (Xa(e)) {\n const n = this.currRoot;\n return t.currRoot = e.root, n != null && !Ha(n, e.root) && (n.x !== e.root.x && (t.x = t.x.invert()), n.y !== e.root.y && (t.y = t.y.invert())), t.x = t.x.scale(Tr(e)), t.y = t.y.scale(Or(e)), t;\n }\n return t.x = t.x.scale(e.width), t.y = t.y.scale(e.height), t;\n }\n reBound(e) {\n const t = this.copy();\n return t.x = this.x.reBound(Tr(e)), t.y = this.y.reBound(Or(e)), t;\n }\n clamp(e) {\n const t = this.copy();\n return t.x = this.x.clamp(Tr(e)), t.y = this.y.clamp(Or(e)), t;\n }\n copy() {\n const e = new _e();\n return e.currRoot = this.currRoot, e.x = this.x, e.y = this.y, e;\n }\n reverse() {\n const e = this.copy();\n return e.x = this.x.reverse(), e.y = this.y.reverse(), e;\n }\n pos(e) {\n return { x: this.x.pos(e.x), y: this.y.pos(e.y) };\n }\n box(e) {\n return Xr(\n this.pos(e.one),\n this.pos(e.two),\n 0,\n 0,\n this.currRoot ?? e.root\n );\n }\n};\nwe(un, \"IDENTITY\", new un());\nvar ci = Object.defineProperty, di = (r, e, t) => e in r ? ci(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, m = (r, e, t) => (di(r, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nconst Jn = (r, e) => {\n const t = new V(e);\n if (![\n Y.DAY,\n Y.HOUR,\n Y.MINUTE,\n Y.SECOND,\n Y.MILLISECOND,\n Y.MICROSECOND,\n Y.NANOSECOND\n ].some((s) => s.equals(t)))\n throw new Error(\n \"Invalid argument for remainder. Must be an even TimeSpan or Timestamp\"\n );\n const n = r.valueOf() % t.valueOf();\n return r instanceof V ? new V(n) : new Y(n);\n}, M = class k {\n constructor(e, t = \"UTC\") {\n if (m(this, \"value\"), m(this, \"encodeValue\", !0), e == null)\n this.value = k.now().valueOf();\n else if (e instanceof Date)\n this.value = BigInt(e.getTime()) * k.MILLISECOND.valueOf();\n else if (typeof e == \"string\")\n this.value = k.parseDateTimeString(e, t).valueOf();\n else if (Array.isArray(e))\n this.value = k.parseDate(e);\n else {\n let n = BigInt(0);\n e instanceof Number && (e = e.valueOf()), t === \"local\" && (n = k.utcOffset.valueOf()), typeof e == \"number\" && (isFinite(e) ? e = Math.trunc(e) : (isNaN(e) && (e = 0), e === 1 / 0 ? e = k.MAX : e = k.MIN)), this.value = BigInt(e.valueOf()) + n;\n }\n }\n static parseDate([e = 1970, t = 1, n = 1]) {\n const s = new Date(e, t - 1, n, 0, 0, 0, 0);\n return new k(BigInt(s.getTime()) * k.MILLISECOND.valueOf()).truncate(k.DAY).valueOf();\n }\n encode() {\n return this.value.toString();\n }\n valueOf() {\n return this.value;\n }\n static parseTimeString(e, t = \"UTC\") {\n const [n, s, a] = e.split(\":\");\n let i = \"00\", o = \"00\";\n a != null && ([i, o] = a.split(\".\"));\n let u = k.hours(parseInt(n ?? \"00\", 10)).add(k.minutes(parseInt(s ?? \"00\", 10))).add(k.seconds(parseInt(i ?? \"00\", 10))).add(k.milliseconds(parseInt(o ?? \"00\", 10)));\n return t === \"local\" && (u = u.add(k.utcOffset)), u.valueOf();\n }\n static parseDateTimeString(e, t = \"UTC\") {\n if (!e.includes(\"/\") && !e.includes(\"-\"))\n return k.parseTimeString(e, t);\n const n = new Date(e);\n return e.includes(\":\") || n.setUTCHours(0, 0, 0, 0), new k(\n BigInt(n.getTime()) * k.MILLISECOND.valueOf(),\n t\n ).valueOf();\n }\n fString(e = \"ISO\", t = \"UTC\") {\n switch (e) {\n case \"ISODate\":\n return this.toISOString(t).slice(0, 10);\n case \"ISOTime\":\n return this.toISOString(t).slice(11, 23);\n case \"time\":\n return this.timeString(!1, t);\n case \"preciseTime\":\n return this.timeString(!0, t);\n case \"date\":\n return this.dateString(t);\n case \"preciseDate\":\n return `${this.dateString(t)} ${this.timeString(!0, t)}`;\n case \"dateTime\":\n return `${this.dateString(t)} ${this.timeString(!1, t)}`;\n default:\n return this.toISOString(t);\n }\n }\n toISOString(e = \"UTC\") {\n return e === \"UTC\" ? this.date().toISOString() : this.sub(k.utcOffset).date().toISOString();\n }\n timeString(e = !1, t = \"UTC\") {\n const n = this.toISOString(t);\n return e ? n.slice(11, 23) : n.slice(11, 19);\n }\n dateString(e = \"UTC\") {\n const t = this.date(), n = t.toLocaleString(\"default\", { month: \"short\" }), s = t.toLocaleString(\"default\", { day: \"numeric\" });\n return `${n} ${s}`;\n }\n static get utcOffset() {\n return new Y(\n BigInt((/* @__PURE__ */ new Date()).getTimezoneOffset()) * k.MINUTE.valueOf()\n );\n }\n /**\n * @returns a TimeSpan representing the amount time elapsed since\n * the other timestamp.\n * @param other - The other timestamp.\n */\n static since(e) {\n return new k().span(e);\n }\n /** @returns A JavaScript Date object representing the TimeStamp. */\n date() {\n return new Date(this.milliseconds());\n }\n /**\n * Checks if the TimeStamp is equal to another TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamps are equal, false otherwise.\n */\n equals(e) {\n return this.valueOf() === new k(e).valueOf();\n }\n /**\n * Creates a TimeSpan representing the duration between the two timestamps.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns A TimeSpan representing the duration between the two timestamps.\n * The span is guaranteed to be positive.\n */\n span(e) {\n return this.range(e).span;\n }\n /**\n * Creates a TimeRange spanning the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns A TimeRange spanning the given TimeStamp that is guaranteed to be\n * valid, regardless of the TimeStamp order.\n */\n range(e) {\n return new li(this, e).makeValid();\n }\n /**\n * Creates a TimeRange starting at the TimeStamp and spanning the given\n * TimeSpan.\n *\n * @param other - The TimeSpan to span.\n * @returns A TimeRange starting at the TimeStamp and spanning the given\n * TimeSpan. The TimeRange is guaranteed to be valid.\n */\n spanRange(e) {\n return this.range(this.add(e)).makeValid();\n }\n /**\n * Checks if the TimeStamp represents the unix epoch.\n *\n * @returns True if the TimeStamp represents the unix epoch, false otherwise.\n */\n get isZero() {\n return this.valueOf() === BigInt(0);\n }\n /**\n * Checks if the TimeStamp is after the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is after the given TimeStamp, false\n * otherwise.\n */\n after(e) {\n return this.valueOf() > new k(e).valueOf();\n }\n /**\n * Checks if the TimeStamp is after or equal to the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is after or equal to the given TimeStamp,\n * false otherwise.\n */\n afterEq(e) {\n return this.valueOf() >= new k(e).valueOf();\n }\n /**\n * Checks if the TimeStamp is before the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is before the given TimeStamp, false\n * otherwise.\n */\n before(e) {\n return this.valueOf() < new k(e).valueOf();\n }\n /**\n * Checks if TimeStamp is before or equal to the current timestamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if TimeStamp is before or equal to the current timestamp,\n * false otherwise.\n */\n beforeEq(e) {\n return this.valueOf() <= new k(e).valueOf();\n }\n /**\n * Adds a TimeSpan to the TimeStamp.\n *\n * @param span - The TimeSpan to add.\n * @returns A new TimeStamp representing the sum of the TimeStamp and\n * TimeSpan.\n */\n add(e) {\n return new k(this.valueOf() + BigInt(e.valueOf()));\n }\n /**\n * Subtracts a TimeSpan from the TimeStamp.\n *\n * @param span - The TimeSpan to subtract.\n * @returns A new TimeStamp representing the difference of the TimeStamp and\n * TimeSpan.\n */\n sub(e) {\n return new k(this.valueOf() - BigInt(e.valueOf()));\n }\n /**\n * @returns The number of milliseconds since the unix epoch.\n */\n milliseconds() {\n return Number(this.valueOf() / k.MILLISECOND.valueOf());\n }\n toString() {\n return this.date().toISOString();\n }\n /**\n * @returns A new TimeStamp that is the remainder of the TimeStamp divided by the\n * given span. This is useful in cases where you want only part of a TimeStamp's value\n * i.e. the hours, minutes, seconds, milliseconds, microseconds, and nanoseconds but\n * not the days, years, etc.\n *\n * @param divisor - The TimeSpan to divide by. Must be an even TimeSpan or TimeStamp. Even\n * means it must be a day, hour, minute, second, millisecond, or microsecond, etc.\n *\n * @example TimeStamp.now().remainder(TimeStamp.DAY) // => TimeStamp representing the current day\n */\n remainder(e) {\n return Jn(this, e);\n }\n /** @returns true if the day portion TimeStamp is today, false otherwise. */\n get isToday() {\n return this.truncate(Y.DAY).equals(k.now().truncate(Y.DAY));\n }\n truncate(e) {\n return this.sub(this.remainder(e));\n }\n /**\n * @returns A new TimeStamp representing the current time in UTC. It's important to\n * note that this TimeStamp is only accurate to the millisecond level (that's the best\n * JavaScript can do).\n */\n static now() {\n return new k(/* @__PURE__ */ new Date());\n }\n static max(...e) {\n let t = k.MIN;\n for (const n of e) {\n const s = new k(n);\n s.after(t) && (t = s);\n }\n return t;\n }\n static min(...e) {\n let t = k.MAX;\n for (const n of e) {\n const s = new k(n);\n s.before(t) && (t = s);\n }\n return t;\n }\n /** @returns a new TimeStamp n nanoseconds after the unix epoch */\n static nanoseconds(e) {\n return new k(e);\n }\n /** @returns a new TimeStamp n microseconds after the unix epoch */\n static microseconds(e) {\n return k.nanoseconds(e * 1e3);\n }\n /** @returns a new TimeStamp n milliseconds after the unix epoch */\n static milliseconds(e) {\n return k.microseconds(e * 1e3);\n }\n /** @returns a new TimeStamp n seconds after the unix epoch */\n static seconds(e) {\n return k.milliseconds(e * 1e3);\n }\n /** @returns a new TimeStamp n minutes after the unix epoch */\n static minutes(e) {\n return k.seconds(e * 60);\n }\n /** @returns a new TimeStamp n hours after the unix epoch */\n static hours(e) {\n return k.minutes(e * 60);\n }\n /** @returns a new TimeStamp n days after the unix epoch */\n static days(e) {\n return k.hours(e * 24);\n }\n};\nm(M, \"NANOSECOND\", M.nanoseconds(1)), /** One microsecond after the unix epoch */\nm(M, \"MICROSECOND\", M.microseconds(1)), /** One millisecond after the unix epoch */\nm(M, \"MILLISECOND\", M.milliseconds(1)), /** One second after the unix epoch */\nm(M, \"SECOND\", M.seconds(1)), /** One minute after the unix epoch */\nm(M, \"MINUTE\", M.minutes(1)), /** One hour after the unix epoch */\nm(M, \"HOUR\", M.hours(1)), /** One day after the unix epoch */\nm(M, \"DAY\", M.days(1)), /** The maximum possible value for a timestamp */\nm(M, \"MAX\", new M((1n << 63n) - 1n)), /** The minimum possible value for a timestamp */\nm(M, \"MIN\", new M(0)), /** The unix epoch */\nm(M, \"ZERO\", new M(0)), /** A zod schema for validating timestamps */\nm(M, \"z\", d.union([\n d.object({ value: d.bigint() }).transform((r) => new M(r.value)),\n d.string().transform((r) => new M(BigInt(r))),\n d.instanceof(Number).transform((r) => new M(r)),\n d.number().transform((r) => new M(r)),\n d.instanceof(M)\n]));\nlet V = M;\nconst P = class R {\n constructor(e) {\n m(this, \"value\"), m(this, \"encodeValue\", !0), typeof e == \"number\" && (e = Math.trunc(e.valueOf())), this.value = BigInt(e.valueOf());\n }\n encode() {\n return this.value.toString();\n }\n valueOf() {\n return this.value;\n }\n lessThan(e) {\n return this.valueOf() < new R(e).valueOf();\n }\n greaterThan(e) {\n return this.valueOf() > new R(e).valueOf();\n }\n lessThanOrEqual(e) {\n return this.valueOf() <= new R(e).valueOf();\n }\n greaterThanOrEqual(e) {\n return this.valueOf() >= new R(e).valueOf();\n }\n remainder(e) {\n return Jn(this, e);\n }\n truncate(e) {\n return new R(\n BigInt(Math.trunc(Number(this.valueOf() / e.valueOf()))) * e.valueOf()\n );\n }\n toString() {\n const e = this.truncate(R.DAY), t = this.truncate(R.HOUR), n = this.truncate(R.MINUTE), s = this.truncate(R.SECOND), a = this.truncate(R.MILLISECOND), i = this.truncate(R.MICROSECOND), o = this.truncate(R.NANOSECOND), u = e, c = t.sub(e), p = n.sub(t), Z = s.sub(n), K = a.sub(s), le = i.sub(a), he = o.sub(i);\n let X = \"\";\n return u.isZero || (X += `${u.days}d `), c.isZero || (X += `${c.hours}h `), p.isZero || (X += `${p.minutes}m `), Z.isZero || (X += `${Z.seconds}s `), K.isZero || (X += `${K.milliseconds}ms `), le.isZero || (X += `${le.microseconds}µs `), he.isZero || (X += `${he.nanoseconds}ns`), X.trim();\n }\n /** @returns the decimal number of days in the timespan */\n get days() {\n return Number(this.valueOf() / R.DAY.valueOf());\n }\n /** @returns the decimal number of hours in the timespan */\n get hours() {\n return Number(this.valueOf() / R.HOUR.valueOf());\n }\n /** @returns the decimal number of minutes in the timespan */\n get minutes() {\n return Number(this.valueOf() / R.MINUTE.valueOf());\n }\n /** @returns The number of seconds in the TimeSpan. */\n get seconds() {\n return Number(this.valueOf() / R.SECOND.valueOf());\n }\n /** @returns The number of milliseconds in the TimeSpan. */\n get milliseconds() {\n return Number(this.valueOf() / R.MILLISECOND.valueOf());\n }\n get microseconds() {\n return Number(this.valueOf() / R.MICROSECOND.valueOf());\n }\n get nanoseconds() {\n return Number(this.valueOf());\n }\n /**\n * Checks if the TimeSpan represents a zero duration.\n *\n * @returns True if the TimeSpan represents a zero duration, false otherwise.\n */\n get isZero() {\n return this.valueOf() === BigInt(0);\n }\n /**\n * Checks if the TimeSpan is equal to another TimeSpan.\n *\n * @returns True if the TimeSpans are equal, false otherwise.\n */\n equals(e) {\n return this.valueOf() === new R(e).valueOf();\n }\n /**\n * Adds a TimeSpan to the TimeSpan.\n *\n * @returns A new TimeSpan representing the sum of the two TimeSpans.\n */\n add(e) {\n return new R(this.valueOf() + new R(e).valueOf());\n }\n /**\n * Creates a TimeSpan representing the duration between the two timestamps.\n *\n * @param other\n */\n sub(e) {\n return new R(this.valueOf() - new R(e).valueOf());\n }\n /**\n * Creates a TimeSpan representing the given number of nanoseconds.\n *\n * @param value - The number of nanoseconds.\n * @returns A TimeSpan representing the given number of nanoseconds.\n */\n static nanoseconds(e = 1) {\n return new R(e);\n }\n /**\n * Creates a TimeSpan representing the given number of microseconds.\n *\n * @param value - The number of microseconds.\n * @returns A TimeSpan representing the given number of microseconds.\n */\n static microseconds(e = 1) {\n return R.nanoseconds(e * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of milliseconds.\n *\n * @param value - The number of milliseconds.\n * @returns A TimeSpan representing the given number of milliseconds.\n */\n static milliseconds(e = 1) {\n return R.microseconds(e * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of seconds.\n *\n * @param value - The number of seconds.\n * @returns A TimeSpan representing the given number of seconds.\n */\n static seconds(e = 1) {\n return R.milliseconds(e * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of minutes.\n *\n * @param value - The number of minutes.\n * @returns A TimeSpan representing the given number of minutes.\n */\n static minutes(e) {\n return R.seconds(e.valueOf() * 60);\n }\n /**\n * Creates a TimeSpan representing the given number of hours.\n *\n * @param value - The number of hours.\n * @returns A TimeSpan representing the given number of hours.\n */\n static hours(e) {\n return R.minutes(e * 60);\n }\n /**\n * Creates a TimeSpan representing the given number of days.\n *\n * @param value - The number of days.\n * @returns A TimeSpan representing the given number of days.\n */\n static days(e) {\n return R.hours(e * 24);\n }\n};\nm(P, \"NANOSECOND\", P.nanoseconds(1)), /** A microsecond. */\nm(P, \"MICROSECOND\", P.microseconds(1)), /** A millisecond. */\nm(P, \"MILLISECOND\", P.milliseconds(1)), /** A second. */\nm(P, \"SECOND\", P.seconds(1)), /** A minute. */\nm(P, \"MINUTE\", P.minutes(1)), /** Represents an hour. */\nm(P, \"HOUR\", P.hours(1)), /** Represents a day. */\nm(P, \"DAY\", P.days(1)), /** The maximum possible value for a TimeSpan. */\nm(P, \"MAX\", new P((1n << 63n) - 1n)), /** The minimum possible value for a TimeSpan. */\nm(P, \"MIN\", new P(0)), /** The zero value for a TimeSpan. */\nm(P, \"ZERO\", new P(0)), /** A zod schema for validating and transforming timespans */\nm(P, \"z\", d.union([\n d.object({ value: d.bigint() }).transform((r) => new P(r.value)),\n d.string().transform((r) => new P(BigInt(r))),\n d.instanceof(Number).transform((r) => new P(r)),\n d.number().transform((r) => new P(r)),\n d.instanceof(P)\n]));\nlet Y = P;\nconst Ct = class zt extends Number {\n constructor(e) {\n e instanceof Number ? super(e.valueOf()) : super(e);\n }\n /** @returns a pretty string representation of the rate in the format \"X Hz\". */\n toString() {\n return `${this.valueOf()} Hz`;\n }\n /** @returns The number of seconds in the Rate. */\n equals(e) {\n return this.valueOf() === new zt(e).valueOf();\n }\n /**\n * Calculates the period of the Rate as a TimeSpan.\n *\n * @returns A TimeSpan representing the period of the Rate.\n */\n get period() {\n return Y.seconds(1 / this.valueOf());\n }\n /**\n * Calculates the number of samples in the given TimeSpan at this rate.\n *\n * @param duration - The duration to calculate the sample count from.\n * @returns The number of samples in the given TimeSpan at this rate.\n */\n sampleCount(e) {\n return new Y(e).seconds * this.valueOf();\n }\n /**\n * Calculates the number of bytes in the given TimeSpan at this rate.\n *\n * @param span - The duration to calculate the byte count from.\n * @param density - The density of the data in bytes per sample.\n * @returns The number of bytes in the given TimeSpan at this rate.\n */\n byteCount(e, t) {\n return this.sampleCount(e) * new G(t).valueOf();\n }\n /**\n * Calculates a TimeSpan given the number of samples at this rate.\n *\n * @param sampleCount - The number of samples in the span.\n * @returns A TimeSpan that corresponds to the given number of samples.\n */\n span(e) {\n return Y.seconds(e / this.valueOf());\n }\n /**\n * Calculates a TimeSpan given the number of bytes at this rate.\n *\n * @param size - The number of bytes in the span.\n * @param density - The density of the data in bytes per sample.\n * @returns A TimeSpan that corresponds to the given number of bytes.\n */\n byteSpan(e, t) {\n return this.span(e.valueOf() / t.valueOf());\n }\n /**\n * Creates a Rate representing the given number of Hz.\n *\n * @param value - The number of Hz.\n * @returns A Rate representing the given number of Hz.\n */\n static hz(e) {\n return new zt(e);\n }\n /**\n * Creates a Rate representing the given number of kHz.\n *\n * @param value - The number of kHz.\n * @returns A Rate representing the given number of kHz.\n */\n static khz(e) {\n return zt.hz(e * 1e3);\n }\n};\nm(Ct, \"z\", d.union([\n d.number().transform((r) => new Ct(r)),\n d.instanceof(Number).transform((r) => new Ct(r)),\n d.instanceof(Ct)\n]));\nconst B = class extends Number {\n /**\n * Creates a Density representing the given number of bytes per value.\n *\n * @class\n * @param value - The number of bytes per value.\n * @returns A Density representing the given number of bytes per value.\n */\n constructor(e) {\n e instanceof Number ? super(e.valueOf()) : super(e);\n }\n length(e) {\n return e.valueOf() / this.valueOf();\n }\n size(e) {\n return new hi(e * this.valueOf());\n }\n};\nm(B, \"UNKNOWN\", new B(0)), /** 128 bits per value. */\nm(B, \"BIT128\", new B(16)), /** 64 bits per value. */\nm(B, \"BIT64\", new B(8)), /** 32 bits per value. */\nm(B, \"BIT32\", new B(4)), /** 16 bits per value. */\nm(B, \"BIT16\", new B(2)), /** 8 bits per value. */\nm(B, \"BIT8\", new B(1)), /** A zod schema for validating and transforming densities */\nm(B, \"z\", d.union([\n d.number().transform((r) => new B(r)),\n d.instanceof(Number).transform((r) => new B(r)),\n d.instanceof(B)\n]));\nlet G = B;\nconst ie = class Bt {\n /**\n * Creates a TimeRange from the given start and end TimeStamps.\n *\n * @param start - A TimeStamp representing the start of the range.\n * @param end - A TimeStamp representing the end of the range.\n */\n constructor(e, t) {\n m(this, \"start\"), m(this, \"end\"), typeof e == \"object\" && \"start\" in e ? (this.start = new V(e.start), this.end = new V(e.end)) : (this.start = new V(e), this.end = new V(t));\n }\n /** @returns The TimeSpan occupied by the TimeRange. */\n get span() {\n return new Y(this.end.valueOf() - this.start.valueOf());\n }\n /**\n * Checks if the timestamp is valid i.e. the start is before the end.\n *\n * @returns True if the TimeRange is valid.\n */\n get isValid() {\n return this.start.valueOf() <= this.end.valueOf();\n }\n /**\n * Makes sure the TimeRange is valid i.e. the start is before the end.\n *\n * @returns A TimeRange that is valid.\n */\n makeValid() {\n return this.isValid ? this : this.swap();\n }\n /**\n * Checks if the TimeRange has a zero span.\n *\n * @returns True if the TimeRange has a zero span.\n */\n get isZero() {\n return this.span.isZero;\n }\n /**\n * Creates a new TimeRange with the start and end swapped.\n *\n * @returns A TimeRange with the start and end swapped.\n */\n swap() {\n return new Bt(this.end, this.start);\n }\n /**\n * Checks if the TimeRange is equal to the given TimeRange.\n *\n * @param other - The TimeRange to compare to.\n * @returns True if the TimeRange is equal to the given TimeRange.\n */\n equals(e) {\n return this.start.equals(e.start) && this.end.equals(e.end);\n }\n toString() {\n return `${this.start.toString()} - ${this.end.toString()}`;\n }\n toPrettyString() {\n return `${this.start.fString(\"preciseDate\")} - ${this.span.toString()}`;\n }\n /**\n * Checks if if the two time ranges overlap. If the two time ranges are equal, returns\n * true. If the start of one range is equal to the end of the other, returns false.\n * Just follow the rule [start, end) i.e. start is inclusive and end is exclusive.\n *\n * @param other - The other TimeRange to compare to.\n * @returns True if the two TimeRanges overlap, false otherwise.\n */\n overlapsWith(e, t = Y.ZERO) {\n e = e.makeValid();\n const n = this.makeValid();\n if (this.equals(e))\n return !0;\n if (e.end.equals(n.start) || n.end.equals(e.start))\n return !1;\n const s = V.max(n.start, e.start), a = V.min(n.end, e.end);\n return a.before(s) ? !1 : new Y(a.sub(s)).greaterThanOrEqual(t);\n }\n roughlyEquals(e, t) {\n let n = this.start.sub(e.start).valueOf(), s = this.end.sub(e.end).valueOf();\n return n < 0 && (n = -n), s < 0 && (s = -s), n <= t.valueOf() && s <= t.valueOf();\n }\n contains(e) {\n return e instanceof Bt ? this.contains(e.start) && this.contains(e.end) : this.start.beforeEq(e) && this.end.after(e);\n }\n boundBy(e) {\n const t = new Bt(this.start, this.end);\n return e.start.after(this.start) && (t.start = e.start), e.start.after(this.end) && (t.end = e.start), e.end.before(this.end) && (t.end = e.end), e.end.before(this.start) && (t.start = e.end), t;\n }\n};\nm(ie, \"MAX\", new ie(V.MIN, V.MAX)), /** The minimum possible time range. */\nm(ie, \"MIN\", new ie(V.MAX, V.MIN)), /** A zero time range. */\nm(ie, \"ZERO\", new ie(V.ZERO, V.ZERO)), /** A zod schema for validating and transforming time ranges */\nm(ie, \"z\", d.union([\n d.object({ start: V.z, end: V.z }).transform((r) => new ie(r.start, r.end)),\n d.instanceof(ie)\n]));\nlet li = ie;\nconst l = class oe extends String {\n constructor(e) {\n if (e instanceof oe || typeof e == \"string\" || typeof e.valueOf() == \"string\") {\n super(e.valueOf());\n return;\n } else {\n const t = oe.ARRAY_CONSTRUCTOR_DATA_TYPES.get(e.constructor.name);\n if (t != null) {\n super(t.valueOf());\n return;\n }\n }\n throw super(oe.UNKNOWN.valueOf()), new Error(`unable to find data type for ${e.toString()}`);\n }\n /**\n * @returns the TypedArray constructor for the DataType.\n */\n get Array() {\n const e = oe.ARRAY_CONSTRUCTORS.get(this.toString());\n if (e == null)\n throw new Error(`unable to find array constructor for ${this.valueOf()}`);\n return e;\n }\n equals(e) {\n return this.valueOf() === e.valueOf();\n }\n /** @returns a string representation of the DataType. */\n toString() {\n return this.valueOf();\n }\n get isVariable() {\n return this.equals(oe.JSON) || this.equals(oe.STRING);\n }\n get isNumeric() {\n return !this.isVariable && !this.equals(oe.UUID);\n }\n get isInteger() {\n return this.toString().startsWith(\"int\");\n }\n get isFloat() {\n return this.toString().startsWith(\"float\");\n }\n get density() {\n const e = oe.DENSITIES.get(this.toString());\n if (e == null)\n throw new Error(`unable to find density for ${this.valueOf()}`);\n return e;\n }\n /** @returns true if the data type can be cast to the other data type without loss of precision. */\n canSafelyCastTo(e) {\n return this.equals(e) ? !0 : this.isVariable && !e.isVariable || !this.isVariable && e.isVariable ? !1 : this.isFloat && e.isInteger || this.isInteger && e.isFloat ? this.density.valueOf() < e.density.valueOf() : this.isFloat && e.isFloat || this.isInteger && e.isInteger ? this.density.valueOf() <= e.density.valueOf() : !1;\n }\n /** @returns true if the data type can be cast to the other data type, even if there is a loss of precision. */\n canCastTo(e) {\n return this.isNumeric && e.isNumeric ? !0 : this.equals(e);\n }\n /**\n * Checks whether the given TypedArray is of the same type as the DataType.\n *\n * @param array - The TypedArray to check.\n * @returns True if the TypedArray is of the same type as the DataType.\n */\n checkArray(e) {\n return e.constructor === this.Array;\n }\n toJSON() {\n return this.toString();\n }\n get usesBigInt() {\n return oe.BIG_INT_TYPES.some((e) => e.equals(this));\n }\n};\nm(l, \"UNKNOWN\", new l(\"unknown\")), /** Represents a 64-bit floating point value. */\nm(l, \"FLOAT64\", new l(\"float64\")), /** Represents a 32-bit floating point value. */\nm(l, \"FLOAT32\", new l(\"float32\")), /** Represents a 64-bit signed integer value. */\nm(l, \"INT64\", new l(\"int64\")), /** Represents a 32-bit signed integer value. */\nm(l, \"INT32\", new l(\"int32\")), /** Represents a 16-bit signed integer value. */\nm(l, \"INT16\", new l(\"int16\")), /** Represents a 8-bit signed integer value. */\nm(l, \"INT8\", new l(\"int8\")), /** Represents a 64-bit unsigned integer value. */\nm(l, \"UINT64\", new l(\"uint64\")), /** Represents a 32-bit unsigned integer value. */\nm(l, \"UINT32\", new l(\"uint32\")), /** Represents a 16-bit unsigned integer value. */\nm(l, \"UINT16\", new l(\"uint16\")), /** Represents a 8-bit unsigned integer value. */\nm(l, \"UINT8\", new l(\"uint8\")), /** Represents a boolean value. Alias for UINT8. */\nm(l, \"BOOLEAN\", l.UINT8), /** Represents a 64-bit unix epoch. */\nm(l, \"TIMESTAMP\", new l(\"timestamp\")), /** Represents a UUID data type */\nm(l, \"UUID\", new l(\"uuid\")), /** Represents a string data type. Strings have an unknown density, and are separate\n* by a newline character. */\nm(l, \"STRING\", new l(\"string\")), /** Represents a JSON data type. JSON has an unknown density, and is separated by a\n* newline character. */\nm(l, \"JSON\", new l(\"json\")), m(l, \"ARRAY_CONSTRUCTORS\", /* @__PURE__ */ new Map([\n [l.UINT8.toString(), Uint8Array],\n [l.UINT16.toString(), Uint16Array],\n [l.UINT32.toString(), Uint32Array],\n [l.UINT64.toString(), BigUint64Array],\n [l.FLOAT32.toString(), Float32Array],\n [l.FLOAT64.toString(), Float64Array],\n [l.INT8.toString(), Int8Array],\n [l.INT16.toString(), Int16Array],\n [l.INT32.toString(), Int32Array],\n [l.INT64.toString(), BigInt64Array],\n [l.TIMESTAMP.toString(), BigInt64Array],\n [l.STRING.toString(), Uint8Array],\n [l.JSON.toString(), Uint8Array],\n [l.UUID.toString(), Uint8Array]\n])), m(l, \"ARRAY_CONSTRUCTOR_DATA_TYPES\", /* @__PURE__ */ new Map([\n [Uint8Array.name, l.UINT8],\n [Uint16Array.name, l.UINT16],\n [Uint32Array.name, l.UINT32],\n [BigUint64Array.name, l.UINT64],\n [Float32Array.name, l.FLOAT32],\n [Float64Array.name, l.FLOAT64],\n [Int8Array.name, l.INT8],\n [Int16Array.name, l.INT16],\n [Int32Array.name, l.INT32],\n [BigInt64Array.name, l.INT64]\n])), m(l, \"DENSITIES\", /* @__PURE__ */ new Map([\n [l.UINT8.toString(), G.BIT8],\n [l.UINT16.toString(), G.BIT16],\n [l.UINT32.toString(), G.BIT32],\n [l.UINT64.toString(), G.BIT64],\n [l.FLOAT32.toString(), G.BIT32],\n [l.FLOAT64.toString(), G.BIT64],\n [l.INT8.toString(), G.BIT8],\n [l.INT16.toString(), G.BIT16],\n [l.INT32.toString(), G.BIT32],\n [l.INT64.toString(), G.BIT64],\n [l.TIMESTAMP.toString(), G.BIT64],\n [l.STRING.toString(), G.UNKNOWN],\n [l.JSON.toString(), G.UNKNOWN],\n [l.UUID.toString(), G.BIT128]\n])), /** All the data types. */\nm(l, \"ALL\", [\n l.UNKNOWN,\n l.FLOAT64,\n l.FLOAT32,\n l.INT64,\n l.INT32,\n l.INT16,\n l.INT8,\n l.UINT64,\n l.UINT32,\n l.UINT16,\n l.UINT8,\n l.TIMESTAMP,\n l.UUID,\n l.STRING,\n l.JSON\n]), m(l, \"BIG_INT_TYPES\", [l.INT64, l.UINT64, l.TIMESTAMP]), /** A zod schema for a DataType. */\nm(l, \"z\", d.union([\n d.string().transform((r) => new l(r)),\n d.instanceof(l)\n]));\nconst W = class z extends Number {\n constructor(e) {\n super(e.valueOf());\n }\n /** @returns true if the Size is larger than the other size. */\n largerThan(e) {\n return this.valueOf() > e.valueOf();\n }\n /** @returns true if the Size is smaller than the other sisze. */\n smallerThan(e) {\n return this.valueOf() < e.valueOf();\n }\n add(e) {\n return z.bytes(this.valueOf() + e.valueOf());\n }\n sub(e) {\n return z.bytes(this.valueOf() - e.valueOf());\n }\n truncate(e) {\n return new z(Math.trunc(this.valueOf() / e.valueOf()) * e.valueOf());\n }\n remainder(e) {\n return z.bytes(this.valueOf() % e.valueOf());\n }\n get gigabytes() {\n return this.valueOf() / z.GIGABYTE.valueOf();\n }\n get megabytes() {\n return this.valueOf() / z.MEGABYTE.valueOf();\n }\n get kilobytes() {\n return this.valueOf() / z.KILOBYTE.valueOf();\n }\n get terabytes() {\n return this.valueOf() / z.TERABYTE.valueOf();\n }\n toString() {\n const e = this.truncate(z.TERABYTE), t = this.truncate(z.GIGABYTE), n = this.truncate(z.MEGABYTE), s = this.truncate(z.KILOBYTE), a = this.truncate(z.BYTE), i = e, o = t.sub(e), u = n.sub(t), c = s.sub(n), p = a.sub(s);\n let Z = \"\";\n return i.isZero || (Z += `${i.terabytes}TB `), o.isZero || (Z += `${o.gigabytes}GB `), u.isZero || (Z += `${u.megabytes}MB `), c.isZero || (Z += `${c.kilobytes}KB `), (!p.isZero || Z === \"\") && (Z += `${p.valueOf()}B`), Z.trim();\n }\n /**\n * Creates a Size from the given number of bytes.\n *\n * @param value - The number of bytes.\n * @returns A Size representing the given number of bytes.\n */\n static bytes(e = 1) {\n return new z(e);\n }\n /**\n * Creates a Size from the given number if kilobytes.\n *\n * @param value - The number of kilobytes.\n * @returns A Size representing the given number of kilobytes.\n */\n static kilobytes(e = 1) {\n return z.bytes(e.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of megabytes.\n *\n * @param value - The number of megabytes.\n * @returns A Size representing the given number of megabytes.\n */\n static megabytes(e = 1) {\n return z.kilobytes(e.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of gigabytes.\n *\n * @param value - The number of gigabytes.\n * @returns A Size representing the given number of gigabytes.\n */\n static gigabytes(e = 1) {\n return z.megabytes(e.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of terabytes.\n *\n * @param value - The number of terabytes.\n * @returns A Size representing the given number of terabytes.\n */\n static terabytes(e) {\n return z.gigabytes(e.valueOf() * 1e3);\n }\n get isZero() {\n return this.valueOf() === 0;\n }\n};\nm(W, \"BYTE\", new W(1)), /** A kilobyte */\nm(W, \"KILOBYTE\", W.kilobytes(1)), /** A megabyte */\nm(W, \"MEGABYTE\", W.megabytes(1)), /** A gigabyte */\nm(W, \"GIGABYTE\", W.gigabytes(1)), /** A terabyte. */\nm(W, \"TERABYTE\", W.terabytes(1)), /** The zero value for Size */\nm(W, \"ZERO\", new W(0)), /** A zod schema for a Size. */\nm(W, \"z\", d.union([\n d.number().transform((r) => new W(r)),\n d.instanceof(W)\n]));\nlet hi = W;\nd.union([\n d.instanceof(Uint8Array),\n d.instanceof(Uint16Array),\n d.instanceof(Uint32Array),\n d.instanceof(BigUint64Array),\n d.instanceof(Float32Array),\n d.instanceof(Float64Array),\n d.instanceof(Int8Array),\n d.instanceof(Int16Array),\n d.instanceof(Int32Array),\n d.instanceof(BigInt64Array)\n]);\nd.record(\n d.union([d.number(), d.string(), d.symbol()]),\n d.unknown()\n);\nconst fi = (r) => r != null && typeof r == \"object\" && !Array.isArray(r), Xn = () => (\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n typeof process < \"u\" && process.versions != null && process.versions.node != null ? \"node\" : typeof window > \"u\" || window.document === void 0 ? \"webworker\" : \"browser\"\n), pi = Xn(), Qn = [\"MacOS\", \"Windows\", \"Linux\", \"Docker\"], mi = d.enum(Qn);\nlet kr;\nconst yi = () => {\n if (typeof window > \"u\")\n return;\n const r = window.navigator.userAgent.toLowerCase();\n if (r.includes(\"mac\"))\n return \"MacOS\";\n if (r.includes(\"win\"))\n return \"Windows\";\n if (r.includes(\"linux\"))\n return \"Linux\";\n}, vi = (r = {}) => {\n const { force: e, default: t } = r;\n return e ?? kr ?? (kr = yi(), kr ?? t);\n}, es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n OPERATING_SYSTEMS: Qn,\n RUNTIME: pi,\n detect: Xn,\n getOS: vi,\n osZ: mi\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar gi = Object.defineProperty, _i = (r, e, t) => e in r ? gi(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, nt = (r, e, t) => (_i(r, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nconst bi = (...r) => r.map(ts).join(\"\"), ts = (r) => (r.endsWith(\"/\") || (r += \"/\"), r.startsWith(\"/\") && (r = r.slice(1)), r), wi = (r) => r.endsWith(\"/\") ? r.slice(0, -1) : r, xi = (r, e = \"\") => r === null ? \"\" : \"?\" + Object.entries(r).filter(([, t]) => t == null ? !1 : Array.isArray(t) ? t.length > 0 : !0).map(([t, n]) => `${e}${t}=${n}`).join(\"&\"), jr = class Rr {\n /**\n * @param host - The hostname or IP address of the server.\n * @param port - The port number of the server.\n * @param protocol - The protocol to use for all requests. Defaults to \"\".\n * @param pathPrefix - A path prefix to use for all requests. Defaults to \"\".\n */\n constructor({ host: e, port: t, protocol: n = \"\", pathPrefix: s = \"\" }) {\n nt(this, \"protocol\"), nt(this, \"host\"), nt(this, \"port\"), nt(this, \"path\"), this.protocol = n, this.host = e, this.port = t, this.path = ts(s);\n }\n /**\n * Replaces creates a new URL with the specified properties replaced.\n * @param props - The properties to replace.\n * @returns a new URL.\n */\n replace(e) {\n return new Rr({\n host: e.host ?? this.host,\n port: e.port ?? this.port,\n protocol: e.protocol ?? this.protocol,\n pathPrefix: e.pathPrefix ?? this.path\n });\n }\n /**\n * Creates a new url with the given path appended to the current path.\n * @param path - the path to append to the URL.\n * @returns a new URL.\n */\n child(e) {\n return new Rr({\n ...this,\n pathPrefix: bi(this.path, e)\n });\n }\n /** @returns a string representation of the url */\n toString() {\n return wi(\n `${this.protocol}://${this.host}:${this.port}/${this.path}`\n );\n }\n};\nnt(jr, \"UNKNOWN\", new jr({ host: \"unknown\", port: 0 }));\nlet Ti = jr;\nvar Oi = Object.defineProperty, ki = (r, e, t) => e in r ? Oi(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, Sr = (r, e, t) => (ki(r, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nlet Si = class {\n constructor() {\n Sr(this, \"contentType\", \"application/json\"), Sr(this, \"decoder\"), Sr(this, \"encoder\"), this.decoder = new TextDecoder(), this.encoder = new TextEncoder();\n }\n encode(e) {\n return this.encoder.encode(this.encodeString(e)).buffer;\n }\n decode(e, t) {\n return this.decodeString(this.decoder.decode(e), t);\n }\n decodeString(e, t) {\n const n = Ps(JSON.parse(e));\n return t != null ? t.parse(n) : n;\n }\n encodeString(e) {\n return JSON.stringify(Ms(e), (t, n) => ArrayBuffer.isView(n) ? Array.from(n) : fi(n) && \"encode_value\" in n ? typeof n.value == \"bigint\" ? n.value.toString() : n.value : typeof n == \"bigint\" ? n.toString() : n);\n }\n static registerCustomType() {\n }\n};\nnew Si();\nconst Ni = d.string().regex(/^\\d+\\.\\d+\\.\\d+$/);\nd.object({\n version: Ni\n});\nvar j;\n(function(r) {\n r.assertEqual = (s) => s;\n function e(s) {\n }\n r.assertIs = e;\n function t(s) {\n throw new Error();\n }\n r.assertNever = t, r.arrayToEnum = (s) => {\n const a = {};\n for (const i of s)\n a[i] = i;\n return a;\n }, r.getValidEnumValues = (s) => {\n const a = r.objectKeys(s).filter((o) => typeof s[s[o]] != \"number\"), i = {};\n for (const o of a)\n i[o] = s[o];\n return r.objectValues(i);\n }, r.objectValues = (s) => r.objectKeys(s).map(function(a) {\n return s[a];\n }), r.objectKeys = typeof Object.keys == \"function\" ? (s) => Object.keys(s) : (s) => {\n const a = [];\n for (const i in s)\n Object.prototype.hasOwnProperty.call(s, i) && a.push(i);\n return a;\n }, r.find = (s, a) => {\n for (const i of s)\n if (a(i))\n return i;\n }, r.isInteger = typeof Number.isInteger == \"function\" ? (s) => Number.isInteger(s) : (s) => typeof s == \"number\" && isFinite(s) && Math.floor(s) === s;\n function n(s, a = \" | \") {\n return s.map((i) => typeof i == \"string\" ? `'${i}'` : i).join(a);\n }\n r.joinValues = n, r.jsonStringifyReplacer = (s, a) => typeof a == \"bigint\" ? a.toString() : a;\n})(j || (j = {}));\nvar Mr;\n(function(r) {\n r.mergeShapes = (e, t) => ({\n ...e,\n ...t\n // second overwrites first\n });\n})(Mr || (Mr = {}));\nconst v = j.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]), Ne = (r) => {\n switch (typeof r) {\n case \"undefined\":\n return v.undefined;\n case \"string\":\n return v.string;\n case \"number\":\n return isNaN(r) ? v.nan : v.number;\n case \"boolean\":\n return v.boolean;\n case \"function\":\n return v.function;\n case \"bigint\":\n return v.bigint;\n case \"symbol\":\n return v.symbol;\n case \"object\":\n return Array.isArray(r) ? v.array : r === null ? v.null : r.then && typeof r.then == \"function\" && r.catch && typeof r.catch == \"function\" ? v.promise : typeof Map < \"u\" && r instanceof Map ? v.map : typeof Set < \"u\" && r instanceof Set ? v.set : typeof Date < \"u\" && r instanceof Date ? v.date : v.object;\n default:\n return v.unknown;\n }\n}, f = j.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]), Ii = (r) => JSON.stringify(r, null, 2).replace(/\"([^\"]+)\":/g, \"$1:\");\nclass re extends Error {\n constructor(e) {\n super(), this.issues = [], this.addIssue = (n) => {\n this.issues = [...this.issues, n];\n }, this.addIssues = (n = []) => {\n this.issues = [...this.issues, ...n];\n };\n const t = new.target.prototype;\n Object.setPrototypeOf ? Object.setPrototypeOf(this, t) : this.__proto__ = t, this.name = \"ZodError\", this.issues = e;\n }\n get errors() {\n return this.issues;\n }\n format(e) {\n const t = e || function(a) {\n return a.message;\n }, n = { _errors: [] }, s = (a) => {\n for (const i of a.issues)\n if (i.code === \"invalid_union\")\n i.unionErrors.map(s);\n else if (i.code === \"invalid_return_type\")\n s(i.returnTypeError);\n else if (i.code === \"invalid_arguments\")\n s(i.argumentsError);\n else if (i.path.length === 0)\n n._errors.push(t(i));\n else {\n let o = n, u = 0;\n for (; u < i.path.length; ) {\n const c = i.path[u];\n u === i.path.length - 1 ? (o[c] = o[c] || { _errors: [] }, o[c]._errors.push(t(i))) : o[c] = o[c] || { _errors: [] }, o = o[c], u++;\n }\n }\n };\n return s(this), n;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, j.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(e = (t) => t.message) {\n const t = {}, n = [];\n for (const s of this.issues)\n s.path.length > 0 ? (t[s.path[0]] = t[s.path[0]] || [], t[s.path[0]].push(e(s))) : n.push(e(s));\n return { formErrors: n, fieldErrors: t };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nre.create = (r) => new re(r);\nconst yt = (r, e) => {\n let t;\n switch (r.code) {\n case f.invalid_type:\n r.received === v.undefined ? t = \"Required\" : t = `Expected ${r.expected}, received ${r.received}`;\n break;\n case f.invalid_literal:\n t = `Invalid literal value, expected ${JSON.stringify(r.expected, j.jsonStringifyReplacer)}`;\n break;\n case f.unrecognized_keys:\n t = `Unrecognized key(s) in object: ${j.joinValues(r.keys, \", \")}`;\n break;\n case f.invalid_union:\n t = \"Invalid input\";\n break;\n case f.invalid_union_discriminator:\n t = `Invalid discriminator value. Expected ${j.joinValues(r.options)}`;\n break;\n case f.invalid_enum_value:\n t = `Invalid enum value. Expected ${j.joinValues(r.options)}, received '${r.received}'`;\n break;\n case f.invalid_arguments:\n t = \"Invalid function arguments\";\n break;\n case f.invalid_return_type:\n t = \"Invalid function return type\";\n break;\n case f.invalid_date:\n t = \"Invalid date\";\n break;\n case f.invalid_string:\n typeof r.validation == \"object\" ? \"includes\" in r.validation ? (t = `Invalid input: must include \"${r.validation.includes}\"`, typeof r.validation.position == \"number\" && (t = `${t} at one or more positions greater than or equal to ${r.validation.position}`)) : \"startsWith\" in r.validation ? t = `Invalid input: must start with \"${r.validation.startsWith}\"` : \"endsWith\" in r.validation ? t = `Invalid input: must end with \"${r.validation.endsWith}\"` : j.assertNever(r.validation) : r.validation !== \"regex\" ? t = `Invalid ${r.validation}` : t = \"Invalid\";\n break;\n case f.too_small:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"more than\"} ${r.minimum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"over\"} ${r.minimum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${r.minimum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${new Date(Number(r.minimum))}` : t = \"Invalid input\";\n break;\n case f.too_big:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"less than\"} ${r.maximum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"under\"} ${r.maximum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"bigint\" ? t = `BigInt must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly\" : r.inclusive ? \"smaller than or equal to\" : \"smaller than\"} ${new Date(Number(r.maximum))}` : t = \"Invalid input\";\n break;\n case f.custom:\n t = \"Invalid input\";\n break;\n case f.invalid_intersection_types:\n t = \"Intersection results could not be merged\";\n break;\n case f.not_multiple_of:\n t = `Number must be a multiple of ${r.multipleOf}`;\n break;\n case f.not_finite:\n t = \"Number must be finite\";\n break;\n default:\n t = e.defaultError, j.assertNever(r);\n }\n return { message: t };\n};\nlet rs = yt;\nfunction Zi(r) {\n rs = r;\n}\nfunction tr() {\n return rs;\n}\nconst rr = (r) => {\n const { data: e, path: t, errorMaps: n, issueData: s } = r, a = [...t, ...s.path || []], i = {\n ...s,\n path: a\n };\n let o = \"\";\n const u = n.filter((c) => !!c).slice().reverse();\n for (const c of u)\n o = c(i, { data: e, defaultError: o }).message;\n return {\n ...s,\n path: a,\n message: s.message || o\n };\n}, Ei = [];\nfunction _(r, e) {\n const t = rr({\n issueData: e,\n data: r.data,\n path: r.path,\n errorMaps: [\n r.common.contextualErrorMap,\n r.schemaErrorMap,\n tr(),\n yt\n // then global default map\n ].filter((n) => !!n)\n });\n r.common.issues.push(t);\n}\nclass F {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n this.value === \"valid\" && (this.value = \"dirty\");\n }\n abort() {\n this.value !== \"aborted\" && (this.value = \"aborted\");\n }\n static mergeArray(e, t) {\n const n = [];\n for (const s of t) {\n if (s.status === \"aborted\")\n return O;\n s.status === \"dirty\" && e.dirty(), n.push(s.value);\n }\n return { status: e.value, value: n };\n }\n static async mergeObjectAsync(e, t) {\n const n = [];\n for (const s of t)\n n.push({\n key: await s.key,\n value: await s.value\n });\n return F.mergeObjectSync(e, n);\n }\n static mergeObjectSync(e, t) {\n const n = {};\n for (const s of t) {\n const { key: a, value: i } = s;\n if (a.status === \"aborted\" || i.status === \"aborted\")\n return O;\n a.status === \"dirty\" && e.dirty(), i.status === \"dirty\" && e.dirty(), a.value !== \"__proto__\" && (typeof i.value < \"u\" || s.alwaysSet) && (n[a.value] = i.value);\n }\n return { status: e.value, value: n };\n }\n}\nconst O = Object.freeze({\n status: \"aborted\"\n}), ns = (r) => ({ status: \"dirty\", value: r }), J = (r) => ({ status: \"valid\", value: r }), Pr = (r) => r.status === \"aborted\", Ur = (r) => r.status === \"dirty\", vt = (r) => r.status === \"valid\", nr = (r) => typeof Promise < \"u\" && r instanceof Promise;\nvar w;\n(function(r) {\n r.errToObj = (e) => typeof e == \"string\" ? { message: e } : e || {}, r.toString = (e) => typeof e == \"string\" ? e : e == null ? void 0 : e.message;\n})(w || (w = {}));\nclass ce {\n constructor(e, t, n, s) {\n this._cachedPath = [], this.parent = e, this.data = t, this._path = n, this._key = s;\n }\n get path() {\n return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath;\n }\n}\nconst cn = (r, e) => {\n if (vt(e))\n return { success: !0, data: e.value };\n if (!r.common.issues.length)\n throw new Error(\"Validation failed but no issues detected.\");\n return {\n success: !1,\n get error() {\n if (this._error)\n return this._error;\n const t = new re(r.common.issues);\n return this._error = t, this._error;\n }\n };\n};\nfunction I(r) {\n if (!r)\n return {};\n const { errorMap: e, invalid_type_error: t, required_error: n, description: s } = r;\n if (e && (t || n))\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n return e ? { errorMap: e, description: s } : { errorMap: (i, o) => i.code !== \"invalid_type\" ? { message: o.defaultError } : typeof o.data > \"u\" ? { message: n ?? o.defaultError } : { message: t ?? o.defaultError }, description: s };\n}\nclass C {\n constructor(e) {\n this.spa = this.safeParseAsync, this._def = e, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.readonly = this.readonly.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(e) {\n return Ne(e.data);\n }\n _getOrReturnCtx(e, t) {\n return t || {\n common: e.parent.common,\n data: e.data,\n parsedType: Ne(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n };\n }\n _processInputParams(e) {\n return {\n status: new F(),\n ctx: {\n common: e.parent.common,\n data: e.data,\n parsedType: Ne(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n }\n };\n }\n _parseSync(e) {\n const t = this._parse(e);\n if (nr(t))\n throw new Error(\"Synchronous parse encountered promise.\");\n return t;\n }\n _parseAsync(e) {\n const t = this._parse(e);\n return Promise.resolve(t);\n }\n parse(e, t) {\n const n = this.safeParse(e, t);\n if (n.success)\n return n.data;\n throw n.error;\n }\n safeParse(e, t) {\n var n;\n const s = {\n common: {\n issues: [],\n async: (n = t == null ? void 0 : t.async) !== null && n !== void 0 ? n : !1,\n contextualErrorMap: t == null ? void 0 : t.errorMap\n },\n path: (t == null ? void 0 : t.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: Ne(e)\n }, a = this._parseSync({ data: e, path: s.path, parent: s });\n return cn(s, a);\n }\n async parseAsync(e, t) {\n const n = await this.safeParseAsync(e, t);\n if (n.success)\n return n.data;\n throw n.error;\n }\n async safeParseAsync(e, t) {\n const n = {\n common: {\n issues: [],\n contextualErrorMap: t == null ? void 0 : t.errorMap,\n async: !0\n },\n path: (t == null ? void 0 : t.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: Ne(e)\n }, s = this._parse({ data: e, path: n.path, parent: n }), a = await (nr(s) ? s : Promise.resolve(s));\n return cn(n, a);\n }\n refine(e, t) {\n const n = (s) => typeof t == \"string\" || typeof t > \"u\" ? { message: t } : typeof t == \"function\" ? t(s) : t;\n return this._refinement((s, a) => {\n const i = e(s), o = () => a.addIssue({\n code: f.custom,\n ...n(s)\n });\n return typeof Promise < \"u\" && i instanceof Promise ? i.then((u) => u ? !0 : (o(), !1)) : i ? !0 : (o(), !1);\n });\n }\n refinement(e, t) {\n return this._refinement((n, s) => e(n) ? !0 : (s.addIssue(typeof t == \"function\" ? t(n, s) : t), !1));\n }\n _refinement(e) {\n return new ae({\n schema: this,\n typeName: T.ZodEffects,\n effect: { type: \"refinement\", refinement: e }\n });\n }\n superRefine(e) {\n return this._refinement(e);\n }\n optional() {\n return Te.create(this, this._def);\n }\n nullable() {\n return Be.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ne.create(this, this._def);\n }\n promise() {\n return Qe.create(this, this._def);\n }\n or(e) {\n return wt.create([this, e], this._def);\n }\n and(e) {\n return xt.create(this, e, this._def);\n }\n transform(e) {\n return new ae({\n ...I(this._def),\n schema: this,\n typeName: T.ZodEffects,\n effect: { type: \"transform\", transform: e }\n });\n }\n default(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new Nt({\n ...I(this._def),\n innerType: this,\n defaultValue: t,\n typeName: T.ZodDefault\n });\n }\n brand() {\n return new as({\n typeName: T.ZodBranded,\n type: this,\n ...I(this._def)\n });\n }\n catch(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new or({\n ...I(this._def),\n innerType: this,\n catchValue: t,\n typeName: T.ZodCatch\n });\n }\n describe(e) {\n const t = this.constructor;\n return new t({\n ...this._def,\n description: e\n });\n }\n pipe(e) {\n return Zt.create(this, e);\n }\n readonly() {\n return cr.create(this);\n }\n isOptional() {\n return this.safeParse(void 0).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst Ci = /^c[^\\s-]{8,}$/i, Ai = /^[a-z][a-z0-9]*$/, $i = /^[0-9A-HJKMNP-TV-Z]{26}$/, ji = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i, Ri = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i, Mi = \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\";\nlet Nr;\nconst Pi = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/, Ui = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, Di = (r) => r.precision ? r.offset ? new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${r.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`) : new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${r.precision}}Z$`) : r.precision === 0 ? r.offset ? new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$\") : new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\") : r.offset ? new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$\") : new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$\");\nfunction Li(r, e) {\n return !!((e === \"v4\" || !e) && Pi.test(r) || (e === \"v6\" || !e) && Ui.test(r));\n}\nclass ee extends C {\n _parse(e) {\n if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== v.string) {\n const a = this._getOrReturnCtx(e);\n return _(\n a,\n {\n code: f.invalid_type,\n expected: v.string,\n received: a.parsedType\n }\n //\n ), O;\n }\n const n = new F();\n let s;\n for (const a of this._def.checks)\n if (a.kind === \"min\")\n e.data.length < a.value && (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.too_small,\n minimum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"max\")\n e.data.length > a.value && (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.too_big,\n maximum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"length\") {\n const i = e.data.length > a.value, o = e.data.length < a.value;\n (i || o) && (s = this._getOrReturnCtx(e, s), i ? _(s, {\n code: f.too_big,\n maximum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: a.message\n }) : o && _(s, {\n code: f.too_small,\n minimum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: a.message\n }), n.dirty());\n } else if (a.kind === \"email\")\n Ri.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"email\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"emoji\")\n Nr || (Nr = new RegExp(Mi, \"u\")), Nr.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"emoji\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"uuid\")\n ji.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"uuid\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"cuid\")\n Ci.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"cuid\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"cuid2\")\n Ai.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"cuid2\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"ulid\")\n $i.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"ulid\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty());\n else if (a.kind === \"url\")\n try {\n new URL(e.data);\n } catch {\n s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"url\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty();\n }\n else\n a.kind === \"regex\" ? (a.regex.lastIndex = 0, a.regex.test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"regex\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty())) : a.kind === \"trim\" ? e.data = e.data.trim() : a.kind === \"includes\" ? e.data.includes(a.value, a.position) || (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.invalid_string,\n validation: { includes: a.value, position: a.position },\n message: a.message\n }), n.dirty()) : a.kind === \"toLowerCase\" ? e.data = e.data.toLowerCase() : a.kind === \"toUpperCase\" ? e.data = e.data.toUpperCase() : a.kind === \"startsWith\" ? e.data.startsWith(a.value) || (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.invalid_string,\n validation: { startsWith: a.value },\n message: a.message\n }), n.dirty()) : a.kind === \"endsWith\" ? e.data.endsWith(a.value) || (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.invalid_string,\n validation: { endsWith: a.value },\n message: a.message\n }), n.dirty()) : a.kind === \"datetime\" ? Di(a).test(e.data) || (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.invalid_string,\n validation: \"datetime\",\n message: a.message\n }), n.dirty()) : a.kind === \"ip\" ? Li(e.data, a.version) || (s = this._getOrReturnCtx(e, s), _(s, {\n validation: \"ip\",\n code: f.invalid_string,\n message: a.message\n }), n.dirty()) : j.assertNever(a);\n return { status: n.value, value: e.data };\n }\n _regex(e, t, n) {\n return this.refinement((s) => e.test(s), {\n validation: t,\n code: f.invalid_string,\n ...w.errToObj(n)\n });\n }\n _addCheck(e) {\n return new ee({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n email(e) {\n return this._addCheck({ kind: \"email\", ...w.errToObj(e) });\n }\n url(e) {\n return this._addCheck({ kind: \"url\", ...w.errToObj(e) });\n }\n emoji(e) {\n return this._addCheck({ kind: \"emoji\", ...w.errToObj(e) });\n }\n uuid(e) {\n return this._addCheck({ kind: \"uuid\", ...w.errToObj(e) });\n }\n cuid(e) {\n return this._addCheck({ kind: \"cuid\", ...w.errToObj(e) });\n }\n cuid2(e) {\n return this._addCheck({ kind: \"cuid2\", ...w.errToObj(e) });\n }\n ulid(e) {\n return this._addCheck({ kind: \"ulid\", ...w.errToObj(e) });\n }\n ip(e) {\n return this._addCheck({ kind: \"ip\", ...w.errToObj(e) });\n }\n datetime(e) {\n var t;\n return typeof e == \"string\" ? this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: !1,\n message: e\n }) : this._addCheck({\n kind: \"datetime\",\n precision: typeof (e == null ? void 0 : e.precision) > \"u\" ? null : e == null ? void 0 : e.precision,\n offset: (t = e == null ? void 0 : e.offset) !== null && t !== void 0 ? t : !1,\n ...w.errToObj(e == null ? void 0 : e.message)\n });\n }\n regex(e, t) {\n return this._addCheck({\n kind: \"regex\",\n regex: e,\n ...w.errToObj(t)\n });\n }\n includes(e, t) {\n return this._addCheck({\n kind: \"includes\",\n value: e,\n position: t == null ? void 0 : t.position,\n ...w.errToObj(t == null ? void 0 : t.message)\n });\n }\n startsWith(e, t) {\n return this._addCheck({\n kind: \"startsWith\",\n value: e,\n ...w.errToObj(t)\n });\n }\n endsWith(e, t) {\n return this._addCheck({\n kind: \"endsWith\",\n value: e,\n ...w.errToObj(t)\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e,\n ...w.errToObj(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e,\n ...w.errToObj(t)\n });\n }\n length(e, t) {\n return this._addCheck({\n kind: \"length\",\n value: e,\n ...w.errToObj(t)\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(e) {\n return this.min(1, w.errToObj(e));\n }\n trim() {\n return new ee({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new ee({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new ee({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((e) => e.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((e) => e.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((e) => e.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((e) => e.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((e) => e.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((e) => e.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((e) => e.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((e) => e.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((e) => e.kind === \"ip\");\n }\n get minLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\nee.create = (r) => {\n var e;\n return new ee({\n checks: [],\n typeName: T.ZodString,\n coerce: (e = r == null ? void 0 : r.coerce) !== null && e !== void 0 ? e : !1,\n ...I(r)\n });\n};\nfunction zi(r, e) {\n const t = (r.toString().split(\".\")[1] || \"\").length, n = (e.toString().split(\".\")[1] || \"\").length, s = t > n ? t : n, a = parseInt(r.toFixed(s).replace(\".\", \"\")), i = parseInt(e.toFixed(s).replace(\".\", \"\"));\n return a % i / Math.pow(10, s);\n}\nclass Ae extends C {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== v.number) {\n const a = this._getOrReturnCtx(e);\n return _(a, {\n code: f.invalid_type,\n expected: v.number,\n received: a.parsedType\n }), O;\n }\n let n;\n const s = new F();\n for (const a of this._def.checks)\n a.kind === \"int\" ? j.isInteger(e.data) || (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: a.message\n }), s.dirty()) : a.kind === \"min\" ? (a.inclusive ? e.data < a.value : e.data <= a.value) && (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.too_small,\n minimum: a.value,\n type: \"number\",\n inclusive: a.inclusive,\n exact: !1,\n message: a.message\n }), s.dirty()) : a.kind === \"max\" ? (a.inclusive ? e.data > a.value : e.data >= a.value) && (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.too_big,\n maximum: a.value,\n type: \"number\",\n inclusive: a.inclusive,\n exact: !1,\n message: a.message\n }), s.dirty()) : a.kind === \"multipleOf\" ? zi(e.data, a.value) !== 0 && (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.not_multiple_of,\n multipleOf: a.value,\n message: a.message\n }), s.dirty()) : a.kind === \"finite\" ? Number.isFinite(e.data) || (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.not_finite,\n message: a.message\n }), s.dirty()) : j.assertNever(a);\n return { status: s.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, w.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, w.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, w.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, w.toString(t));\n }\n setLimit(e, t, n, s) {\n return new Ae({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: n,\n message: w.toString(s)\n }\n ]\n });\n }\n _addCheck(e) {\n return new Ae({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n int(e) {\n return this._addCheck({\n kind: \"int\",\n message: w.toString(e)\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !1,\n message: w.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !1,\n message: w.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !0,\n message: w.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !0,\n message: w.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: w.toString(t)\n });\n }\n finite(e) {\n return this._addCheck({\n kind: \"finite\",\n message: w.toString(e)\n });\n }\n safe(e) {\n return this._addCheck({\n kind: \"min\",\n inclusive: !0,\n value: Number.MIN_SAFE_INTEGER,\n message: w.toString(e)\n })._addCheck({\n kind: \"max\",\n inclusive: !0,\n value: Number.MAX_SAFE_INTEGER,\n message: w.toString(e)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n get isInt() {\n return !!this._def.checks.find((e) => e.kind === \"int\" || e.kind === \"multipleOf\" && j.isInteger(e.value));\n }\n get isFinite() {\n let e = null, t = null;\n for (const n of this._def.checks) {\n if (n.kind === \"finite\" || n.kind === \"int\" || n.kind === \"multipleOf\")\n return !0;\n n.kind === \"min\" ? (t === null || n.value > t) && (t = n.value) : n.kind === \"max\" && (e === null || n.value < e) && (e = n.value);\n }\n return Number.isFinite(t) && Number.isFinite(e);\n }\n}\nAe.create = (r) => new Ae({\n checks: [],\n typeName: T.ZodNumber,\n coerce: (r == null ? void 0 : r.coerce) || !1,\n ...I(r)\n});\nclass $e extends C {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = BigInt(e.data)), this._getType(e) !== v.bigint) {\n const a = this._getOrReturnCtx(e);\n return _(a, {\n code: f.invalid_type,\n expected: v.bigint,\n received: a.parsedType\n }), O;\n }\n let n;\n const s = new F();\n for (const a of this._def.checks)\n a.kind === \"min\" ? (a.inclusive ? e.data < a.value : e.data <= a.value) && (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.too_small,\n type: \"bigint\",\n minimum: a.value,\n inclusive: a.inclusive,\n message: a.message\n }), s.dirty()) : a.kind === \"max\" ? (a.inclusive ? e.data > a.value : e.data >= a.value) && (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.too_big,\n type: \"bigint\",\n maximum: a.value,\n inclusive: a.inclusive,\n message: a.message\n }), s.dirty()) : a.kind === \"multipleOf\" ? e.data % a.value !== BigInt(0) && (n = this._getOrReturnCtx(e, n), _(n, {\n code: f.not_multiple_of,\n multipleOf: a.value,\n message: a.message\n }), s.dirty()) : j.assertNever(a);\n return { status: s.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, w.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, w.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, w.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, w.toString(t));\n }\n setLimit(e, t, n, s) {\n return new $e({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: n,\n message: w.toString(s)\n }\n ]\n });\n }\n _addCheck(e) {\n return new $e({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !1,\n message: w.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !1,\n message: w.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !0,\n message: w.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !0,\n message: w.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: w.toString(t)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\n$e.create = (r) => {\n var e;\n return new $e({\n checks: [],\n typeName: T.ZodBigInt,\n coerce: (e = r == null ? void 0 : r.coerce) !== null && e !== void 0 ? e : !1,\n ...I(r)\n });\n};\nclass gt extends C {\n _parse(e) {\n if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== v.boolean) {\n const n = this._getOrReturnCtx(e);\n return _(n, {\n code: f.invalid_type,\n expected: v.boolean,\n received: n.parsedType\n }), O;\n }\n return J(e.data);\n }\n}\ngt.create = (r) => new gt({\n typeName: T.ZodBoolean,\n coerce: (r == null ? void 0 : r.coerce) || !1,\n ...I(r)\n});\nclass Le extends C {\n _parse(e) {\n if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== v.date) {\n const a = this._getOrReturnCtx(e);\n return _(a, {\n code: f.invalid_type,\n expected: v.date,\n received: a.parsedType\n }), O;\n }\n if (isNaN(e.data.getTime())) {\n const a = this._getOrReturnCtx(e);\n return _(a, {\n code: f.invalid_date\n }), O;\n }\n const n = new F();\n let s;\n for (const a of this._def.checks)\n a.kind === \"min\" ? e.data.getTime() < a.value && (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.too_small,\n message: a.message,\n inclusive: !0,\n exact: !1,\n minimum: a.value,\n type: \"date\"\n }), n.dirty()) : a.kind === \"max\" ? e.data.getTime() > a.value && (s = this._getOrReturnCtx(e, s), _(s, {\n code: f.too_big,\n message: a.message,\n inclusive: !0,\n exact: !1,\n maximum: a.value,\n type: \"date\"\n }), n.dirty()) : j.assertNever(a);\n return {\n status: n.value,\n value: new Date(e.data.getTime())\n };\n }\n _addCheck(e) {\n return new Le({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e.getTime(),\n message: w.toString(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e.getTime(),\n message: w.toString(t)\n });\n }\n get minDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n get maxDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n}\nLe.create = (r) => new Le({\n checks: [],\n coerce: (r == null ? void 0 : r.coerce) || !1,\n typeName: T.ZodDate,\n ...I(r)\n});\nclass sr extends C {\n _parse(e) {\n if (this._getType(e) !== v.symbol) {\n const n = this._getOrReturnCtx(e);\n return _(n, {\n code: f.invalid_type,\n expected: v.symbol,\n received: n.parsedType\n }), O;\n }\n return J(e.data);\n }\n}\nsr.create = (r) => new sr({\n typeName: T.ZodSymbol,\n ...I(r)\n});\nclass _t extends C {\n _parse(e) {\n if (this._getType(e) !== v.undefined) {\n const n = this._getOrReturnCtx(e);\n return _(n, {\n code: f.invalid_type,\n expected: v.undefined,\n received: n.parsedType\n }), O;\n }\n return J(e.data);\n }\n}\n_t.create = (r) => new _t({\n typeName: T.ZodUndefined,\n ...I(r)\n});\nclass bt extends C {\n _parse(e) {\n if (this._getType(e) !== v.null) {\n const n = this._getOrReturnCtx(e);\n return _(n, {\n code: f.invalid_type,\n expected: v.null,\n received: n.parsedType\n }), O;\n }\n return J(e.data);\n }\n}\nbt.create = (r) => new bt({\n typeName: T.ZodNull,\n ...I(r)\n});\nclass Xe extends C {\n constructor() {\n super(...arguments), this._any = !0;\n }\n _parse(e) {\n return J(e.data);\n }\n}\nXe.create = (r) => new Xe({\n typeName: T.ZodAny,\n ...I(r)\n});\nclass Me extends C {\n constructor() {\n super(...arguments), this._unknown = !0;\n }\n _parse(e) {\n return J(e.data);\n }\n}\nMe.create = (r) => new Me({\n typeName: T.ZodUnknown,\n ...I(r)\n});\nclass ke extends C {\n _parse(e) {\n const t = this._getOrReturnCtx(e);\n return _(t, {\n code: f.invalid_type,\n expected: v.never,\n received: t.parsedType\n }), O;\n }\n}\nke.create = (r) => new ke({\n typeName: T.ZodNever,\n ...I(r)\n});\nclass ar extends C {\n _parse(e) {\n if (this._getType(e) !== v.undefined) {\n const n = this._getOrReturnCtx(e);\n return _(n, {\n code: f.invalid_type,\n expected: v.void,\n received: n.parsedType\n }), O;\n }\n return J(e.data);\n }\n}\nar.create = (r) => new ar({\n typeName: T.ZodVoid,\n ...I(r)\n});\nclass ne extends C {\n _parse(e) {\n const { ctx: t, status: n } = this._processInputParams(e), s = this._def;\n if (t.parsedType !== v.array)\n return _(t, {\n code: f.invalid_type,\n expected: v.array,\n received: t.parsedType\n }), O;\n if (s.exactLength !== null) {\n const i = t.data.length > s.exactLength.value, o = t.data.length < s.exactLength.value;\n (i || o) && (_(t, {\n code: i ? f.too_big : f.too_small,\n minimum: o ? s.exactLength.value : void 0,\n maximum: i ? s.exactLength.value : void 0,\n type: \"array\",\n inclusive: !0,\n exact: !0,\n message: s.exactLength.message\n }), n.dirty());\n }\n if (s.minLength !== null && t.data.length < s.minLength.value && (_(t, {\n code: f.too_small,\n minimum: s.minLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: s.minLength.message\n }), n.dirty()), s.maxLength !== null && t.data.length > s.maxLength.value && (_(t, {\n code: f.too_big,\n maximum: s.maxLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: s.maxLength.message\n }), n.dirty()), t.common.async)\n return Promise.all([...t.data].map((i, o) => s.type._parseAsync(new ce(t, i, t.path, o)))).then((i) => F.mergeArray(n, i));\n const a = [...t.data].map((i, o) => s.type._parseSync(new ce(t, i, t.path, o)));\n return F.mergeArray(n, a);\n }\n get element() {\n return this._def.type;\n }\n min(e, t) {\n return new ne({\n ...this._def,\n minLength: { value: e, message: w.toString(t) }\n });\n }\n max(e, t) {\n return new ne({\n ...this._def,\n maxLength: { value: e, message: w.toString(t) }\n });\n }\n length(e, t) {\n return new ne({\n ...this._def,\n exactLength: { value: e, message: w.toString(t) }\n });\n }\n nonempty(e) {\n return this.min(1, e);\n }\n}\nne.create = (r, e) => new ne({\n type: r,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: T.ZodArray,\n ...I(e)\n});\nfunction qe(r) {\n if (r instanceof L) {\n const e = {};\n for (const t in r.shape) {\n const n = r.shape[t];\n e[t] = Te.create(qe(n));\n }\n return new L({\n ...r._def,\n shape: () => e\n });\n } else\n return r instanceof ne ? new ne({\n ...r._def,\n type: qe(r.element)\n }) : r instanceof Te ? Te.create(qe(r.unwrap())) : r instanceof Be ? Be.create(qe(r.unwrap())) : r instanceof de ? de.create(r.items.map((e) => qe(e))) : r;\n}\nclass L extends C {\n constructor() {\n super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const e = this._def.shape(), t = j.objectKeys(e);\n return this._cached = { shape: e, keys: t };\n }\n _parse(e) {\n if (this._getType(e) !== v.object) {\n const c = this._getOrReturnCtx(e);\n return _(c, {\n code: f.invalid_type,\n expected: v.object,\n received: c.parsedType\n }), O;\n }\n const { status: n, ctx: s } = this._processInputParams(e), { shape: a, keys: i } = this._getCached(), o = [];\n if (!(this._def.catchall instanceof ke && this._def.unknownKeys === \"strip\"))\n for (const c in s.data)\n i.includes(c) || o.push(c);\n const u = [];\n for (const c of i) {\n const p = a[c], Z = s.data[c];\n u.push({\n key: { status: \"valid\", value: c },\n value: p._parse(new ce(s, Z, s.path, c)),\n alwaysSet: c in s.data\n });\n }\n if (this._def.catchall instanceof ke) {\n const c = this._def.unknownKeys;\n if (c === \"passthrough\")\n for (const p of o)\n u.push({\n key: { status: \"valid\", value: p },\n value: { status: \"valid\", value: s.data[p] }\n });\n else if (c === \"strict\")\n o.length > 0 && (_(s, {\n code: f.unrecognized_keys,\n keys: o\n }), n.dirty());\n else if (c !== \"strip\")\n throw new Error(\"Internal ZodObject error: invalid unknownKeys value.\");\n } else {\n const c = this._def.catchall;\n for (const p of o) {\n const Z = s.data[p];\n u.push({\n key: { status: \"valid\", value: p },\n value: c._parse(\n new ce(s, Z, s.path, p)\n //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: p in s.data\n });\n }\n }\n return s.common.async ? Promise.resolve().then(async () => {\n const c = [];\n for (const p of u) {\n const Z = await p.key;\n c.push({\n key: Z,\n value: await p.value,\n alwaysSet: p.alwaysSet\n });\n }\n return c;\n }).then((c) => F.mergeObjectSync(n, c)) : F.mergeObjectSync(n, u);\n }\n get shape() {\n return this._def.shape();\n }\n strict(e) {\n return w.errToObj, new L({\n ...this._def,\n unknownKeys: \"strict\",\n ...e !== void 0 ? {\n errorMap: (t, n) => {\n var s, a, i, o;\n const u = (i = (a = (s = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(s, t, n).message) !== null && i !== void 0 ? i : n.defaultError;\n return t.code === \"unrecognized_keys\" ? {\n message: (o = w.errToObj(e).message) !== null && o !== void 0 ? o : u\n } : {\n message: u\n };\n }\n } : {}\n });\n }\n strip() {\n return new L({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new L({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(e) {\n return new L({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...e\n })\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(e) {\n return new L({\n unknownKeys: e._def.unknownKeys,\n catchall: e._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...e._def.shape()\n }),\n typeName: T.ZodObject\n });\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(e, t) {\n return this.augment({ [e]: t });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(e) {\n return new L({\n ...this._def,\n catchall: e\n });\n }\n pick(e) {\n const t = {};\n return j.objectKeys(e).forEach((n) => {\n e[n] && this.shape[n] && (t[n] = this.shape[n]);\n }), new L({\n ...this._def,\n shape: () => t\n });\n }\n omit(e) {\n const t = {};\n return j.objectKeys(this.shape).forEach((n) => {\n e[n] || (t[n] = this.shape[n]);\n }), new L({\n ...this._def,\n shape: () => t\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return qe(this);\n }\n partial(e) {\n const t = {};\n return j.objectKeys(this.shape).forEach((n) => {\n const s = this.shape[n];\n e && !e[n] ? t[n] = s : t[n] = s.optional();\n }), new L({\n ...this._def,\n shape: () => t\n });\n }\n required(e) {\n const t = {};\n return j.objectKeys(this.shape).forEach((n) => {\n if (e && !e[n])\n t[n] = this.shape[n];\n else {\n let a = this.shape[n];\n for (; a instanceof Te; )\n a = a._def.innerType;\n t[n] = a;\n }\n }), new L({\n ...this._def,\n shape: () => t\n });\n }\n keyof() {\n return ss(j.objectKeys(this.shape));\n }\n}\nL.create = (r, e) => new L({\n shape: () => r,\n unknownKeys: \"strip\",\n catchall: ke.create(),\n typeName: T.ZodObject,\n ...I(e)\n});\nL.strictCreate = (r, e) => new L({\n shape: () => r,\n unknownKeys: \"strict\",\n catchall: ke.create(),\n typeName: T.ZodObject,\n ...I(e)\n});\nL.lazycreate = (r, e) => new L({\n shape: r,\n unknownKeys: \"strip\",\n catchall: ke.create(),\n typeName: T.ZodObject,\n ...I(e)\n});\nclass wt extends C {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), n = this._def.options;\n function s(a) {\n for (const o of a)\n if (o.result.status === \"valid\")\n return o.result;\n for (const o of a)\n if (o.result.status === \"dirty\")\n return t.common.issues.push(...o.ctx.common.issues), o.result;\n const i = a.map((o) => new re(o.ctx.common.issues));\n return _(t, {\n code: f.invalid_union,\n unionErrors: i\n }), O;\n }\n if (t.common.async)\n return Promise.all(n.map(async (a) => {\n const i = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await a._parseAsync({\n data: t.data,\n path: t.path,\n parent: i\n }),\n ctx: i\n };\n })).then(s);\n {\n let a;\n const i = [];\n for (const u of n) {\n const c = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n }, p = u._parseSync({\n data: t.data,\n path: t.path,\n parent: c\n });\n if (p.status === \"valid\")\n return p;\n p.status === \"dirty\" && !a && (a = { result: p, ctx: c }), c.common.issues.length && i.push(c.common.issues);\n }\n if (a)\n return t.common.issues.push(...a.ctx.common.issues), a.result;\n const o = i.map((u) => new re(u));\n return _(t, {\n code: f.invalid_union,\n unionErrors: o\n }), O;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nwt.create = (r, e) => new wt({\n options: r,\n typeName: T.ZodUnion,\n ...I(e)\n});\nconst Vt = (r) => r instanceof Ot ? Vt(r.schema) : r instanceof ae ? Vt(r.innerType()) : r instanceof kt ? [r.value] : r instanceof je ? r.options : r instanceof St ? Object.keys(r.enum) : r instanceof Nt ? Vt(r._def.innerType) : r instanceof _t ? [void 0] : r instanceof bt ? [null] : null;\nclass vr extends C {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== v.object)\n return _(t, {\n code: f.invalid_type,\n expected: v.object,\n received: t.parsedType\n }), O;\n const n = this.discriminator, s = t.data[n], a = this.optionsMap.get(s);\n return a ? t.common.async ? a._parseAsync({\n data: t.data,\n path: t.path,\n parent: t\n }) : a._parseSync({\n data: t.data,\n path: t.path,\n parent: t\n }) : (_(t, {\n code: f.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [n]\n }), O);\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(e, t, n) {\n const s = /* @__PURE__ */ new Map();\n for (const a of t) {\n const i = Vt(a.shape[e]);\n if (!i)\n throw new Error(`A discriminator value for key \\`${e}\\` could not be extracted from all schema options`);\n for (const o of i) {\n if (s.has(o))\n throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);\n s.set(o, a);\n }\n }\n return new vr({\n typeName: T.ZodDiscriminatedUnion,\n discriminator: e,\n options: t,\n optionsMap: s,\n ...I(n)\n });\n }\n}\nfunction Dr(r, e) {\n const t = Ne(r), n = Ne(e);\n if (r === e)\n return { valid: !0, data: r };\n if (t === v.object && n === v.object) {\n const s = j.objectKeys(e), a = j.objectKeys(r).filter((o) => s.indexOf(o) !== -1), i = { ...r, ...e };\n for (const o of a) {\n const u = Dr(r[o], e[o]);\n if (!u.valid)\n return { valid: !1 };\n i[o] = u.data;\n }\n return { valid: !0, data: i };\n } else if (t === v.array && n === v.array) {\n if (r.length !== e.length)\n return { valid: !1 };\n const s = [];\n for (let a = 0; a < r.length; a++) {\n const i = r[a], o = e[a], u = Dr(i, o);\n if (!u.valid)\n return { valid: !1 };\n s.push(u.data);\n }\n return { valid: !0, data: s };\n } else\n return t === v.date && n === v.date && +r == +e ? { valid: !0, data: r } : { valid: !1 };\n}\nclass xt extends C {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e), s = (a, i) => {\n if (Pr(a) || Pr(i))\n return O;\n const o = Dr(a.value, i.value);\n return o.valid ? ((Ur(a) || Ur(i)) && t.dirty(), { status: t.value, value: o.data }) : (_(n, {\n code: f.invalid_intersection_types\n }), O);\n };\n return n.common.async ? Promise.all([\n this._def.left._parseAsync({\n data: n.data,\n path: n.path,\n parent: n\n }),\n this._def.right._parseAsync({\n data: n.data,\n path: n.path,\n parent: n\n })\n ]).then(([a, i]) => s(a, i)) : s(this._def.left._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n }), this._def.right._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n }));\n }\n}\nxt.create = (r, e, t) => new xt({\n left: r,\n right: e,\n typeName: T.ZodIntersection,\n ...I(t)\n});\nclass de extends C {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== v.array)\n return _(n, {\n code: f.invalid_type,\n expected: v.array,\n received: n.parsedType\n }), O;\n if (n.data.length < this._def.items.length)\n return _(n, {\n code: f.too_small,\n minimum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), O;\n !this._def.rest && n.data.length > this._def.items.length && (_(n, {\n code: f.too_big,\n maximum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), t.dirty());\n const a = [...n.data].map((i, o) => {\n const u = this._def.items[o] || this._def.rest;\n return u ? u._parse(new ce(n, i, n.path, o)) : null;\n }).filter((i) => !!i);\n return n.common.async ? Promise.all(a).then((i) => F.mergeArray(t, i)) : F.mergeArray(t, a);\n }\n get items() {\n return this._def.items;\n }\n rest(e) {\n return new de({\n ...this._def,\n rest: e\n });\n }\n}\nde.create = (r, e) => {\n if (!Array.isArray(r))\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n return new de({\n items: r,\n typeName: T.ZodTuple,\n rest: null,\n ...I(e)\n });\n};\nclass Tt extends C {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== v.object)\n return _(n, {\n code: f.invalid_type,\n expected: v.object,\n received: n.parsedType\n }), O;\n const s = [], a = this._def.keyType, i = this._def.valueType;\n for (const o in n.data)\n s.push({\n key: a._parse(new ce(n, o, n.path, o)),\n value: i._parse(new ce(n, n.data[o], n.path, o))\n });\n return n.common.async ? F.mergeObjectAsync(t, s) : F.mergeObjectSync(t, s);\n }\n get element() {\n return this._def.valueType;\n }\n static create(e, t, n) {\n return t instanceof C ? new Tt({\n keyType: e,\n valueType: t,\n typeName: T.ZodRecord,\n ...I(n)\n }) : new Tt({\n keyType: ee.create(),\n valueType: e,\n typeName: T.ZodRecord,\n ...I(t)\n });\n }\n}\nclass ir extends C {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== v.map)\n return _(n, {\n code: f.invalid_type,\n expected: v.map,\n received: n.parsedType\n }), O;\n const s = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([o, u], c) => ({\n key: s._parse(new ce(n, o, n.path, [c, \"key\"])),\n value: a._parse(new ce(n, u, n.path, [c, \"value\"]))\n }));\n if (n.common.async) {\n const o = /* @__PURE__ */ new Map();\n return Promise.resolve().then(async () => {\n for (const u of i) {\n const c = await u.key, p = await u.value;\n if (c.status === \"aborted\" || p.status === \"aborted\")\n return O;\n (c.status === \"dirty\" || p.status === \"dirty\") && t.dirty(), o.set(c.value, p.value);\n }\n return { status: t.value, value: o };\n });\n } else {\n const o = /* @__PURE__ */ new Map();\n for (const u of i) {\n const c = u.key, p = u.value;\n if (c.status === \"aborted\" || p.status === \"aborted\")\n return O;\n (c.status === \"dirty\" || p.status === \"dirty\") && t.dirty(), o.set(c.value, p.value);\n }\n return { status: t.value, value: o };\n }\n }\n}\nir.create = (r, e, t) => new ir({\n valueType: e,\n keyType: r,\n typeName: T.ZodMap,\n ...I(t)\n});\nclass ze extends C {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.parsedType !== v.set)\n return _(n, {\n code: f.invalid_type,\n expected: v.set,\n received: n.parsedType\n }), O;\n const s = this._def;\n s.minSize !== null && n.data.size < s.minSize.value && (_(n, {\n code: f.too_small,\n minimum: s.minSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: s.minSize.message\n }), t.dirty()), s.maxSize !== null && n.data.size > s.maxSize.value && (_(n, {\n code: f.too_big,\n maximum: s.maxSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: s.maxSize.message\n }), t.dirty());\n const a = this._def.valueType;\n function i(u) {\n const c = /* @__PURE__ */ new Set();\n for (const p of u) {\n if (p.status === \"aborted\")\n return O;\n p.status === \"dirty\" && t.dirty(), c.add(p.value);\n }\n return { status: t.value, value: c };\n }\n const o = [...n.data.values()].map((u, c) => a._parse(new ce(n, u, n.path, c)));\n return n.common.async ? Promise.all(o).then((u) => i(u)) : i(o);\n }\n min(e, t) {\n return new ze({\n ...this._def,\n minSize: { value: e, message: w.toString(t) }\n });\n }\n max(e, t) {\n return new ze({\n ...this._def,\n maxSize: { value: e, message: w.toString(t) }\n });\n }\n size(e, t) {\n return this.min(e, t).max(e, t);\n }\n nonempty(e) {\n return this.min(1, e);\n }\n}\nze.create = (r, e) => new ze({\n valueType: r,\n minSize: null,\n maxSize: null,\n typeName: T.ZodSet,\n ...I(e)\n});\nclass Fe extends C {\n constructor() {\n super(...arguments), this.validate = this.implement;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== v.function)\n return _(t, {\n code: f.invalid_type,\n expected: v.function,\n received: t.parsedType\n }), O;\n function n(o, u) {\n return rr({\n data: o,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n tr(),\n yt\n ].filter((c) => !!c),\n issueData: {\n code: f.invalid_arguments,\n argumentsError: u\n }\n });\n }\n function s(o, u) {\n return rr({\n data: o,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n tr(),\n yt\n ].filter((c) => !!c),\n issueData: {\n code: f.invalid_return_type,\n returnTypeError: u\n }\n });\n }\n const a = { errorMap: t.common.contextualErrorMap }, i = t.data;\n if (this._def.returns instanceof Qe) {\n const o = this;\n return J(async function(...u) {\n const c = new re([]), p = await o._def.args.parseAsync(u, a).catch((le) => {\n throw c.addIssue(n(u, le)), c;\n }), Z = await Reflect.apply(i, this, p);\n return await o._def.returns._def.type.parseAsync(Z, a).catch((le) => {\n throw c.addIssue(s(Z, le)), c;\n });\n });\n } else {\n const o = this;\n return J(function(...u) {\n const c = o._def.args.safeParse(u, a);\n if (!c.success)\n throw new re([n(u, c.error)]);\n const p = Reflect.apply(i, this, c.data), Z = o._def.returns.safeParse(p, a);\n if (!Z.success)\n throw new re([s(p, Z.error)]);\n return Z.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...e) {\n return new Fe({\n ...this._def,\n args: de.create(e).rest(Me.create())\n });\n }\n returns(e) {\n return new Fe({\n ...this._def,\n returns: e\n });\n }\n implement(e) {\n return this.parse(e);\n }\n strictImplement(e) {\n return this.parse(e);\n }\n static create(e, t, n) {\n return new Fe({\n args: e || de.create([]).rest(Me.create()),\n returns: t || Me.create(),\n typeName: T.ZodFunction,\n ...I(n)\n });\n }\n}\nclass Ot extends C {\n get schema() {\n return this._def.getter();\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n return this._def.getter()._parse({ data: t.data, path: t.path, parent: t });\n }\n}\nOt.create = (r, e) => new Ot({\n getter: r,\n typeName: T.ZodLazy,\n ...I(e)\n});\nclass kt extends C {\n _parse(e) {\n if (e.data !== this._def.value) {\n const t = this._getOrReturnCtx(e);\n return _(t, {\n received: t.data,\n code: f.invalid_literal,\n expected: this._def.value\n }), O;\n }\n return { status: \"valid\", value: e.data };\n }\n get value() {\n return this._def.value;\n }\n}\nkt.create = (r, e) => new kt({\n value: r,\n typeName: T.ZodLiteral,\n ...I(e)\n});\nfunction ss(r, e) {\n return new je({\n values: r,\n typeName: T.ZodEnum,\n ...I(e)\n });\n}\nclass je extends C {\n _parse(e) {\n if (typeof e.data != \"string\") {\n const t = this._getOrReturnCtx(e), n = this._def.values;\n return _(t, {\n expected: j.joinValues(n),\n received: t.parsedType,\n code: f.invalid_type\n }), O;\n }\n if (this._def.values.indexOf(e.data) === -1) {\n const t = this._getOrReturnCtx(e), n = this._def.values;\n return _(t, {\n received: t.data,\n code: f.invalid_enum_value,\n options: n\n }), O;\n }\n return J(e.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Values() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n extract(e) {\n return je.create(e);\n }\n exclude(e) {\n return je.create(this.options.filter((t) => !e.includes(t)));\n }\n}\nje.create = ss;\nclass St extends C {\n _parse(e) {\n const t = j.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e);\n if (n.parsedType !== v.string && n.parsedType !== v.number) {\n const s = j.objectValues(t);\n return _(n, {\n expected: j.joinValues(s),\n received: n.parsedType,\n code: f.invalid_type\n }), O;\n }\n if (t.indexOf(e.data) === -1) {\n const s = j.objectValues(t);\n return _(n, {\n received: n.data,\n code: f.invalid_enum_value,\n options: s\n }), O;\n }\n return J(e.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nSt.create = (r, e) => new St({\n values: r,\n typeName: T.ZodNativeEnum,\n ...I(e)\n});\nclass Qe extends C {\n unwrap() {\n return this._def.type;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== v.promise && t.common.async === !1)\n return _(t, {\n code: f.invalid_type,\n expected: v.promise,\n received: t.parsedType\n }), O;\n const n = t.parsedType === v.promise ? t.data : Promise.resolve(t.data);\n return J(n.then((s) => this._def.type.parseAsync(s, {\n path: t.path,\n errorMap: t.common.contextualErrorMap\n })));\n }\n}\nQe.create = (r, e) => new Qe({\n type: r,\n typeName: T.ZodPromise,\n ...I(e)\n});\nclass ae extends C {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === T.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e), s = this._def.effect || null, a = {\n addIssue: (i) => {\n _(n, i), i.fatal ? t.abort() : t.dirty();\n },\n get path() {\n return n.path;\n }\n };\n if (a.addIssue = a.addIssue.bind(a), s.type === \"preprocess\") {\n const i = s.transform(n.data, a);\n return n.common.issues.length ? {\n status: \"dirty\",\n value: n.data\n } : n.common.async ? Promise.resolve(i).then((o) => this._def.schema._parseAsync({\n data: o,\n path: n.path,\n parent: n\n })) : this._def.schema._parseSync({\n data: i,\n path: n.path,\n parent: n\n });\n }\n if (s.type === \"refinement\") {\n const i = (o) => {\n const u = s.refinement(o, a);\n if (n.common.async)\n return Promise.resolve(u);\n if (u instanceof Promise)\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n return o;\n };\n if (n.common.async === !1) {\n const o = this._def.schema._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n });\n return o.status === \"aborted\" ? O : (o.status === \"dirty\" && t.dirty(), i(o.value), { status: t.value, value: o.value });\n } else\n return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((o) => o.status === \"aborted\" ? O : (o.status === \"dirty\" && t.dirty(), i(o.value).then(() => ({ status: t.value, value: o.value }))));\n }\n if (s.type === \"transform\")\n if (n.common.async === !1) {\n const i = this._def.schema._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n });\n if (!vt(i))\n return i;\n const o = s.transform(i.value, a);\n if (o instanceof Promise)\n throw new Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");\n return { status: t.value, value: o };\n } else\n return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => vt(i) ? Promise.resolve(s.transform(i.value, a)).then((o) => ({ status: t.value, value: o })) : i);\n j.assertNever(s);\n }\n}\nae.create = (r, e, t) => new ae({\n schema: r,\n typeName: T.ZodEffects,\n effect: e,\n ...I(t)\n});\nae.createWithPreprocess = (r, e, t) => new ae({\n schema: e,\n effect: { type: \"preprocess\", transform: r },\n typeName: T.ZodEffects,\n ...I(t)\n});\nclass Te extends C {\n _parse(e) {\n return this._getType(e) === v.undefined ? J(void 0) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nTe.create = (r, e) => new Te({\n innerType: r,\n typeName: T.ZodOptional,\n ...I(e)\n});\nclass Be extends C {\n _parse(e) {\n return this._getType(e) === v.null ? J(null) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nBe.create = (r, e) => new Be({\n innerType: r,\n typeName: T.ZodNullable,\n ...I(e)\n});\nclass Nt extends C {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n let n = t.data;\n return t.parsedType === v.undefined && (n = this._def.defaultValue()), this._def.innerType._parse({\n data: n,\n path: t.path,\n parent: t\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nNt.create = (r, e) => new Nt({\n innerType: r,\n typeName: T.ZodDefault,\n defaultValue: typeof e.default == \"function\" ? e.default : () => e.default,\n ...I(e)\n});\nclass or extends C {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), n = {\n ...t,\n common: {\n ...t.common,\n issues: []\n }\n }, s = this._def.innerType._parse({\n data: n.data,\n path: n.path,\n parent: {\n ...n\n }\n });\n return nr(s) ? s.then((a) => ({\n status: \"valid\",\n value: a.status === \"valid\" ? a.value : this._def.catchValue({\n get error() {\n return new re(n.common.issues);\n },\n input: n.data\n })\n })) : {\n status: \"valid\",\n value: s.status === \"valid\" ? s.value : this._def.catchValue({\n get error() {\n return new re(n.common.issues);\n },\n input: n.data\n })\n };\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nor.create = (r, e) => new or({\n innerType: r,\n typeName: T.ZodCatch,\n catchValue: typeof e.catch == \"function\" ? e.catch : () => e.catch,\n ...I(e)\n});\nclass ur extends C {\n _parse(e) {\n if (this._getType(e) !== v.nan) {\n const n = this._getOrReturnCtx(e);\n return _(n, {\n code: f.invalid_type,\n expected: v.nan,\n received: n.parsedType\n }), O;\n }\n return { status: \"valid\", value: e.data };\n }\n}\nur.create = (r) => new ur({\n typeName: T.ZodNaN,\n ...I(r)\n});\nconst Bi = Symbol(\"zod_brand\");\nclass as extends C {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), n = t.data;\n return this._def.type._parse({\n data: n,\n path: t.path,\n parent: t\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass Zt extends C {\n _parse(e) {\n const { status: t, ctx: n } = this._processInputParams(e);\n if (n.common.async)\n return (async () => {\n const a = await this._def.in._parseAsync({\n data: n.data,\n path: n.path,\n parent: n\n });\n return a.status === \"aborted\" ? O : a.status === \"dirty\" ? (t.dirty(), ns(a.value)) : this._def.out._parseAsync({\n data: a.value,\n path: n.path,\n parent: n\n });\n })();\n {\n const s = this._def.in._parseSync({\n data: n.data,\n path: n.path,\n parent: n\n });\n return s.status === \"aborted\" ? O : s.status === \"dirty\" ? (t.dirty(), {\n status: \"dirty\",\n value: s.value\n }) : this._def.out._parseSync({\n data: s.value,\n path: n.path,\n parent: n\n });\n }\n }\n static create(e, t) {\n return new Zt({\n in: e,\n out: t,\n typeName: T.ZodPipeline\n });\n }\n}\nclass cr extends C {\n _parse(e) {\n const t = this._def.innerType._parse(e);\n return vt(t) && (t.value = Object.freeze(t.value)), t;\n }\n}\ncr.create = (r, e) => new cr({\n innerType: r,\n typeName: T.ZodReadonly,\n ...I(e)\n});\nconst is = (r, e = {}, t) => r ? Xe.create().superRefine((n, s) => {\n var a, i;\n if (!r(n)) {\n const o = typeof e == \"function\" ? e(n) : typeof e == \"string\" ? { message: e } : e, u = (i = (a = o.fatal) !== null && a !== void 0 ? a : t) !== null && i !== void 0 ? i : !0, c = typeof o == \"string\" ? { message: o } : o;\n s.addIssue({ code: \"custom\", ...c, fatal: u });\n }\n}) : Xe.create(), Vi = {\n object: L.lazycreate\n};\nvar T;\n(function(r) {\n r.ZodString = \"ZodString\", r.ZodNumber = \"ZodNumber\", r.ZodNaN = \"ZodNaN\", r.ZodBigInt = \"ZodBigInt\", r.ZodBoolean = \"ZodBoolean\", r.ZodDate = \"ZodDate\", r.ZodSymbol = \"ZodSymbol\", r.ZodUndefined = \"ZodUndefined\", r.ZodNull = \"ZodNull\", r.ZodAny = \"ZodAny\", r.ZodUnknown = \"ZodUnknown\", r.ZodNever = \"ZodNever\", r.ZodVoid = \"ZodVoid\", r.ZodArray = \"ZodArray\", r.ZodObject = \"ZodObject\", r.ZodUnion = \"ZodUnion\", r.ZodDiscriminatedUnion = \"ZodDiscriminatedUnion\", r.ZodIntersection = \"ZodIntersection\", r.ZodTuple = \"ZodTuple\", r.ZodRecord = \"ZodRecord\", r.ZodMap = \"ZodMap\", r.ZodSet = \"ZodSet\", r.ZodFunction = \"ZodFunction\", r.ZodLazy = \"ZodLazy\", r.ZodLiteral = \"ZodLiteral\", r.ZodEnum = \"ZodEnum\", r.ZodEffects = \"ZodEffects\", r.ZodNativeEnum = \"ZodNativeEnum\", r.ZodOptional = \"ZodOptional\", r.ZodNullable = \"ZodNullable\", r.ZodDefault = \"ZodDefault\", r.ZodCatch = \"ZodCatch\", r.ZodPromise = \"ZodPromise\", r.ZodBranded = \"ZodBranded\", r.ZodPipeline = \"ZodPipeline\", r.ZodReadonly = \"ZodReadonly\";\n})(T || (T = {}));\nconst Yi = (r, e = {\n message: `Input not instance of ${r.name}`\n}) => is((t) => t instanceof r, e), os = ee.create, us = Ae.create, Ki = ur.create, Wi = $e.create, cs = gt.create, qi = Le.create, Fi = sr.create, Gi = _t.create, Hi = bt.create, Ji = Xe.create, Xi = Me.create, Qi = ke.create, eo = ar.create, to = ne.create, ro = L.create, no = L.strictCreate, so = wt.create, ao = vr.create, io = xt.create, oo = de.create, uo = Tt.create, co = ir.create, lo = ze.create, ho = Fe.create, fo = Ot.create, po = kt.create, mo = je.create, yo = St.create, vo = Qe.create, dn = ae.create, go = Te.create, _o = Be.create, bo = ae.createWithPreprocess, wo = Zt.create, xo = () => os().optional(), To = () => us().optional(), Oo = () => cs().optional(), ko = {\n string: (r) => ee.create({ ...r, coerce: !0 }),\n number: (r) => Ae.create({ ...r, coerce: !0 }),\n boolean: (r) => gt.create({\n ...r,\n coerce: !0\n }),\n bigint: (r) => $e.create({ ...r, coerce: !0 }),\n date: (r) => Le.create({ ...r, coerce: !0 })\n}, So = O;\nvar be = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n defaultErrorMap: yt,\n setErrorMap: Zi,\n getErrorMap: tr,\n makeIssue: rr,\n EMPTY_PATH: Ei,\n addIssueToContext: _,\n ParseStatus: F,\n INVALID: O,\n DIRTY: ns,\n OK: J,\n isAborted: Pr,\n isDirty: Ur,\n isValid: vt,\n isAsync: nr,\n get util() {\n return j;\n },\n get objectUtil() {\n return Mr;\n },\n ZodParsedType: v,\n getParsedType: Ne,\n ZodType: C,\n ZodString: ee,\n ZodNumber: Ae,\n ZodBigInt: $e,\n ZodBoolean: gt,\n ZodDate: Le,\n ZodSymbol: sr,\n ZodUndefined: _t,\n ZodNull: bt,\n ZodAny: Xe,\n ZodUnknown: Me,\n ZodNever: ke,\n ZodVoid: ar,\n ZodArray: ne,\n ZodObject: L,\n ZodUnion: wt,\n ZodDiscriminatedUnion: vr,\n ZodIntersection: xt,\n ZodTuple: de,\n ZodRecord: Tt,\n ZodMap: ir,\n ZodSet: ze,\n ZodFunction: Fe,\n ZodLazy: Ot,\n ZodLiteral: kt,\n ZodEnum: je,\n ZodNativeEnum: St,\n ZodPromise: Qe,\n ZodEffects: ae,\n ZodTransformer: ae,\n ZodOptional: Te,\n ZodNullable: Be,\n ZodDefault: Nt,\n ZodCatch: or,\n ZodNaN: ur,\n BRAND: Bi,\n ZodBranded: as,\n ZodPipeline: Zt,\n ZodReadonly: cr,\n custom: is,\n Schema: C,\n ZodSchema: C,\n late: Vi,\n get ZodFirstPartyTypeKind() {\n return T;\n },\n coerce: ko,\n any: Ji,\n array: to,\n bigint: Wi,\n boolean: cs,\n date: qi,\n discriminatedUnion: ao,\n effect: dn,\n enum: mo,\n function: ho,\n instanceof: Yi,\n intersection: io,\n lazy: fo,\n literal: po,\n map: co,\n nan: Ki,\n nativeEnum: yo,\n never: Qi,\n null: Hi,\n nullable: _o,\n number: us,\n object: ro,\n oboolean: Oo,\n onumber: To,\n optional: go,\n ostring: xo,\n pipeline: wo,\n preprocess: bo,\n promise: vo,\n record: uo,\n set: lo,\n strictObject: no,\n string: os,\n symbol: Fi,\n transformer: dn,\n tuple: oo,\n undefined: Gi,\n union: so,\n unknown: Xi,\n void: eo,\n NEVER: So,\n ZodIssueCode: f,\n quotelessJson: Ii,\n ZodError: re\n});\nclass gr extends Error {\n constructor(t, n) {\n super(t);\n U(this, \"discriminator\", \"FreighterError\");\n U(this, \"type\");\n this.type = n;\n }\n}\nconst No = (r) => {\n if (r == null || typeof r != \"object\")\n return !1;\n const e = r;\n if (e.discriminator !== \"FreighterError\")\n return !1;\n if (!(\"type\" in e))\n throw new Error(\n `Freighter error is missing its type property: ${JSON.stringify(e)}`\n );\n return !0;\n}, Lr = \"unknown\", ln = \"nil\", _r = \"freighter\", ds = be.object({ type: be.string(), data: be.string() });\nclass Io {\n constructor() {\n U(this, \"providers\", []);\n }\n register(e) {\n this.providers.push(e);\n }\n encode(e) {\n if (e == null)\n return { type: ln, data: \"\" };\n if (No(e))\n for (const t of this.providers) {\n const n = t.encode(e);\n if (n != null)\n return n;\n }\n return { type: Lr, data: JSON.stringify(e) };\n }\n decode(e) {\n if (e == null || e.type === ln)\n return null;\n if (e.type === Lr)\n return new hn(e.data);\n for (const t of this.providers) {\n const n = t.decode(e);\n if (n != null)\n return n;\n }\n return new hn(e.data);\n }\n}\nconst Qr = new Io(), Zo = ({\n encode: r,\n decode: e\n}) => Qr.register({ encode: r, decode: e }), Qo = (r) => Qr.encode(r), ls = (r) => Qr.decode(r);\nclass hn extends gr {\n constructor(e) {\n super(e, Lr);\n }\n}\nconst br = \"freighter.\";\nclass Ve extends gr {\n constructor() {\n super(\"EOF\", _r);\n }\n}\nU(Ve, \"TYPE\", br + \"eof\");\nclass Ye extends gr {\n constructor() {\n super(\"StreamClosed\", _r);\n }\n}\nU(Ye, \"TYPE\", br + \"stream_closed\");\nclass et extends gr {\n constructor(t = {}) {\n const { message: n = \"Unreachable\", url: s = Ti.UNKNOWN } = t;\n super(n, _r);\n U(this, \"url\");\n this.url = s;\n }\n}\nU(et, \"TYPE\", br + \"unreachable\");\nconst Eo = (r) => {\n if (r.type !== _r)\n return null;\n if (r instanceof Ve)\n return { type: Ve.TYPE, data: \"EOF\" };\n if (r instanceof Ye)\n return { type: Ye.TYPE, data: \"StreamClosed\" };\n if (r instanceof et)\n return { type: et.TYPE, data: \"Unreachable\" };\n throw new Error(`Unknown error type: ${r.type}: ${r.message}`);\n}, Co = (r) => {\n if (!r.type.startsWith(br))\n return null;\n switch (r.type) {\n case Ve.TYPE:\n return new Ve();\n case Ye.TYPE:\n return new Ye();\n case et.TYPE:\n return new et();\n default:\n throw new Error(`Unknown error type: ${r.data}`);\n }\n};\nZo({\n encode: Eo,\n decode: Co\n});\nclass hs {\n constructor() {\n U(this, \"middleware\", []);\n }\n /** Implements the Transport interface */\n use(...e) {\n this.middleware.push(...e);\n }\n /**\n * Executes middleware in order, passing the the metadata to each middleware\n * until the end of the chain is reached. It then calls the finalizer with the\n * metadata.\n *\n * @param ctx - The context to pass to the middleware.\n * @param finalizer - The finalizer to call with the metadata.\n * @returns An error if one was encountered, otherwise undefined.\n */\n async executeMiddleware(e, t) {\n let n = 0;\n const s = async (a) => {\n if (n === this.middleware.length)\n return await t(a);\n const i = this.middleware[n];\n return n++, await i(a, s);\n };\n return await s(e);\n }\n}\nconst fs = \"Content-Type\", fn = (r) => {\n if (es.RUNTIME !== \"node\")\n return fetch;\n const e = require(\"node-fetch\");\n if (r === \"http\")\n return e;\n const t = require(\"https\"), n = new t.Agent({ rejectUnauthorized: !1 });\n return async (s, a) => await e(s, { ...a, agent: n });\n};\nclass eu extends hs {\n constructor(t, n, s = !1) {\n super();\n U(this, \"endpoint\");\n U(this, \"encoder\");\n U(this, \"fetch\");\n return this.endpoint = t.replace({ protocol: s ? \"https\" : \"http\" }), this.encoder = n, this.fetch = fn(this.endpoint.protocol), new Proxy(this, {\n get: (a, i, o) => i === \"endpoint\" ? this.endpoint : Reflect.get(a, i, o)\n });\n }\n get headers() {\n return {\n [fs]: this.encoder.contentType\n };\n }\n async send(t, n, s, a) {\n n = s == null ? void 0 : s.parse(n);\n let i = null;\n const o = this.endpoint.child(t), u = {};\n u.method = \"POST\", u.body = this.encoder.encode(n ?? {});\n const [, c] = await this.executeMiddleware(\n {\n target: o.toString(),\n protocol: this.endpoint.protocol,\n params: {},\n role: \"client\"\n },\n async (p) => {\n const Z = { ...p, params: {} };\n u.headers = {\n ...this.headers,\n ...p.params\n };\n let K;\n try {\n K = await fn(p.protocol)(p.target, u);\n } catch (he) {\n let X = he;\n return X.message === \"Load failed\" && (X = new et({ url: o })), [Z, X];\n }\n const le = await K.arrayBuffer();\n if (K != null && K.ok)\n return a != null && (i = this.encoder.decode(le, a)), [Z, null];\n try {\n if (K.status !== 400)\n return [Z, new Error(K.statusText)];\n const he = this.encoder.decode(le, ds), X = ls(he);\n return [Z, X];\n } catch (he) {\n return [\n Z,\n new Error(\n `[freighter] - failed to decode error: ${K.statusText}: ${he.message}`\n )\n ];\n }\n }\n );\n return [i, c];\n }\n}\nconst tu = async (r, e, t, n, s) => {\n const [a, i] = await r.send(e, t, n, s);\n if (i != null)\n throw i;\n return a;\n}, Ao = () => es.RUNTIME !== \"node\" ? (r) => new WebSocket(r) : (r) => new (require(\"ws\")).WebSocket(r, { rejectUnauthorized: !1 }), $o = be.object({\n type: be.union([be.literal(\"data\"), be.literal(\"close\")]),\n payload: be.unknown().optional(),\n error: be.optional(ds)\n});\nclass jo {\n constructor(e, t, n, s) {\n U(this, \"encoder\");\n U(this, \"reqSchema\");\n U(this, \"resSchema\");\n U(this, \"ws\");\n U(this, \"serverClosed\");\n U(this, \"sendClosed\");\n U(this, \"receiveDataQueue\", []);\n U(this, \"receiveCallbacksQueue\", []);\n this.encoder = t, this.reqSchema = n, this.resSchema = s, this.ws = e, this.sendClosed = !1, this.serverClosed = null, this.listenForMessages();\n }\n /** Implements the Stream protocol */\n send(e) {\n if (this.serverClosed != null)\n return new Ve();\n if (this.sendClosed)\n throw new Ye();\n return this.ws.send(this.encoder.encode({ type: \"data\", payload: e })), null;\n }\n /** Implements the Stream protocol */\n async receive() {\n if (this.serverClosed != null)\n return [null, this.serverClosed];\n const e = await this.receiveMsg();\n if (e.type === \"close\") {\n if (e.error == null)\n throw new Error(\"Message error must be defined\");\n return this.serverClosed = ls(e.error), [null, this.serverClosed];\n }\n return [this.resSchema.parse(e.payload), null];\n }\n /** Implements the Stream protocol */\n received() {\n return this.receiveDataQueue.length !== 0;\n }\n /** Implements the Stream protocol */\n closeSend() {\n if (this.sendClosed || this.serverClosed != null)\n return;\n const e = { type: \"close\" };\n try {\n this.ws.send(this.encoder.encode(e));\n } finally {\n this.sendClosed = !0;\n }\n }\n async receiveMsg() {\n const e = this.receiveDataQueue.shift();\n return e ?? await new Promise(\n (t, n) => this.receiveCallbacksQueue.push({ resolve: t, reject: n })\n );\n }\n listenForMessages() {\n this.ws.onmessage = (e) => {\n const t = this.encoder.decode(e.data, $o), n = this.receiveCallbacksQueue.shift();\n n != null ? n.resolve(t) : this.receiveDataQueue.push(t);\n }, this.ws.onclose = (e) => {\n this.serverClosed = Do(e) ? new Ve() : new Ye();\n };\n }\n}\nconst Ro = \"freighterctx\", Mo = 1e3, Po = 1001, Uo = [Mo, Po], Do = (r) => Uo.includes(r.code), dr = class dr extends hs {\n /**\n * @param encoder - The encoder to use for encoding messages and decoding\n * responses.\n * @param baseEndpoint - A base url to use as a prefix for all requests.\n */\n constructor(t, n, s = !1) {\n super();\n U(this, \"baseUrl\");\n U(this, \"encoder\");\n this.baseUrl = t.replace({ protocol: s ? \"wss\" : \"ws\" }), this.encoder = n;\n }\n /** Implements the StreamClient interface. */\n async stream(t, n, s) {\n const a = Ao();\n let i;\n const [, o] = await this.executeMiddleware(\n { target: t, protocol: \"websocket\", params: {}, role: \"client\" },\n async (u) => {\n const c = a(this.buildURL(t, u)), p = { ...u, params: {} };\n c.binaryType = dr.MESSAGE_TYPE;\n const Z = await this.wrapSocket(c, n, s);\n return Z instanceof Error ? [p, Z] : (i = Z, [p, null]);\n }\n );\n if (o != null)\n throw o;\n return i;\n }\n buildURL(t, n) {\n const s = xi(\n {\n [fs]: this.encoder.contentType,\n ...n.params\n },\n Ro\n );\n return this.baseUrl.child(t).toString() + s;\n }\n async wrapSocket(t, n, s) {\n return await new Promise((a) => {\n t.onopen = () => {\n a(new jo(t, this.encoder, n, s));\n }, t.onerror = (i) => {\n const o = i;\n a(new Error(o.message));\n };\n });\n }\n};\nU(dr, \"MESSAGE_TYPE\", \"arraybuffer\");\nlet pn = dr;\nexport {\n gr as BaseTypedError,\n Ve as EOF,\n eu as HTTPClient,\n Ye as StreamClosed,\n et as Unreachable,\n pn as WebSocketClient,\n ls as decodeError,\n Qo as encodeError,\n ds as errorZ,\n Zo as registerError,\n tu as sendRequired\n};\n//# sourceMappingURL=freighter.js.map\n","var c = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, i = {}, k = {};\nObject.defineProperty(k, \"__esModule\", { value: !0 });\nfunction ne(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/[^A-Za-z0-9]+/g, \"$\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"$\" + t;\n }).toLowerCase().replace(/(\\$)(\\w)/g, function(e, s, t) {\n return t.toUpperCase();\n }) : \"\";\n}\nk.default = ne;\nvar T = {};\nObject.defineProperty(T, \"__esModule\", { value: !0 });\nfunction se(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"_\" + t.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"_\").toLowerCase() : \"\";\n}\nT.default = se;\nvar z = {};\nObject.defineProperty(z, \"__esModule\", { value: !0 });\nfunction ue(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"$\").replace(/[^A-Za-z0-9]+/g, \"$\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"$\" + t;\n }).toLowerCase().replace(/(\\$)(\\w?)/g, function(e, s, t) {\n return t.toUpperCase();\n }) : \"\";\n}\nz.default = ue;\nvar Z = {};\nObject.defineProperty(Z, \"__esModule\", { value: !0 });\nfunction ie(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"_\" + t.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \".\").toLowerCase() : \"\";\n}\nZ.default = ie;\nvar h = {};\nObject.defineProperty(h, \"__esModule\", { value: !0 });\nfunction le(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"_\" + t.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"/\").toLowerCase() : \"\";\n}\nh.default = le;\nvar w = {};\nObject.defineProperty(w, \"__esModule\", { value: !0 });\nfunction ce(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"_\" + t.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase() : \"\";\n}\nw.default = ce;\nvar $ = {};\nObject.defineProperty($, \"__esModule\", { value: !0 });\nfunction fe(a) {\n if (a === void 0 && (a = \"\"), !a)\n return \"\";\n var e = String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(s, t, r) {\n return t + \"_\" + r.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase();\n return e.charAt(0).toUpperCase() + e.slice(1);\n}\n$.default = fe;\nvar P = {};\nObject.defineProperty(P, \"__esModule\", { value: !0 });\nfunction oe(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"_\" + t.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase().replace(/( ?)(\\w+)( ?)/g, function(e, s, t, r) {\n return s + t.charAt(0).toUpperCase() + t.slice(1) + r;\n }) : \"\";\n}\nP.default = oe;\nvar K = {};\nObject.defineProperty(K, \"__esModule\", { value: !0 });\nfunction de(a) {\n return a === void 0 && (a = \"\"), a ? String(a).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(e, s, t) {\n return s + \"_\" + t.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"-\").toLowerCase() : \"\";\n}\nK.default = de;\nvar S = {}, p = {};\n(function(a) {\n Object.defineProperty(a, \"__esModule\", { value: !0 }), a.belongToTypes = a.isValidObject = a.isArrayObject = a.validateOptions = a.DefaultOption = void 0, a.DefaultOption = {\n recursive: !1,\n recursiveInArray: !1,\n keepTypesOnRecursion: []\n }, a.validateOptions = function(e) {\n return e === void 0 && (e = a.DefaultOption), e.recursive == null ? e = a.DefaultOption : e.recursiveInArray == null && (e.recursiveInArray = !1), e;\n }, a.isArrayObject = function(e) {\n return e != null && Array.isArray(e);\n }, a.isValidObject = function(e) {\n return e != null && typeof e == \"object\" && !Array.isArray(e);\n }, a.belongToTypes = function(e, s) {\n return (s || []).some(function(t) {\n return e instanceof t;\n });\n };\n})(p);\nvar ye = c && c.__spreadArrays || function() {\n for (var a = 0, e = 0, s = arguments.length; e < s; e++)\n a += arguments[e].length;\n for (var t = Array(a), r = 0, e = 0; e < s; e++)\n for (var l = arguments[e], n = 0, u = l.length; n < u; n++, r++)\n t[r] = l[n];\n return t;\n};\nObject.defineProperty(S, \"__esModule\", { value: !0 });\nvar o = p;\nfunction g(a, e) {\n if (e === void 0 && (e = o.DefaultOption), !o.isValidObject(a))\n return null;\n e = o.validateOptions(e);\n var s = {};\n return Object.keys(a).forEach(function(t) {\n var r = a[t], l = t.toLowerCase();\n e.recursive && (o.isValidObject(r) ? o.belongToTypes(r, e.keepTypesOnRecursion) || (r = g(r, e)) : e.recursiveInArray && o.isArrayObject(r) && (r = ye(r).map(function(n) {\n var u = n;\n if (o.isValidObject(n))\n o.belongToTypes(u, e.keepTypesOnRecursion) || (u = g(n, e));\n else if (o.isArrayObject(n)) {\n var f = g({ key: n }, e);\n u = f.key;\n }\n return u;\n }))), s[l] = r;\n }), s;\n}\nS.default = g;\nvar L = {}, ve = c && c.__spreadArrays || function() {\n for (var a = 0, e = 0, s = arguments.length; e < s; e++)\n a += arguments[e].length;\n for (var t = Array(a), r = 0, e = 0; e < s; e++)\n for (var l = arguments[e], n = 0, u = l.length; n < u; n++, r++)\n t[r] = l[n];\n return t;\n};\nObject.defineProperty(L, \"__esModule\", { value: !0 });\nvar d = p;\nfunction O(a, e) {\n if (e === void 0 && (e = d.DefaultOption), !d.isValidObject(a))\n return null;\n e = d.validateOptions(e);\n var s = {};\n return Object.keys(a).forEach(function(t) {\n var r = a[t], l = t.toUpperCase();\n e.recursive && (d.isValidObject(r) ? d.belongToTypes(r, e.keepTypesOnRecursion) || (r = O(r, e)) : e.recursiveInArray && d.isArrayObject(r) && (r = ve(r).map(function(n) {\n var u = n;\n if (d.isValidObject(n))\n d.belongToTypes(u, e.keepTypesOnRecursion) || (u = O(n, e));\n else if (d.isArrayObject(n)) {\n var f = O({ key: n }, e);\n u = f.key;\n }\n return u;\n }))), s[l] = r;\n }), s;\n}\nL.default = O;\nvar V = {}, _e = c && c.__spreadArrays || function() {\n for (var a = 0, e = 0, s = arguments.length; e < s; e++)\n a += arguments[e].length;\n for (var t = Array(a), r = 0, e = 0; e < s; e++)\n for (var l = arguments[e], n = 0, u = l.length; n < u; n++, r++)\n t[r] = l[n];\n return t;\n};\nObject.defineProperty(V, \"__esModule\", { value: !0 });\nvar y = p, be = k;\nfunction A(a, e) {\n if (e === void 0 && (e = y.DefaultOption), !y.isValidObject(a))\n return null;\n e = y.validateOptions(e);\n var s = {};\n return Object.keys(a).forEach(function(t) {\n var r = a[t], l = be.default(t);\n e.recursive && (y.isValidObject(r) ? y.belongToTypes(r, e.keepTypesOnRecursion) || (r = A(r, e)) : e.recursiveInArray && y.isArrayObject(r) && (r = _e(r).map(function(n) {\n var u = n;\n if (y.isValidObject(n))\n y.belongToTypes(u, e.keepTypesOnRecursion) || (u = A(n, e));\n else if (y.isArrayObject(n)) {\n var f = A({ key: n }, e);\n u = f.key;\n }\n return u;\n }))), s[l] = r;\n }), s;\n}\nV.default = A;\nvar M = {}, pe = c && c.__spreadArrays || function() {\n for (var a = 0, e = 0, s = arguments.length; e < s; e++)\n a += arguments[e].length;\n for (var t = Array(a), r = 0, e = 0; e < s; e++)\n for (var l = arguments[e], n = 0, u = l.length; n < u; n++, r++)\n t[r] = l[n];\n return t;\n};\nObject.defineProperty(M, \"__esModule\", { value: !0 });\nvar v = p, ge = T;\nfunction C(a, e) {\n if (e === void 0 && (e = v.DefaultOption), !v.isValidObject(a))\n return null;\n e = v.validateOptions(e);\n var s = {};\n return Object.keys(a).forEach(function(t) {\n var r = a[t], l = ge.default(t);\n e.recursive && (v.isValidObject(r) ? v.belongToTypes(r, e.keepTypesOnRecursion) || (r = C(r, e)) : e.recursiveInArray && v.isArrayObject(r) && (r = pe(r).map(function(n) {\n var u = n;\n if (v.isValidObject(n))\n v.belongToTypes(u, e.keepTypesOnRecursion) || (u = C(n, e));\n else if (v.isArrayObject(n)) {\n var f = C({ key: n }, e);\n u = f.key;\n }\n return u;\n }))), s[l] = r;\n }), s;\n}\nM.default = C;\nvar D = {}, Oe = c && c.__spreadArrays || function() {\n for (var a = 0, e = 0, s = arguments.length; e < s; e++)\n a += arguments[e].length;\n for (var t = Array(a), r = 0, e = 0; e < s; e++)\n for (var l = arguments[e], n = 0, u = l.length; n < u; n++, r++)\n t[r] = l[n];\n return t;\n};\nObject.defineProperty(D, \"__esModule\", { value: !0 });\nvar _ = p, Ae = z;\nfunction j(a, e) {\n if (e === void 0 && (e = _.DefaultOption), !_.isValidObject(a))\n return null;\n e = _.validateOptions(e);\n var s = {};\n return Object.keys(a).forEach(function(t) {\n var r = a[t], l = Ae.default(t);\n e.recursive && (_.isValidObject(r) ? _.belongToTypes(r, e.keepTypesOnRecursion) || (r = j(r, e)) : e.recursiveInArray && _.isArrayObject(r) && (r = Oe(r).map(function(n) {\n var u = n;\n if (_.isValidObject(n))\n _.belongToTypes(u, e.keepTypesOnRecursion) || (u = j(n, e));\n else if (_.isArrayObject(n)) {\n var f = j({ key: n }, e);\n u = f.key;\n }\n return u;\n }))), s[l] = r;\n }), s;\n}\nD.default = j;\nvar R = {}, Ce = c && c.__spreadArrays || function() {\n for (var a = 0, e = 0, s = arguments.length; e < s; e++)\n a += arguments[e].length;\n for (var t = Array(a), r = 0, e = 0; e < s; e++)\n for (var l = arguments[e], n = 0, u = l.length; n < u; n++, r++)\n t[r] = l[n];\n return t;\n};\nObject.defineProperty(R, \"__esModule\", { value: !0 });\nvar b = p, je = K;\nfunction m(a, e) {\n if (e === void 0 && (e = b.DefaultOption), !b.isValidObject(a))\n return null;\n e = b.validateOptions(e);\n var s = {};\n return Object.keys(a).forEach(function(t) {\n var r = a[t], l = je.default(t);\n e.recursive && (b.isValidObject(r) ? b.belongToTypes(r, e.keepTypesOnRecursion) || (r = m(r, e)) : e.recursiveInArray && b.isArrayObject(r) && (r = Ce(r).map(function(n) {\n var u = n;\n if (b.isValidObject(n))\n b.belongToTypes(u, e.keepTypesOnRecursion) || (u = m(n, e));\n else if (b.isArrayObject(n)) {\n var f = m({ key: n }, e);\n u = f.key;\n }\n return u;\n }))), s[l] = r;\n }), s;\n}\nR.default = m;\nObject.defineProperty(i, \"__esModule\", { value: !0 });\ni.kebabKeys = i.pascalKeys = i.snakeKeys = i.camelKeys = i.upperKeys = i.lowerKeys = i.toLowerCase = i.toUpperCase = i.toKebabCase = i.toHeaderCase = i.toSentenceCase = i.toTextCase = i.toPathCase = i.toDotCase = i.toPascalCase = i.toSnakeCase = i.toCamelCase = void 0;\nvar U = k;\ni.toCamelCase = U.default;\nvar I = T;\ni.toSnakeCase = I.default;\nvar E = z;\ni.toPascalCase = E.default;\nvar H = Z;\ni.toDotCase = H.default;\nvar G = h;\ni.toPathCase = G.default;\nvar N = w;\ni.toTextCase = N.default;\nvar q = $;\ni.toSentenceCase = q.default;\nvar B = P;\ni.toHeaderCase = B.default;\nvar F = K;\ni.toKebabCase = F.default;\nvar J = S;\ni.lowerKeys = J.default;\nvar Q = L;\ni.upperKeys = Q.default;\nvar W = V;\ni.camelKeys = W.default;\nvar X = M;\ni.snakeKeys = X.default;\nvar Y = D;\ni.pascalKeys = Y.default;\nvar x = R;\ni.kebabKeys = x.default;\nvar ee = function(a) {\n return String(a || \"\").toLowerCase();\n};\ni.toLowerCase = ee;\nvar ae = function(a) {\n return String(a || \"\").toUpperCase();\n};\ni.toUpperCase = ae;\nvar me = {\n toCamelCase: U.default,\n toSnakeCase: I.default,\n toPascalCase: E.default,\n toDotCase: H.default,\n toPathCase: G.default,\n toTextCase: N.default,\n toSentenceCase: q.default,\n toHeaderCase: B.default,\n toKebabCase: F.default,\n toUpperCase: ae,\n toLowerCase: ee,\n lowerKeys: J.default,\n upperKeys: Q.default,\n camelKeys: W.default,\n snakeKeys: X.default,\n pascalKeys: Y.default,\n kebabKeys: x.default\n};\ni.default = me;\nvar re = i;\nconst te = {\n recursive: !0,\n recursiveInArray: !0,\n keepTypesOnRecursion: [Number, String, Uint8Array]\n}, ke = (a) => re.snakeKeys(a, te), Te = (a) => re.camelKeys(a, te), ze = (a) => a[0].toUpperCase() + a.slice(1), Ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n capitalize: ze,\n toCamel: Te,\n toSnake: ke\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n ke as a,\n ze as b,\n Ke as c,\n Te as t\n};\n//# sourceMappingURL=index-GKyuv4Un.js.map\n","const i = (r) => r != null && typeof r == \"object\" && \"toString\" in r, A = (r) => {\n if (i(r))\n return (r == null ? void 0 : r.toString().length) === 0;\n switch (typeof r) {\n case \"string\":\n return r.length === 0;\n case \"number\":\n return r === 0;\n case \"bigint\":\n return r === 0n;\n case \"boolean\":\n return !r;\n case \"undefined\":\n return !0;\n case \"object\":\n return r === null;\n }\n}, c = (r, t = !1) => {\n const o = i(r) ? \"stringer\" : typeof r;\n let e;\n switch (o) {\n case \"string\":\n e = (n, s) => n.localeCompare(s);\n break;\n case \"stringer\":\n e = (n, s) => n.toString().localeCompare(s.toString());\n break;\n case \"number\":\n e = (n, s) => Number(n) - Number(s);\n break;\n case \"bigint\":\n e = (n, s) => BigInt(n) - BigInt(s) > 0n ? 1 : -1;\n break;\n case \"boolean\":\n e = (n, s) => Number(n) - Number(s);\n break;\n default:\n return console.warn(\"sortFunc: unknown type\"), () => -1;\n }\n return t ? g(e) : e;\n}, u = (r, t, o) => {\n const e = c(t[r], o);\n return (n, s) => e(n[r], s[r]);\n}, l = (r, t) => r.length !== t.length ? r.length - t.length : r.every((o, e) => o === t[e]) ? 0 : -1, f = (r, t) => {\n if (r.length !== t.length)\n return r.length - t.length;\n if (r.length === 0)\n return 0;\n const o = c(r[0]), e = [...r].sort(o), n = [...t].sort(o);\n return e.every((s, a) => s === n[a]) ? 0 : -1;\n}, b = (r, t) => r === t ? 0 : r === \"first\" && t === \"last\" ? 1 : -1, g = (r) => (t, o) => r(o, t);\nconst h = (r) => r < 0, m = (r) => r > 0, p = (r) => r >= 0, S = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n EQUAL: 0,\n GREATER_THAN: 1,\n LESS_THAN: -1,\n isGreaterThan: m,\n isGreaterThanEqual: p,\n isLessThan: h,\n newF: c,\n newFieldF: u,\n order: b,\n primitiveArrays: l,\n reverseF: g,\n unorderedPrimitiveArrays: f\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n i as a,\n S as c,\n m as i,\n c as n,\n A as p\n};\n//# sourceMappingURL=index-Bcm6lEr8.js.map\n","var g;\n(function(r) {\n r.assertEqual = (n) => n;\n function e(n) {\n }\n r.assertIs = e;\n function t(n) {\n throw new Error();\n }\n r.assertNever = t, r.arrayToEnum = (n) => {\n const a = {};\n for (const i of n)\n a[i] = i;\n return a;\n }, r.getValidEnumValues = (n) => {\n const a = r.objectKeys(n).filter((o) => typeof n[n[o]] != \"number\"), i = {};\n for (const o of a)\n i[o] = n[o];\n return r.objectValues(i);\n }, r.objectValues = (n) => r.objectKeys(n).map(function(a) {\n return n[a];\n }), r.objectKeys = typeof Object.keys == \"function\" ? (n) => Object.keys(n) : (n) => {\n const a = [];\n for (const i in n)\n Object.prototype.hasOwnProperty.call(n, i) && a.push(i);\n return a;\n }, r.find = (n, a) => {\n for (const i of n)\n if (a(i))\n return i;\n }, r.isInteger = typeof Number.isInteger == \"function\" ? (n) => Number.isInteger(n) : (n) => typeof n == \"number\" && isFinite(n) && Math.floor(n) === n;\n function s(n, a = \" | \") {\n return n.map((i) => typeof i == \"string\" ? `'${i}'` : i).join(a);\n }\n r.joinValues = s, r.jsonStringifyReplacer = (n, a) => typeof a == \"bigint\" ? a.toString() : a;\n})(g || (g = {}));\nvar ye;\n(function(r) {\n r.mergeShapes = (e, t) => ({\n ...e,\n ...t\n // second overwrites first\n });\n})(ye || (ye = {}));\nconst u = g.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]), R = (r) => {\n switch (typeof r) {\n case \"undefined\":\n return u.undefined;\n case \"string\":\n return u.string;\n case \"number\":\n return isNaN(r) ? u.nan : u.number;\n case \"boolean\":\n return u.boolean;\n case \"function\":\n return u.function;\n case \"bigint\":\n return u.bigint;\n case \"symbol\":\n return u.symbol;\n case \"object\":\n return Array.isArray(r) ? u.array : r === null ? u.null : r.then && typeof r.then == \"function\" && r.catch && typeof r.catch == \"function\" ? u.promise : typeof Map < \"u\" && r instanceof Map ? u.map : typeof Set < \"u\" && r instanceof Set ? u.set : typeof Date < \"u\" && r instanceof Date ? u.date : u.object;\n default:\n return u.unknown;\n }\n}, d = g.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]), Ee = (r) => JSON.stringify(r, null, 2).replace(/\"([^\"]+)\":/g, \"$1:\");\nclass Z extends Error {\n constructor(e) {\n super(), this.issues = [], this.addIssue = (s) => {\n this.issues = [...this.issues, s];\n }, this.addIssues = (s = []) => {\n this.issues = [...this.issues, ...s];\n };\n const t = new.target.prototype;\n Object.setPrototypeOf ? Object.setPrototypeOf(this, t) : this.__proto__ = t, this.name = \"ZodError\", this.issues = e;\n }\n get errors() {\n return this.issues;\n }\n format(e) {\n const t = e || function(a) {\n return a.message;\n }, s = { _errors: [] }, n = (a) => {\n for (const i of a.issues)\n if (i.code === \"invalid_union\")\n i.unionErrors.map(n);\n else if (i.code === \"invalid_return_type\")\n n(i.returnTypeError);\n else if (i.code === \"invalid_arguments\")\n n(i.argumentsError);\n else if (i.path.length === 0)\n s._errors.push(t(i));\n else {\n let o = s, f = 0;\n for (; f < i.path.length; ) {\n const c = i.path[f];\n f === i.path.length - 1 ? (o[c] = o[c] || { _errors: [] }, o[c]._errors.push(t(i))) : o[c] = o[c] || { _errors: [] }, o = o[c], f++;\n }\n }\n };\n return n(this), s;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, g.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(e = (t) => t.message) {\n const t = {}, s = [];\n for (const n of this.issues)\n n.path.length > 0 ? (t[n.path[0]] = t[n.path[0]] || [], t[n.path[0]].push(e(n))) : s.push(e(n));\n return { formErrors: s, fieldErrors: t };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZ.create = (r) => new Z(r);\nconst W = (r, e) => {\n let t;\n switch (r.code) {\n case d.invalid_type:\n r.received === u.undefined ? t = \"Required\" : t = `Expected ${r.expected}, received ${r.received}`;\n break;\n case d.invalid_literal:\n t = `Invalid literal value, expected ${JSON.stringify(r.expected, g.jsonStringifyReplacer)}`;\n break;\n case d.unrecognized_keys:\n t = `Unrecognized key(s) in object: ${g.joinValues(r.keys, \", \")}`;\n break;\n case d.invalid_union:\n t = \"Invalid input\";\n break;\n case d.invalid_union_discriminator:\n t = `Invalid discriminator value. Expected ${g.joinValues(r.options)}`;\n break;\n case d.invalid_enum_value:\n t = `Invalid enum value. Expected ${g.joinValues(r.options)}, received '${r.received}'`;\n break;\n case d.invalid_arguments:\n t = \"Invalid function arguments\";\n break;\n case d.invalid_return_type:\n t = \"Invalid function return type\";\n break;\n case d.invalid_date:\n t = \"Invalid date\";\n break;\n case d.invalid_string:\n typeof r.validation == \"object\" ? \"includes\" in r.validation ? (t = `Invalid input: must include \"${r.validation.includes}\"`, typeof r.validation.position == \"number\" && (t = `${t} at one or more positions greater than or equal to ${r.validation.position}`)) : \"startsWith\" in r.validation ? t = `Invalid input: must start with \"${r.validation.startsWith}\"` : \"endsWith\" in r.validation ? t = `Invalid input: must end with \"${r.validation.endsWith}\"` : g.assertNever(r.validation) : r.validation !== \"regex\" ? t = `Invalid ${r.validation}` : t = \"Invalid\";\n break;\n case d.too_small:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"more than\"} ${r.minimum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at least\" : \"over\"} ${r.minimum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${r.minimum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly equal to \" : r.inclusive ? \"greater than or equal to \" : \"greater than \"}${new Date(Number(r.minimum))}` : t = \"Invalid input\";\n break;\n case d.too_big:\n r.type === \"array\" ? t = `Array must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"less than\"} ${r.maximum} element(s)` : r.type === \"string\" ? t = `String must contain ${r.exact ? \"exactly\" : r.inclusive ? \"at most\" : \"under\"} ${r.maximum} character(s)` : r.type === \"number\" ? t = `Number must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"bigint\" ? t = `BigInt must be ${r.exact ? \"exactly\" : r.inclusive ? \"less than or equal to\" : \"less than\"} ${r.maximum}` : r.type === \"date\" ? t = `Date must be ${r.exact ? \"exactly\" : r.inclusive ? \"smaller than or equal to\" : \"smaller than\"} ${new Date(Number(r.maximum))}` : t = \"Invalid input\";\n break;\n case d.custom:\n t = \"Invalid input\";\n break;\n case d.invalid_intersection_types:\n t = \"Intersection results could not be merged\";\n break;\n case d.not_multiple_of:\n t = `Number must be a multiple of ${r.multipleOf}`;\n break;\n case d.not_finite:\n t = \"Number must be finite\";\n break;\n default:\n t = e.defaultError, g.assertNever(r);\n }\n return { message: t };\n};\nlet be = W;\nfunction Ie(r) {\n be = r;\n}\nfunction ne() {\n return be;\n}\nconst ae = (r) => {\n const { data: e, path: t, errorMaps: s, issueData: n } = r, a = [...t, ...n.path || []], i = {\n ...n,\n path: a\n };\n let o = \"\";\n const f = s.filter((c) => !!c).slice().reverse();\n for (const c of f)\n o = c(i, { data: e, defaultError: o }).message;\n return {\n ...n,\n path: a,\n message: n.message || o\n };\n}, Re = [];\nfunction l(r, e) {\n const t = ae({\n issueData: e,\n data: r.data,\n path: r.path,\n errorMaps: [\n r.common.contextualErrorMap,\n r.schemaErrorMap,\n ne(),\n W\n // then global default map\n ].filter((s) => !!s)\n });\n r.common.issues.push(t);\n}\nclass k {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n this.value === \"valid\" && (this.value = \"dirty\");\n }\n abort() {\n this.value !== \"aborted\" && (this.value = \"aborted\");\n }\n static mergeArray(e, t) {\n const s = [];\n for (const n of t) {\n if (n.status === \"aborted\")\n return m;\n n.status === \"dirty\" && e.dirty(), s.push(n.value);\n }\n return { status: e.value, value: s };\n }\n static async mergeObjectAsync(e, t) {\n const s = [];\n for (const n of t)\n s.push({\n key: await n.key,\n value: await n.value\n });\n return k.mergeObjectSync(e, s);\n }\n static mergeObjectSync(e, t) {\n const s = {};\n for (const n of t) {\n const { key: a, value: i } = n;\n if (a.status === \"aborted\" || i.status === \"aborted\")\n return m;\n a.status === \"dirty\" && e.dirty(), i.status === \"dirty\" && e.dirty(), a.value !== \"__proto__\" && (typeof i.value < \"u\" || n.alwaysSet) && (s[a.value] = i.value);\n }\n return { status: e.value, value: s };\n }\n}\nconst m = Object.freeze({\n status: \"aborted\"\n}), we = (r) => ({ status: \"dirty\", value: r }), b = (r) => ({ status: \"valid\", value: r }), ve = (r) => r.status === \"aborted\", _e = (r) => r.status === \"dirty\", q = (r) => r.status === \"valid\", ie = (r) => typeof Promise < \"u\" && r instanceof Promise;\nvar h;\n(function(r) {\n r.errToObj = (e) => typeof e == \"string\" ? { message: e } : e || {}, r.toString = (e) => typeof e == \"string\" ? e : e == null ? void 0 : e.message;\n})(h || (h = {}));\nclass C {\n constructor(e, t, s, n) {\n this._cachedPath = [], this.parent = e, this.data = t, this._path = s, this._key = n;\n }\n get path() {\n return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath;\n }\n}\nconst xe = (r, e) => {\n if (q(e))\n return { success: !0, data: e.value };\n if (!r.common.issues.length)\n throw new Error(\"Validation failed but no issues detected.\");\n return {\n success: !1,\n get error() {\n if (this._error)\n return this._error;\n const t = new Z(r.common.issues);\n return this._error = t, this._error;\n }\n };\n};\nfunction y(r) {\n if (!r)\n return {};\n const { errorMap: e, invalid_type_error: t, required_error: s, description: n } = r;\n if (e && (t || s))\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n return e ? { errorMap: e, description: n } : { errorMap: (i, o) => i.code !== \"invalid_type\" ? { message: o.defaultError } : typeof o.data > \"u\" ? { message: s ?? o.defaultError } : { message: t ?? o.defaultError }, description: n };\n}\nclass v {\n constructor(e) {\n this.spa = this.safeParseAsync, this._def = e, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.readonly = this.readonly.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(e) {\n return R(e.data);\n }\n _getOrReturnCtx(e, t) {\n return t || {\n common: e.parent.common,\n data: e.data,\n parsedType: R(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n };\n }\n _processInputParams(e) {\n return {\n status: new k(),\n ctx: {\n common: e.parent.common,\n data: e.data,\n parsedType: R(e.data),\n schemaErrorMap: this._def.errorMap,\n path: e.path,\n parent: e.parent\n }\n };\n }\n _parseSync(e) {\n const t = this._parse(e);\n if (ie(t))\n throw new Error(\"Synchronous parse encountered promise.\");\n return t;\n }\n _parseAsync(e) {\n const t = this._parse(e);\n return Promise.resolve(t);\n }\n parse(e, t) {\n const s = this.safeParse(e, t);\n if (s.success)\n return s.data;\n throw s.error;\n }\n safeParse(e, t) {\n var s;\n const n = {\n common: {\n issues: [],\n async: (s = t == null ? void 0 : t.async) !== null && s !== void 0 ? s : !1,\n contextualErrorMap: t == null ? void 0 : t.errorMap\n },\n path: (t == null ? void 0 : t.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: R(e)\n }, a = this._parseSync({ data: e, path: n.path, parent: n });\n return xe(n, a);\n }\n async parseAsync(e, t) {\n const s = await this.safeParseAsync(e, t);\n if (s.success)\n return s.data;\n throw s.error;\n }\n async safeParseAsync(e, t) {\n const s = {\n common: {\n issues: [],\n contextualErrorMap: t == null ? void 0 : t.errorMap,\n async: !0\n },\n path: (t == null ? void 0 : t.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data: e,\n parsedType: R(e)\n }, n = this._parse({ data: e, path: s.path, parent: s }), a = await (ie(n) ? n : Promise.resolve(n));\n return xe(s, a);\n }\n refine(e, t) {\n const s = (n) => typeof t == \"string\" || typeof t > \"u\" ? { message: t } : typeof t == \"function\" ? t(n) : t;\n return this._refinement((n, a) => {\n const i = e(n), o = () => a.addIssue({\n code: d.custom,\n ...s(n)\n });\n return typeof Promise < \"u\" && i instanceof Promise ? i.then((f) => f ? !0 : (o(), !1)) : i ? !0 : (o(), !1);\n });\n }\n refinement(e, t) {\n return this._refinement((s, n) => e(s) ? !0 : (n.addIssue(typeof t == \"function\" ? t(s, n) : t), !1));\n }\n _refinement(e) {\n return new N({\n schema: this,\n typeName: p.ZodEffects,\n effect: { type: \"refinement\", refinement: e }\n });\n }\n superRefine(e) {\n return this._refinement(e);\n }\n optional() {\n return E.create(this, this._def);\n }\n nullable() {\n return L.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return S.create(this, this._def);\n }\n promise() {\n return B.create(this, this._def);\n }\n or(e) {\n return G.create([this, e], this._def);\n }\n and(e) {\n return X.create(this, e, this._def);\n }\n transform(e) {\n return new N({\n ...y(this._def),\n schema: this,\n typeName: p.ZodEffects,\n effect: { type: \"transform\", transform: e }\n });\n }\n default(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new te({\n ...y(this._def),\n innerType: this,\n defaultValue: t,\n typeName: p.ZodDefault\n });\n }\n brand() {\n return new Ze({\n typeName: p.ZodBranded,\n type: this,\n ...y(this._def)\n });\n }\n catch(e) {\n const t = typeof e == \"function\" ? e : () => e;\n return new ue({\n ...y(this._def),\n innerType: this,\n catchValue: t,\n typeName: p.ZodCatch\n });\n }\n describe(e) {\n const t = this.constructor;\n return new t({\n ...this._def,\n description: e\n });\n }\n pipe(e) {\n return re.create(this, e);\n }\n readonly() {\n return fe.create(this);\n }\n isOptional() {\n return this.safeParse(void 0).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst je = /^c[^\\s-]{8,}$/i, Ae = /^[a-z][a-z0-9]*$/, Me = /^[0-9A-HJKMNP-TV-Z]{26}$/, Pe = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i, Ve = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i, $e = \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\";\nlet me;\nconst Le = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/, De = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, ze = (r) => r.precision ? r.offset ? new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${r.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`) : new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${r.precision}}Z$`) : r.precision === 0 ? r.offset ? new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$\") : new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$\") : r.offset ? new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$\") : new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$\");\nfunction Ue(r, e) {\n return !!((e === \"v4\" || !e) && Le.test(r) || (e === \"v6\" || !e) && De.test(r));\n}\nclass T extends v {\n _parse(e) {\n if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== u.string) {\n const a = this._getOrReturnCtx(e);\n return l(\n a,\n {\n code: d.invalid_type,\n expected: u.string,\n received: a.parsedType\n }\n //\n ), m;\n }\n const s = new k();\n let n;\n for (const a of this._def.checks)\n if (a.kind === \"min\")\n e.data.length < a.value && (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.too_small,\n minimum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"max\")\n e.data.length > a.value && (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.too_big,\n maximum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !1,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"length\") {\n const i = e.data.length > a.value, o = e.data.length < a.value;\n (i || o) && (n = this._getOrReturnCtx(e, n), i ? l(n, {\n code: d.too_big,\n maximum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: a.message\n }) : o && l(n, {\n code: d.too_small,\n minimum: a.value,\n type: \"string\",\n inclusive: !0,\n exact: !0,\n message: a.message\n }), s.dirty());\n } else if (a.kind === \"email\")\n Ve.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"email\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"emoji\")\n me || (me = new RegExp($e, \"u\")), me.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"emoji\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"uuid\")\n Pe.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"uuid\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"cuid\")\n je.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"cuid\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"cuid2\")\n Ae.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"cuid2\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"ulid\")\n Me.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"ulid\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty());\n else if (a.kind === \"url\")\n try {\n new URL(e.data);\n } catch {\n n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"url\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty();\n }\n else\n a.kind === \"regex\" ? (a.regex.lastIndex = 0, a.regex.test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"regex\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty())) : a.kind === \"trim\" ? e.data = e.data.trim() : a.kind === \"includes\" ? e.data.includes(a.value, a.position) || (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.invalid_string,\n validation: { includes: a.value, position: a.position },\n message: a.message\n }), s.dirty()) : a.kind === \"toLowerCase\" ? e.data = e.data.toLowerCase() : a.kind === \"toUpperCase\" ? e.data = e.data.toUpperCase() : a.kind === \"startsWith\" ? e.data.startsWith(a.value) || (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.invalid_string,\n validation: { startsWith: a.value },\n message: a.message\n }), s.dirty()) : a.kind === \"endsWith\" ? e.data.endsWith(a.value) || (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.invalid_string,\n validation: { endsWith: a.value },\n message: a.message\n }), s.dirty()) : a.kind === \"datetime\" ? ze(a).test(e.data) || (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.invalid_string,\n validation: \"datetime\",\n message: a.message\n }), s.dirty()) : a.kind === \"ip\" ? Ue(e.data, a.version) || (n = this._getOrReturnCtx(e, n), l(n, {\n validation: \"ip\",\n code: d.invalid_string,\n message: a.message\n }), s.dirty()) : g.assertNever(a);\n return { status: s.value, value: e.data };\n }\n _regex(e, t, s) {\n return this.refinement((n) => e.test(n), {\n validation: t,\n code: d.invalid_string,\n ...h.errToObj(s)\n });\n }\n _addCheck(e) {\n return new T({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n email(e) {\n return this._addCheck({ kind: \"email\", ...h.errToObj(e) });\n }\n url(e) {\n return this._addCheck({ kind: \"url\", ...h.errToObj(e) });\n }\n emoji(e) {\n return this._addCheck({ kind: \"emoji\", ...h.errToObj(e) });\n }\n uuid(e) {\n return this._addCheck({ kind: \"uuid\", ...h.errToObj(e) });\n }\n cuid(e) {\n return this._addCheck({ kind: \"cuid\", ...h.errToObj(e) });\n }\n cuid2(e) {\n return this._addCheck({ kind: \"cuid2\", ...h.errToObj(e) });\n }\n ulid(e) {\n return this._addCheck({ kind: \"ulid\", ...h.errToObj(e) });\n }\n ip(e) {\n return this._addCheck({ kind: \"ip\", ...h.errToObj(e) });\n }\n datetime(e) {\n var t;\n return typeof e == \"string\" ? this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: !1,\n message: e\n }) : this._addCheck({\n kind: \"datetime\",\n precision: typeof (e == null ? void 0 : e.precision) > \"u\" ? null : e == null ? void 0 : e.precision,\n offset: (t = e == null ? void 0 : e.offset) !== null && t !== void 0 ? t : !1,\n ...h.errToObj(e == null ? void 0 : e.message)\n });\n }\n regex(e, t) {\n return this._addCheck({\n kind: \"regex\",\n regex: e,\n ...h.errToObj(t)\n });\n }\n includes(e, t) {\n return this._addCheck({\n kind: \"includes\",\n value: e,\n position: t == null ? void 0 : t.position,\n ...h.errToObj(t == null ? void 0 : t.message)\n });\n }\n startsWith(e, t) {\n return this._addCheck({\n kind: \"startsWith\",\n value: e,\n ...h.errToObj(t)\n });\n }\n endsWith(e, t) {\n return this._addCheck({\n kind: \"endsWith\",\n value: e,\n ...h.errToObj(t)\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e,\n ...h.errToObj(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e,\n ...h.errToObj(t)\n });\n }\n length(e, t) {\n return this._addCheck({\n kind: \"length\",\n value: e,\n ...h.errToObj(t)\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(e) {\n return this.min(1, h.errToObj(e));\n }\n trim() {\n return new T({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new T({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new T({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((e) => e.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((e) => e.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((e) => e.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((e) => e.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((e) => e.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((e) => e.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((e) => e.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((e) => e.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((e) => e.kind === \"ip\");\n }\n get minLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxLength() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\nT.create = (r) => {\n var e;\n return new T({\n checks: [],\n typeName: p.ZodString,\n coerce: (e = r == null ? void 0 : r.coerce) !== null && e !== void 0 ? e : !1,\n ...y(r)\n });\n};\nfunction Be(r, e) {\n const t = (r.toString().split(\".\")[1] || \"\").length, s = (e.toString().split(\".\")[1] || \"\").length, n = t > s ? t : s, a = parseInt(r.toFixed(n).replace(\".\", \"\")), i = parseInt(e.toFixed(n).replace(\".\", \"\"));\n return a % i / Math.pow(10, n);\n}\nclass j extends v {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== u.number) {\n const a = this._getOrReturnCtx(e);\n return l(a, {\n code: d.invalid_type,\n expected: u.number,\n received: a.parsedType\n }), m;\n }\n let s;\n const n = new k();\n for (const a of this._def.checks)\n a.kind === \"int\" ? g.isInteger(e.data) || (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: a.message\n }), n.dirty()) : a.kind === \"min\" ? (a.inclusive ? e.data < a.value : e.data <= a.value) && (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.too_small,\n minimum: a.value,\n type: \"number\",\n inclusive: a.inclusive,\n exact: !1,\n message: a.message\n }), n.dirty()) : a.kind === \"max\" ? (a.inclusive ? e.data > a.value : e.data >= a.value) && (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.too_big,\n maximum: a.value,\n type: \"number\",\n inclusive: a.inclusive,\n exact: !1,\n message: a.message\n }), n.dirty()) : a.kind === \"multipleOf\" ? Be(e.data, a.value) !== 0 && (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.not_multiple_of,\n multipleOf: a.value,\n message: a.message\n }), n.dirty()) : a.kind === \"finite\" ? Number.isFinite(e.data) || (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.not_finite,\n message: a.message\n }), n.dirty()) : g.assertNever(a);\n return { status: n.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, h.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, h.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, h.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, h.toString(t));\n }\n setLimit(e, t, s, n) {\n return new j({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: s,\n message: h.toString(n)\n }\n ]\n });\n }\n _addCheck(e) {\n return new j({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n int(e) {\n return this._addCheck({\n kind: \"int\",\n message: h.toString(e)\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !1,\n message: h.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !1,\n message: h.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: !0,\n message: h.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: !0,\n message: h.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: h.toString(t)\n });\n }\n finite(e) {\n return this._addCheck({\n kind: \"finite\",\n message: h.toString(e)\n });\n }\n safe(e) {\n return this._addCheck({\n kind: \"min\",\n inclusive: !0,\n value: Number.MIN_SAFE_INTEGER,\n message: h.toString(e)\n })._addCheck({\n kind: \"max\",\n inclusive: !0,\n value: Number.MAX_SAFE_INTEGER,\n message: h.toString(e)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n get isInt() {\n return !!this._def.checks.find((e) => e.kind === \"int\" || e.kind === \"multipleOf\" && g.isInteger(e.value));\n }\n get isFinite() {\n let e = null, t = null;\n for (const s of this._def.checks) {\n if (s.kind === \"finite\" || s.kind === \"int\" || s.kind === \"multipleOf\")\n return !0;\n s.kind === \"min\" ? (t === null || s.value > t) && (t = s.value) : s.kind === \"max\" && (e === null || s.value < e) && (e = s.value);\n }\n return Number.isFinite(t) && Number.isFinite(e);\n }\n}\nj.create = (r) => new j({\n checks: [],\n typeName: p.ZodNumber,\n coerce: (r == null ? void 0 : r.coerce) || !1,\n ...y(r)\n});\nclass A extends v {\n constructor() {\n super(...arguments), this.min = this.gte, this.max = this.lte;\n }\n _parse(e) {\n if (this._def.coerce && (e.data = BigInt(e.data)), this._getType(e) !== u.bigint) {\n const a = this._getOrReturnCtx(e);\n return l(a, {\n code: d.invalid_type,\n expected: u.bigint,\n received: a.parsedType\n }), m;\n }\n let s;\n const n = new k();\n for (const a of this._def.checks)\n a.kind === \"min\" ? (a.inclusive ? e.data < a.value : e.data <= a.value) && (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.too_small,\n type: \"bigint\",\n minimum: a.value,\n inclusive: a.inclusive,\n message: a.message\n }), n.dirty()) : a.kind === \"max\" ? (a.inclusive ? e.data > a.value : e.data >= a.value) && (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.too_big,\n type: \"bigint\",\n maximum: a.value,\n inclusive: a.inclusive,\n message: a.message\n }), n.dirty()) : a.kind === \"multipleOf\" ? e.data % a.value !== BigInt(0) && (s = this._getOrReturnCtx(e, s), l(s, {\n code: d.not_multiple_of,\n multipleOf: a.value,\n message: a.message\n }), n.dirty()) : g.assertNever(a);\n return { status: n.value, value: e.data };\n }\n gte(e, t) {\n return this.setLimit(\"min\", e, !0, h.toString(t));\n }\n gt(e, t) {\n return this.setLimit(\"min\", e, !1, h.toString(t));\n }\n lte(e, t) {\n return this.setLimit(\"max\", e, !0, h.toString(t));\n }\n lt(e, t) {\n return this.setLimit(\"max\", e, !1, h.toString(t));\n }\n setLimit(e, t, s, n) {\n return new A({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind: e,\n value: t,\n inclusive: s,\n message: h.toString(n)\n }\n ]\n });\n }\n _addCheck(e) {\n return new A({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n positive(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !1,\n message: h.toString(e)\n });\n }\n negative(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !1,\n message: h.toString(e)\n });\n }\n nonpositive(e) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: !0,\n message: h.toString(e)\n });\n }\n nonnegative(e) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: !0,\n message: h.toString(e)\n });\n }\n multipleOf(e, t) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: e,\n message: h.toString(t)\n });\n }\n get minValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e;\n }\n get maxValue() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e;\n }\n}\nA.create = (r) => {\n var e;\n return new A({\n checks: [],\n typeName: p.ZodBigInt,\n coerce: (e = r == null ? void 0 : r.coerce) !== null && e !== void 0 ? e : !1,\n ...y(r)\n });\n};\nclass J extends v {\n _parse(e) {\n if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== u.boolean) {\n const s = this._getOrReturnCtx(e);\n return l(s, {\n code: d.invalid_type,\n expected: u.boolean,\n received: s.parsedType\n }), m;\n }\n return b(e.data);\n }\n}\nJ.create = (r) => new J({\n typeName: p.ZodBoolean,\n coerce: (r == null ? void 0 : r.coerce) || !1,\n ...y(r)\n});\nclass V extends v {\n _parse(e) {\n if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== u.date) {\n const a = this._getOrReturnCtx(e);\n return l(a, {\n code: d.invalid_type,\n expected: u.date,\n received: a.parsedType\n }), m;\n }\n if (isNaN(e.data.getTime())) {\n const a = this._getOrReturnCtx(e);\n return l(a, {\n code: d.invalid_date\n }), m;\n }\n const s = new k();\n let n;\n for (const a of this._def.checks)\n a.kind === \"min\" ? e.data.getTime() < a.value && (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.too_small,\n message: a.message,\n inclusive: !0,\n exact: !1,\n minimum: a.value,\n type: \"date\"\n }), s.dirty()) : a.kind === \"max\" ? e.data.getTime() > a.value && (n = this._getOrReturnCtx(e, n), l(n, {\n code: d.too_big,\n message: a.message,\n inclusive: !0,\n exact: !1,\n maximum: a.value,\n type: \"date\"\n }), s.dirty()) : g.assertNever(a);\n return {\n status: s.value,\n value: new Date(e.data.getTime())\n };\n }\n _addCheck(e) {\n return new V({\n ...this._def,\n checks: [...this._def.checks, e]\n });\n }\n min(e, t) {\n return this._addCheck({\n kind: \"min\",\n value: e.getTime(),\n message: h.toString(t)\n });\n }\n max(e, t) {\n return this._addCheck({\n kind: \"max\",\n value: e.getTime(),\n message: h.toString(t)\n });\n }\n get minDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"min\" && (e === null || t.value > e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n get maxDate() {\n let e = null;\n for (const t of this._def.checks)\n t.kind === \"max\" && (e === null || t.value < e) && (e = t.value);\n return e != null ? new Date(e) : null;\n }\n}\nV.create = (r) => new V({\n checks: [],\n coerce: (r == null ? void 0 : r.coerce) || !1,\n typeName: p.ZodDate,\n ...y(r)\n});\nclass oe extends v {\n _parse(e) {\n if (this._getType(e) !== u.symbol) {\n const s = this._getOrReturnCtx(e);\n return l(s, {\n code: d.invalid_type,\n expected: u.symbol,\n received: s.parsedType\n }), m;\n }\n return b(e.data);\n }\n}\noe.create = (r) => new oe({\n typeName: p.ZodSymbol,\n ...y(r)\n});\nclass Y extends v {\n _parse(e) {\n if (this._getType(e) !== u.undefined) {\n const s = this._getOrReturnCtx(e);\n return l(s, {\n code: d.invalid_type,\n expected: u.undefined,\n received: s.parsedType\n }), m;\n }\n return b(e.data);\n }\n}\nY.create = (r) => new Y({\n typeName: p.ZodUndefined,\n ...y(r)\n});\nclass H extends v {\n _parse(e) {\n if (this._getType(e) !== u.null) {\n const s = this._getOrReturnCtx(e);\n return l(s, {\n code: d.invalid_type,\n expected: u.null,\n received: s.parsedType\n }), m;\n }\n return b(e.data);\n }\n}\nH.create = (r) => new H({\n typeName: p.ZodNull,\n ...y(r)\n});\nclass U extends v {\n constructor() {\n super(...arguments), this._any = !0;\n }\n _parse(e) {\n return b(e.data);\n }\n}\nU.create = (r) => new U({\n typeName: p.ZodAny,\n ...y(r)\n});\nclass P extends v {\n constructor() {\n super(...arguments), this._unknown = !0;\n }\n _parse(e) {\n return b(e.data);\n }\n}\nP.create = (r) => new P({\n typeName: p.ZodUnknown,\n ...y(r)\n});\nclass I extends v {\n _parse(e) {\n const t = this._getOrReturnCtx(e);\n return l(t, {\n code: d.invalid_type,\n expected: u.never,\n received: t.parsedType\n }), m;\n }\n}\nI.create = (r) => new I({\n typeName: p.ZodNever,\n ...y(r)\n});\nclass de extends v {\n _parse(e) {\n if (this._getType(e) !== u.undefined) {\n const s = this._getOrReturnCtx(e);\n return l(s, {\n code: d.invalid_type,\n expected: u.void,\n received: s.parsedType\n }), m;\n }\n return b(e.data);\n }\n}\nde.create = (r) => new de({\n typeName: p.ZodVoid,\n ...y(r)\n});\nclass S extends v {\n _parse(e) {\n const { ctx: t, status: s } = this._processInputParams(e), n = this._def;\n if (t.parsedType !== u.array)\n return l(t, {\n code: d.invalid_type,\n expected: u.array,\n received: t.parsedType\n }), m;\n if (n.exactLength !== null) {\n const i = t.data.length > n.exactLength.value, o = t.data.length < n.exactLength.value;\n (i || o) && (l(t, {\n code: i ? d.too_big : d.too_small,\n minimum: o ? n.exactLength.value : void 0,\n maximum: i ? n.exactLength.value : void 0,\n type: \"array\",\n inclusive: !0,\n exact: !0,\n message: n.exactLength.message\n }), s.dirty());\n }\n if (n.minLength !== null && t.data.length < n.minLength.value && (l(t, {\n code: d.too_small,\n minimum: n.minLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: n.minLength.message\n }), s.dirty()), n.maxLength !== null && t.data.length > n.maxLength.value && (l(t, {\n code: d.too_big,\n maximum: n.maxLength.value,\n type: \"array\",\n inclusive: !0,\n exact: !1,\n message: n.maxLength.message\n }), s.dirty()), t.common.async)\n return Promise.all([...t.data].map((i, o) => n.type._parseAsync(new C(t, i, t.path, o)))).then((i) => k.mergeArray(s, i));\n const a = [...t.data].map((i, o) => n.type._parseSync(new C(t, i, t.path, o)));\n return k.mergeArray(s, a);\n }\n get element() {\n return this._def.type;\n }\n min(e, t) {\n return new S({\n ...this._def,\n minLength: { value: e, message: h.toString(t) }\n });\n }\n max(e, t) {\n return new S({\n ...this._def,\n maxLength: { value: e, message: h.toString(t) }\n });\n }\n length(e, t) {\n return new S({\n ...this._def,\n exactLength: { value: e, message: h.toString(t) }\n });\n }\n nonempty(e) {\n return this.min(1, e);\n }\n}\nS.create = (r, e) => new S({\n type: r,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: p.ZodArray,\n ...y(e)\n});\nfunction D(r) {\n if (r instanceof x) {\n const e = {};\n for (const t in r.shape) {\n const s = r.shape[t];\n e[t] = E.create(D(s));\n }\n return new x({\n ...r._def,\n shape: () => e\n });\n } else\n return r instanceof S ? new S({\n ...r._def,\n type: D(r.element)\n }) : r instanceof E ? E.create(D(r.unwrap())) : r instanceof L ? L.create(D(r.unwrap())) : r instanceof O ? O.create(r.items.map((e) => D(e))) : r;\n}\nclass x extends v {\n constructor() {\n super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const e = this._def.shape(), t = g.objectKeys(e);\n return this._cached = { shape: e, keys: t };\n }\n _parse(e) {\n if (this._getType(e) !== u.object) {\n const c = this._getOrReturnCtx(e);\n return l(c, {\n code: d.invalid_type,\n expected: u.object,\n received: c.parsedType\n }), m;\n }\n const { status: s, ctx: n } = this._processInputParams(e), { shape: a, keys: i } = this._getCached(), o = [];\n if (!(this._def.catchall instanceof I && this._def.unknownKeys === \"strip\"))\n for (const c in n.data)\n i.includes(c) || o.push(c);\n const f = [];\n for (const c of i) {\n const _ = a[c], w = n.data[c];\n f.push({\n key: { status: \"valid\", value: c },\n value: _._parse(new C(n, w, n.path, c)),\n alwaysSet: c in n.data\n });\n }\n if (this._def.catchall instanceof I) {\n const c = this._def.unknownKeys;\n if (c === \"passthrough\")\n for (const _ of o)\n f.push({\n key: { status: \"valid\", value: _ },\n value: { status: \"valid\", value: n.data[_] }\n });\n else if (c === \"strict\")\n o.length > 0 && (l(n, {\n code: d.unrecognized_keys,\n keys: o\n }), s.dirty());\n else if (c !== \"strip\")\n throw new Error(\"Internal ZodObject error: invalid unknownKeys value.\");\n } else {\n const c = this._def.catchall;\n for (const _ of o) {\n const w = n.data[_];\n f.push({\n key: { status: \"valid\", value: _ },\n value: c._parse(\n new C(n, w, n.path, _)\n //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: _ in n.data\n });\n }\n }\n return n.common.async ? Promise.resolve().then(async () => {\n const c = [];\n for (const _ of f) {\n const w = await _.key;\n c.push({\n key: w,\n value: await _.value,\n alwaysSet: _.alwaysSet\n });\n }\n return c;\n }).then((c) => k.mergeObjectSync(s, c)) : k.mergeObjectSync(s, f);\n }\n get shape() {\n return this._def.shape();\n }\n strict(e) {\n return h.errToObj, new x({\n ...this._def,\n unknownKeys: \"strict\",\n ...e !== void 0 ? {\n errorMap: (t, s) => {\n var n, a, i, o;\n const f = (i = (a = (n = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(n, t, s).message) !== null && i !== void 0 ? i : s.defaultError;\n return t.code === \"unrecognized_keys\" ? {\n message: (o = h.errToObj(e).message) !== null && o !== void 0 ? o : f\n } : {\n message: f\n };\n }\n } : {}\n });\n }\n strip() {\n return new x({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new x({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(e) {\n return new x({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...e\n })\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(e) {\n return new x({\n unknownKeys: e._def.unknownKeys,\n catchall: e._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...e._def.shape()\n }),\n typeName: p.ZodObject\n });\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(e, t) {\n return this.augment({ [e]: t });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(e) {\n return new x({\n ...this._def,\n catchall: e\n });\n }\n pick(e) {\n const t = {};\n return g.objectKeys(e).forEach((s) => {\n e[s] && this.shape[s] && (t[s] = this.shape[s]);\n }), new x({\n ...this._def,\n shape: () => t\n });\n }\n omit(e) {\n const t = {};\n return g.objectKeys(this.shape).forEach((s) => {\n e[s] || (t[s] = this.shape[s]);\n }), new x({\n ...this._def,\n shape: () => t\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return D(this);\n }\n partial(e) {\n const t = {};\n return g.objectKeys(this.shape).forEach((s) => {\n const n = this.shape[s];\n e && !e[s] ? t[s] = n : t[s] = n.optional();\n }), new x({\n ...this._def,\n shape: () => t\n });\n }\n required(e) {\n const t = {};\n return g.objectKeys(this.shape).forEach((s) => {\n if (e && !e[s])\n t[s] = this.shape[s];\n else {\n let a = this.shape[s];\n for (; a instanceof E; )\n a = a._def.innerType;\n t[s] = a;\n }\n }), new x({\n ...this._def,\n shape: () => t\n });\n }\n keyof() {\n return Te(g.objectKeys(this.shape));\n }\n}\nx.create = (r, e) => new x({\n shape: () => r,\n unknownKeys: \"strip\",\n catchall: I.create(),\n typeName: p.ZodObject,\n ...y(e)\n});\nx.strictCreate = (r, e) => new x({\n shape: () => r,\n unknownKeys: \"strict\",\n catchall: I.create(),\n typeName: p.ZodObject,\n ...y(e)\n});\nx.lazycreate = (r, e) => new x({\n shape: r,\n unknownKeys: \"strip\",\n catchall: I.create(),\n typeName: p.ZodObject,\n ...y(e)\n});\nclass G extends v {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), s = this._def.options;\n function n(a) {\n for (const o of a)\n if (o.result.status === \"valid\")\n return o.result;\n for (const o of a)\n if (o.result.status === \"dirty\")\n return t.common.issues.push(...o.ctx.common.issues), o.result;\n const i = a.map((o) => new Z(o.ctx.common.issues));\n return l(t, {\n code: d.invalid_union,\n unionErrors: i\n }), m;\n }\n if (t.common.async)\n return Promise.all(s.map(async (a) => {\n const i = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await a._parseAsync({\n data: t.data,\n path: t.path,\n parent: i\n }),\n ctx: i\n };\n })).then(n);\n {\n let a;\n const i = [];\n for (const f of s) {\n const c = {\n ...t,\n common: {\n ...t.common,\n issues: []\n },\n parent: null\n }, _ = f._parseSync({\n data: t.data,\n path: t.path,\n parent: c\n });\n if (_.status === \"valid\")\n return _;\n _.status === \"dirty\" && !a && (a = { result: _, ctx: c }), c.common.issues.length && i.push(c.common.issues);\n }\n if (a)\n return t.common.issues.push(...a.ctx.common.issues), a.result;\n const o = i.map((f) => new Z(f));\n return l(t, {\n code: d.invalid_union,\n unionErrors: o\n }), m;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nG.create = (r, e) => new G({\n options: r,\n typeName: p.ZodUnion,\n ...y(e)\n});\nconst se = (r) => r instanceof K ? se(r.schema) : r instanceof N ? se(r.innerType()) : r instanceof F ? [r.value] : r instanceof M ? r.options : r instanceof ee ? Object.keys(r.enum) : r instanceof te ? se(r._def.innerType) : r instanceof Y ? [void 0] : r instanceof H ? [null] : null;\nclass he extends v {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== u.object)\n return l(t, {\n code: d.invalid_type,\n expected: u.object,\n received: t.parsedType\n }), m;\n const s = this.discriminator, n = t.data[s], a = this.optionsMap.get(n);\n return a ? t.common.async ? a._parseAsync({\n data: t.data,\n path: t.path,\n parent: t\n }) : a._parseSync({\n data: t.data,\n path: t.path,\n parent: t\n }) : (l(t, {\n code: d.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [s]\n }), m);\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(e, t, s) {\n const n = /* @__PURE__ */ new Map();\n for (const a of t) {\n const i = se(a.shape[e]);\n if (!i)\n throw new Error(`A discriminator value for key \\`${e}\\` could not be extracted from all schema options`);\n for (const o of i) {\n if (n.has(o))\n throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);\n n.set(o, a);\n }\n }\n return new he({\n typeName: p.ZodDiscriminatedUnion,\n discriminator: e,\n options: t,\n optionsMap: n,\n ...y(s)\n });\n }\n}\nfunction ge(r, e) {\n const t = R(r), s = R(e);\n if (r === e)\n return { valid: !0, data: r };\n if (t === u.object && s === u.object) {\n const n = g.objectKeys(e), a = g.objectKeys(r).filter((o) => n.indexOf(o) !== -1), i = { ...r, ...e };\n for (const o of a) {\n const f = ge(r[o], e[o]);\n if (!f.valid)\n return { valid: !1 };\n i[o] = f.data;\n }\n return { valid: !0, data: i };\n } else if (t === u.array && s === u.array) {\n if (r.length !== e.length)\n return { valid: !1 };\n const n = [];\n for (let a = 0; a < r.length; a++) {\n const i = r[a], o = e[a], f = ge(i, o);\n if (!f.valid)\n return { valid: !1 };\n n.push(f.data);\n }\n return { valid: !0, data: n };\n } else\n return t === u.date && s === u.date && +r == +e ? { valid: !0, data: r } : { valid: !1 };\n}\nclass X extends v {\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e), n = (a, i) => {\n if (ve(a) || ve(i))\n return m;\n const o = ge(a.value, i.value);\n return o.valid ? ((_e(a) || _e(i)) && t.dirty(), { status: t.value, value: o.data }) : (l(s, {\n code: d.invalid_intersection_types\n }), m);\n };\n return s.common.async ? Promise.all([\n this._def.left._parseAsync({\n data: s.data,\n path: s.path,\n parent: s\n }),\n this._def.right._parseAsync({\n data: s.data,\n path: s.path,\n parent: s\n })\n ]).then(([a, i]) => n(a, i)) : n(this._def.left._parseSync({\n data: s.data,\n path: s.path,\n parent: s\n }), this._def.right._parseSync({\n data: s.data,\n path: s.path,\n parent: s\n }));\n }\n}\nX.create = (r, e, t) => new X({\n left: r,\n right: e,\n typeName: p.ZodIntersection,\n ...y(t)\n});\nclass O extends v {\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e);\n if (s.parsedType !== u.array)\n return l(s, {\n code: d.invalid_type,\n expected: u.array,\n received: s.parsedType\n }), m;\n if (s.data.length < this._def.items.length)\n return l(s, {\n code: d.too_small,\n minimum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), m;\n !this._def.rest && s.data.length > this._def.items.length && (l(s, {\n code: d.too_big,\n maximum: this._def.items.length,\n inclusive: !0,\n exact: !1,\n type: \"array\"\n }), t.dirty());\n const a = [...s.data].map((i, o) => {\n const f = this._def.items[o] || this._def.rest;\n return f ? f._parse(new C(s, i, s.path, o)) : null;\n }).filter((i) => !!i);\n return s.common.async ? Promise.all(a).then((i) => k.mergeArray(t, i)) : k.mergeArray(t, a);\n }\n get items() {\n return this._def.items;\n }\n rest(e) {\n return new O({\n ...this._def,\n rest: e\n });\n }\n}\nO.create = (r, e) => {\n if (!Array.isArray(r))\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n return new O({\n items: r,\n typeName: p.ZodTuple,\n rest: null,\n ...y(e)\n });\n};\nclass Q extends v {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e);\n if (s.parsedType !== u.object)\n return l(s, {\n code: d.invalid_type,\n expected: u.object,\n received: s.parsedType\n }), m;\n const n = [], a = this._def.keyType, i = this._def.valueType;\n for (const o in s.data)\n n.push({\n key: a._parse(new C(s, o, s.path, o)),\n value: i._parse(new C(s, s.data[o], s.path, o))\n });\n return s.common.async ? k.mergeObjectAsync(t, n) : k.mergeObjectSync(t, n);\n }\n get element() {\n return this._def.valueType;\n }\n static create(e, t, s) {\n return t instanceof v ? new Q({\n keyType: e,\n valueType: t,\n typeName: p.ZodRecord,\n ...y(s)\n }) : new Q({\n keyType: T.create(),\n valueType: e,\n typeName: p.ZodRecord,\n ...y(t)\n });\n }\n}\nclass ce extends v {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e);\n if (s.parsedType !== u.map)\n return l(s, {\n code: d.invalid_type,\n expected: u.map,\n received: s.parsedType\n }), m;\n const n = this._def.keyType, a = this._def.valueType, i = [...s.data.entries()].map(([o, f], c) => ({\n key: n._parse(new C(s, o, s.path, [c, \"key\"])),\n value: a._parse(new C(s, f, s.path, [c, \"value\"]))\n }));\n if (s.common.async) {\n const o = /* @__PURE__ */ new Map();\n return Promise.resolve().then(async () => {\n for (const f of i) {\n const c = await f.key, _ = await f.value;\n if (c.status === \"aborted\" || _.status === \"aborted\")\n return m;\n (c.status === \"dirty\" || _.status === \"dirty\") && t.dirty(), o.set(c.value, _.value);\n }\n return { status: t.value, value: o };\n });\n } else {\n const o = /* @__PURE__ */ new Map();\n for (const f of i) {\n const c = f.key, _ = f.value;\n if (c.status === \"aborted\" || _.status === \"aborted\")\n return m;\n (c.status === \"dirty\" || _.status === \"dirty\") && t.dirty(), o.set(c.value, _.value);\n }\n return { status: t.value, value: o };\n }\n }\n}\nce.create = (r, e, t) => new ce({\n valueType: e,\n keyType: r,\n typeName: p.ZodMap,\n ...y(t)\n});\nclass $ extends v {\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e);\n if (s.parsedType !== u.set)\n return l(s, {\n code: d.invalid_type,\n expected: u.set,\n received: s.parsedType\n }), m;\n const n = this._def;\n n.minSize !== null && s.data.size < n.minSize.value && (l(s, {\n code: d.too_small,\n minimum: n.minSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: n.minSize.message\n }), t.dirty()), n.maxSize !== null && s.data.size > n.maxSize.value && (l(s, {\n code: d.too_big,\n maximum: n.maxSize.value,\n type: \"set\",\n inclusive: !0,\n exact: !1,\n message: n.maxSize.message\n }), t.dirty());\n const a = this._def.valueType;\n function i(f) {\n const c = /* @__PURE__ */ new Set();\n for (const _ of f) {\n if (_.status === \"aborted\")\n return m;\n _.status === \"dirty\" && t.dirty(), c.add(_.value);\n }\n return { status: t.value, value: c };\n }\n const o = [...s.data.values()].map((f, c) => a._parse(new C(s, f, s.path, c)));\n return s.common.async ? Promise.all(o).then((f) => i(f)) : i(o);\n }\n min(e, t) {\n return new $({\n ...this._def,\n minSize: { value: e, message: h.toString(t) }\n });\n }\n max(e, t) {\n return new $({\n ...this._def,\n maxSize: { value: e, message: h.toString(t) }\n });\n }\n size(e, t) {\n return this.min(e, t).max(e, t);\n }\n nonempty(e) {\n return this.min(1, e);\n }\n}\n$.create = (r, e) => new $({\n valueType: r,\n minSize: null,\n maxSize: null,\n typeName: p.ZodSet,\n ...y(e)\n});\nclass z extends v {\n constructor() {\n super(...arguments), this.validate = this.implement;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== u.function)\n return l(t, {\n code: d.invalid_type,\n expected: u.function,\n received: t.parsedType\n }), m;\n function s(o, f) {\n return ae({\n data: o,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n ne(),\n W\n ].filter((c) => !!c),\n issueData: {\n code: d.invalid_arguments,\n argumentsError: f\n }\n });\n }\n function n(o, f) {\n return ae({\n data: o,\n path: t.path,\n errorMaps: [\n t.common.contextualErrorMap,\n t.schemaErrorMap,\n ne(),\n W\n ].filter((c) => !!c),\n issueData: {\n code: d.invalid_return_type,\n returnTypeError: f\n }\n });\n }\n const a = { errorMap: t.common.contextualErrorMap }, i = t.data;\n if (this._def.returns instanceof B) {\n const o = this;\n return b(async function(...f) {\n const c = new Z([]), _ = await o._def.args.parseAsync(f, a).catch((pe) => {\n throw c.addIssue(s(f, pe)), c;\n }), w = await Reflect.apply(i, this, _);\n return await o._def.returns._def.type.parseAsync(w, a).catch((pe) => {\n throw c.addIssue(n(w, pe)), c;\n });\n });\n } else {\n const o = this;\n return b(function(...f) {\n const c = o._def.args.safeParse(f, a);\n if (!c.success)\n throw new Z([s(f, c.error)]);\n const _ = Reflect.apply(i, this, c.data), w = o._def.returns.safeParse(_, a);\n if (!w.success)\n throw new Z([n(_, w.error)]);\n return w.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...e) {\n return new z({\n ...this._def,\n args: O.create(e).rest(P.create())\n });\n }\n returns(e) {\n return new z({\n ...this._def,\n returns: e\n });\n }\n implement(e) {\n return this.parse(e);\n }\n strictImplement(e) {\n return this.parse(e);\n }\n static create(e, t, s) {\n return new z({\n args: e || O.create([]).rest(P.create()),\n returns: t || P.create(),\n typeName: p.ZodFunction,\n ...y(s)\n });\n }\n}\nclass K extends v {\n get schema() {\n return this._def.getter();\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n return this._def.getter()._parse({ data: t.data, path: t.path, parent: t });\n }\n}\nK.create = (r, e) => new K({\n getter: r,\n typeName: p.ZodLazy,\n ...y(e)\n});\nclass F extends v {\n _parse(e) {\n if (e.data !== this._def.value) {\n const t = this._getOrReturnCtx(e);\n return l(t, {\n received: t.data,\n code: d.invalid_literal,\n expected: this._def.value\n }), m;\n }\n return { status: \"valid\", value: e.data };\n }\n get value() {\n return this._def.value;\n }\n}\nF.create = (r, e) => new F({\n value: r,\n typeName: p.ZodLiteral,\n ...y(e)\n});\nfunction Te(r, e) {\n return new M({\n values: r,\n typeName: p.ZodEnum,\n ...y(e)\n });\n}\nclass M extends v {\n _parse(e) {\n if (typeof e.data != \"string\") {\n const t = this._getOrReturnCtx(e), s = this._def.values;\n return l(t, {\n expected: g.joinValues(s),\n received: t.parsedType,\n code: d.invalid_type\n }), m;\n }\n if (this._def.values.indexOf(e.data) === -1) {\n const t = this._getOrReturnCtx(e), s = this._def.values;\n return l(t, {\n received: t.data,\n code: d.invalid_enum_value,\n options: s\n }), m;\n }\n return b(e.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Values() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n get Enum() {\n const e = {};\n for (const t of this._def.values)\n e[t] = t;\n return e;\n }\n extract(e) {\n return M.create(e);\n }\n exclude(e) {\n return M.create(this.options.filter((t) => !e.includes(t)));\n }\n}\nM.create = Te;\nclass ee extends v {\n _parse(e) {\n const t = g.getValidEnumValues(this._def.values), s = this._getOrReturnCtx(e);\n if (s.parsedType !== u.string && s.parsedType !== u.number) {\n const n = g.objectValues(t);\n return l(s, {\n expected: g.joinValues(n),\n received: s.parsedType,\n code: d.invalid_type\n }), m;\n }\n if (t.indexOf(e.data) === -1) {\n const n = g.objectValues(t);\n return l(s, {\n received: s.data,\n code: d.invalid_enum_value,\n options: n\n }), m;\n }\n return b(e.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nee.create = (r, e) => new ee({\n values: r,\n typeName: p.ZodNativeEnum,\n ...y(e)\n});\nclass B extends v {\n unwrap() {\n return this._def.type;\n }\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n if (t.parsedType !== u.promise && t.common.async === !1)\n return l(t, {\n code: d.invalid_type,\n expected: u.promise,\n received: t.parsedType\n }), m;\n const s = t.parsedType === u.promise ? t.data : Promise.resolve(t.data);\n return b(s.then((n) => this._def.type.parseAsync(n, {\n path: t.path,\n errorMap: t.common.contextualErrorMap\n })));\n }\n}\nB.create = (r, e) => new B({\n type: r,\n typeName: p.ZodPromise,\n ...y(e)\n});\nclass N extends v {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === p.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e), n = this._def.effect || null, a = {\n addIssue: (i) => {\n l(s, i), i.fatal ? t.abort() : t.dirty();\n },\n get path() {\n return s.path;\n }\n };\n if (a.addIssue = a.addIssue.bind(a), n.type === \"preprocess\") {\n const i = n.transform(s.data, a);\n return s.common.issues.length ? {\n status: \"dirty\",\n value: s.data\n } : s.common.async ? Promise.resolve(i).then((o) => this._def.schema._parseAsync({\n data: o,\n path: s.path,\n parent: s\n })) : this._def.schema._parseSync({\n data: i,\n path: s.path,\n parent: s\n });\n }\n if (n.type === \"refinement\") {\n const i = (o) => {\n const f = n.refinement(o, a);\n if (s.common.async)\n return Promise.resolve(f);\n if (f instanceof Promise)\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n return o;\n };\n if (s.common.async === !1) {\n const o = this._def.schema._parseSync({\n data: s.data,\n path: s.path,\n parent: s\n });\n return o.status === \"aborted\" ? m : (o.status === \"dirty\" && t.dirty(), i(o.value), { status: t.value, value: o.value });\n } else\n return this._def.schema._parseAsync({ data: s.data, path: s.path, parent: s }).then((o) => o.status === \"aborted\" ? m : (o.status === \"dirty\" && t.dirty(), i(o.value).then(() => ({ status: t.value, value: o.value }))));\n }\n if (n.type === \"transform\")\n if (s.common.async === !1) {\n const i = this._def.schema._parseSync({\n data: s.data,\n path: s.path,\n parent: s\n });\n if (!q(i))\n return i;\n const o = n.transform(i.value, a);\n if (o instanceof Promise)\n throw new Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");\n return { status: t.value, value: o };\n } else\n return this._def.schema._parseAsync({ data: s.data, path: s.path, parent: s }).then((i) => q(i) ? Promise.resolve(n.transform(i.value, a)).then((o) => ({ status: t.value, value: o })) : i);\n g.assertNever(n);\n }\n}\nN.create = (r, e, t) => new N({\n schema: r,\n typeName: p.ZodEffects,\n effect: e,\n ...y(t)\n});\nN.createWithPreprocess = (r, e, t) => new N({\n schema: e,\n effect: { type: \"preprocess\", transform: r },\n typeName: p.ZodEffects,\n ...y(t)\n});\nclass E extends v {\n _parse(e) {\n return this._getType(e) === u.undefined ? b(void 0) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nE.create = (r, e) => new E({\n innerType: r,\n typeName: p.ZodOptional,\n ...y(e)\n});\nclass L extends v {\n _parse(e) {\n return this._getType(e) === u.null ? b(null) : this._def.innerType._parse(e);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nL.create = (r, e) => new L({\n innerType: r,\n typeName: p.ZodNullable,\n ...y(e)\n});\nclass te extends v {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e);\n let s = t.data;\n return t.parsedType === u.undefined && (s = this._def.defaultValue()), this._def.innerType._parse({\n data: s,\n path: t.path,\n parent: t\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nte.create = (r, e) => new te({\n innerType: r,\n typeName: p.ZodDefault,\n defaultValue: typeof e.default == \"function\" ? e.default : () => e.default,\n ...y(e)\n});\nclass ue extends v {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), s = {\n ...t,\n common: {\n ...t.common,\n issues: []\n }\n }, n = this._def.innerType._parse({\n data: s.data,\n path: s.path,\n parent: {\n ...s\n }\n });\n return ie(n) ? n.then((a) => ({\n status: \"valid\",\n value: a.status === \"valid\" ? a.value : this._def.catchValue({\n get error() {\n return new Z(s.common.issues);\n },\n input: s.data\n })\n })) : {\n status: \"valid\",\n value: n.status === \"valid\" ? n.value : this._def.catchValue({\n get error() {\n return new Z(s.common.issues);\n },\n input: s.data\n })\n };\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nue.create = (r, e) => new ue({\n innerType: r,\n typeName: p.ZodCatch,\n catchValue: typeof e.catch == \"function\" ? e.catch : () => e.catch,\n ...y(e)\n});\nclass le extends v {\n _parse(e) {\n if (this._getType(e) !== u.nan) {\n const s = this._getOrReturnCtx(e);\n return l(s, {\n code: d.invalid_type,\n expected: u.nan,\n received: s.parsedType\n }), m;\n }\n return { status: \"valid\", value: e.data };\n }\n}\nle.create = (r) => new le({\n typeName: p.ZodNaN,\n ...y(r)\n});\nconst We = Symbol(\"zod_brand\");\nclass Ze extends v {\n _parse(e) {\n const { ctx: t } = this._processInputParams(e), s = t.data;\n return this._def.type._parse({\n data: s,\n path: t.path,\n parent: t\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass re extends v {\n _parse(e) {\n const { status: t, ctx: s } = this._processInputParams(e);\n if (s.common.async)\n return (async () => {\n const a = await this._def.in._parseAsync({\n data: s.data,\n path: s.path,\n parent: s\n });\n return a.status === \"aborted\" ? m : a.status === \"dirty\" ? (t.dirty(), we(a.value)) : this._def.out._parseAsync({\n data: a.value,\n path: s.path,\n parent: s\n });\n })();\n {\n const n = this._def.in._parseSync({\n data: s.data,\n path: s.path,\n parent: s\n });\n return n.status === \"aborted\" ? m : n.status === \"dirty\" ? (t.dirty(), {\n status: \"dirty\",\n value: n.value\n }) : this._def.out._parseSync({\n data: n.value,\n path: s.path,\n parent: s\n });\n }\n }\n static create(e, t) {\n return new re({\n in: e,\n out: t,\n typeName: p.ZodPipeline\n });\n }\n}\nclass fe extends v {\n _parse(e) {\n const t = this._def.innerType._parse(e);\n return q(t) && (t.value = Object.freeze(t.value)), t;\n }\n}\nfe.create = (r, e) => new fe({\n innerType: r,\n typeName: p.ZodReadonly,\n ...y(e)\n});\nconst Se = (r, e = {}, t) => r ? U.create().superRefine((s, n) => {\n var a, i;\n if (!r(s)) {\n const o = typeof e == \"function\" ? e(s) : typeof e == \"string\" ? { message: e } : e, f = (i = (a = o.fatal) !== null && a !== void 0 ? a : t) !== null && i !== void 0 ? i : !0, c = typeof o == \"string\" ? { message: o } : o;\n n.addIssue({ code: \"custom\", ...c, fatal: f });\n }\n}) : U.create(), qe = {\n object: x.lazycreate\n};\nvar p;\n(function(r) {\n r.ZodString = \"ZodString\", r.ZodNumber = \"ZodNumber\", r.ZodNaN = \"ZodNaN\", r.ZodBigInt = \"ZodBigInt\", r.ZodBoolean = \"ZodBoolean\", r.ZodDate = \"ZodDate\", r.ZodSymbol = \"ZodSymbol\", r.ZodUndefined = \"ZodUndefined\", r.ZodNull = \"ZodNull\", r.ZodAny = \"ZodAny\", r.ZodUnknown = \"ZodUnknown\", r.ZodNever = \"ZodNever\", r.ZodVoid = \"ZodVoid\", r.ZodArray = \"ZodArray\", r.ZodObject = \"ZodObject\", r.ZodUnion = \"ZodUnion\", r.ZodDiscriminatedUnion = \"ZodDiscriminatedUnion\", r.ZodIntersection = \"ZodIntersection\", r.ZodTuple = \"ZodTuple\", r.ZodRecord = \"ZodRecord\", r.ZodMap = \"ZodMap\", r.ZodSet = \"ZodSet\", r.ZodFunction = \"ZodFunction\", r.ZodLazy = \"ZodLazy\", r.ZodLiteral = \"ZodLiteral\", r.ZodEnum = \"ZodEnum\", r.ZodEffects = \"ZodEffects\", r.ZodNativeEnum = \"ZodNativeEnum\", r.ZodOptional = \"ZodOptional\", r.ZodNullable = \"ZodNullable\", r.ZodDefault = \"ZodDefault\", r.ZodCatch = \"ZodCatch\", r.ZodPromise = \"ZodPromise\", r.ZodBranded = \"ZodBranded\", r.ZodPipeline = \"ZodPipeline\", r.ZodReadonly = \"ZodReadonly\";\n})(p || (p = {}));\nconst Je = (r, e = {\n message: `Input not instance of ${r.name}`\n}) => Se((t) => t instanceof r, e), Ne = T.create, Ce = j.create, Ye = le.create, He = A.create, Oe = J.create, Ge = V.create, Xe = oe.create, Qe = Y.create, Ke = H.create, Fe = U.create, et = P.create, tt = I.create, rt = de.create, st = S.create, nt = x.create, at = x.strictCreate, it = G.create, ot = he.create, dt = X.create, ct = O.create, ut = Q.create, lt = ce.create, ft = $.create, ht = z.create, pt = K.create, mt = F.create, yt = M.create, vt = ee.create, _t = B.create, ke = N.create, gt = E.create, xt = L.create, kt = N.createWithPreprocess, bt = re.create, wt = () => Ne().optional(), Tt = () => Ce().optional(), Zt = () => Oe().optional(), St = {\n string: (r) => T.create({ ...r, coerce: !0 }),\n number: (r) => j.create({ ...r, coerce: !0 }),\n boolean: (r) => J.create({\n ...r,\n coerce: !0\n }),\n bigint: (r) => A.create({ ...r, coerce: !0 }),\n date: (r) => V.create({ ...r, coerce: !0 })\n}, Nt = m;\nvar Ot = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n defaultErrorMap: W,\n setErrorMap: Ie,\n getErrorMap: ne,\n makeIssue: ae,\n EMPTY_PATH: Re,\n addIssueToContext: l,\n ParseStatus: k,\n INVALID: m,\n DIRTY: we,\n OK: b,\n isAborted: ve,\n isDirty: _e,\n isValid: q,\n isAsync: ie,\n get util() {\n return g;\n },\n get objectUtil() {\n return ye;\n },\n ZodParsedType: u,\n getParsedType: R,\n ZodType: v,\n ZodString: T,\n ZodNumber: j,\n ZodBigInt: A,\n ZodBoolean: J,\n ZodDate: V,\n ZodSymbol: oe,\n ZodUndefined: Y,\n ZodNull: H,\n ZodAny: U,\n ZodUnknown: P,\n ZodNever: I,\n ZodVoid: de,\n ZodArray: S,\n ZodObject: x,\n ZodUnion: G,\n ZodDiscriminatedUnion: he,\n ZodIntersection: X,\n ZodTuple: O,\n ZodRecord: Q,\n ZodMap: ce,\n ZodSet: $,\n ZodFunction: z,\n ZodLazy: K,\n ZodLiteral: F,\n ZodEnum: M,\n ZodNativeEnum: ee,\n ZodPromise: B,\n ZodEffects: N,\n ZodTransformer: N,\n ZodOptional: E,\n ZodNullable: L,\n ZodDefault: te,\n ZodCatch: ue,\n ZodNaN: le,\n BRAND: We,\n ZodBranded: Ze,\n ZodPipeline: re,\n ZodReadonly: fe,\n custom: Se,\n Schema: v,\n ZodSchema: v,\n late: qe,\n get ZodFirstPartyTypeKind() {\n return p;\n },\n coerce: St,\n any: Fe,\n array: st,\n bigint: He,\n boolean: Oe,\n date: Ge,\n discriminatedUnion: ot,\n effect: ke,\n enum: yt,\n function: ht,\n instanceof: Je,\n intersection: dt,\n lazy: pt,\n literal: mt,\n map: lt,\n nan: Ye,\n nativeEnum: vt,\n never: tt,\n null: Ke,\n nullable: xt,\n number: Ce,\n object: nt,\n oboolean: Zt,\n onumber: Tt,\n optional: gt,\n ostring: wt,\n pipeline: bt,\n preprocess: kt,\n promise: _t,\n record: ut,\n set: ft,\n strictObject: at,\n string: Ne,\n symbol: Xe,\n transformer: ke,\n tuple: ct,\n undefined: Qe,\n union: it,\n unknown: et,\n void: rt,\n NEVER: Nt,\n ZodIssueCode: d,\n quotelessJson: Ee,\n ZodError: Z\n});\nexport {\n Ot as z\n};\n//# sourceMappingURL=index-DGl1HeGK.js.map\n","import { z as n } from \"./index-DGl1HeGK.js\";\nconst t = n.tuple([n.number(), n.number()]);\nn.tuple([n.bigint(), n.bigint()]);\nconst S = n.object({ width: n.number(), height: n.number() }), h = n.object({\n signedWidth: n.number(),\n signedHeight: n.number()\n}), i = [\"width\", \"height\"];\nn.enum(i);\nconst u = [\"start\", \"center\", \"end\"], r = [\"signedWidth\", \"signedHeight\"];\nn.enum(r);\nconst I = n.object({ x: n.number(), y: n.number() }), p = n.object({ clientX: n.number(), clientY: n.number() }), a = [\"x\", \"y\"], o = n.enum(a), e = [\"top\", \"right\", \"bottom\", \"left\"], L = n.enum(e), m = [\"left\", \"right\"], C = n.enum(m), b = [\"top\", \"bottom\"], E = n.enum(b), s = [\"center\"], T = n.enum(s), g = [...e, ...s], c = n.enum(g), D = n.enum(u), d = [\"first\", \"last\"], A = n.enum(d), O = n.object({ lower: n.number(), upper: n.number() }), l = n.object({ lower: n.bigint(), upper: n.bigint() });\nn.union([O, t]);\nn.union([l, t]);\nconst f = n.union([o, c]), j = n.union([o, c, n.instanceof(String)]);\nexport {\n u as A,\n s as C,\n a as D,\n d as O,\n m as X,\n b as Y,\n C as a,\n O as b,\n f as c,\n S as d,\n T as e,\n j as f,\n p as g,\n D as h,\n A as i,\n c as l,\n t as n,\n L as o,\n h as s,\n I as x,\n E as y\n};\n//# sourceMappingURL=base-BFiX58sV.js.map\n","import { b as _ } from \"./base-BFiX58sV.js\";\nconst w = (e, r) => typeof e == \"bigint\" ? e - BigInt(r) : e - Number(r), a = (e, r) => typeof e == \"bigint\" ? e + BigInt(r) : e + Number(r), x = (e, r, n = 1e-4) => Math.abs(e - r) < n, Z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n add: a,\n closeTo: x,\n sub: w\n}, Symbol.toStringTag, { value: \"Module\" })), i = (e, r) => {\n const n = {};\n if (typeof e == \"number\" || typeof e == \"bigint\")\n r != null ? (n.lower = e, n.upper = r) : (n.lower = typeof e == \"bigint\" ? 0n : 0, n.upper = e);\n else if (Array.isArray(e)) {\n if (e.length !== 2)\n throw new Error(\"bounds: expected array of length 2\");\n [n.lower, n.upper] = e;\n } else\n return f(e);\n return f(n);\n}, g = Object.freeze({ lower: 0, upper: 0 }), h = Object.freeze({ lower: -1 / 0, upper: 1 / 0 }), B = Object.freeze({ lower: 0, upper: 1 }), v = Object.freeze({ lower: -1, upper: 1 }), A = (e, r) => {\n if (e == null && r == null)\n return !0;\n if (e == null || r == null)\n return !1;\n const n = i(e), t = i(r);\n return (n == null ? void 0 : n.lower) === (t == null ? void 0 : t.lower) && (n == null ? void 0 : n.upper) === (t == null ? void 0 : t.upper);\n}, f = (e) => e.lower > e.upper ? { lower: e.upper, upper: e.lower } : e, N = (e, r) => {\n const n = i(e);\n return r < n.lower ? n.lower : r >= n.upper ? n.upper - (typeof n.upper == \"number\" ? 1 : 1n) : r;\n}, u = (e, r) => {\n const n = i(e);\n if (typeof r == \"number\" || typeof r == \"bigint\")\n return r >= n.lower && r < n.upper;\n const t = i(r);\n return t.lower >= n.lower && t.upper <= n.upper;\n}, O = (e, r) => {\n const n = i(e), t = i(r);\n return n.lower === t.lower ? !0 : t.upper === n.lower || t.lower === n.upper ? !1 : u(n, t.upper) || u(n, t.lower) || u(t, n.upper) || u(t, n.lower);\n}, l = (e) => {\n const r = i(e);\n return r.upper - r.lower;\n}, j = (e) => {\n const r = i(e);\n return typeof r.lower == \"bigint\" ? r.lower === 0n && r.upper === 0n : r.lower === 0 && r.upper === 0;\n}, M = (e) => l(e) === 0, z = (e) => {\n const r = i(e);\n return Number.isFinite(r.lower) && Number.isFinite(r.upper);\n}, P = (e) => ({\n lower: Math.min(...e.map((r) => i(r).lower)),\n upper: Math.max(...e.map((r) => i(r).upper))\n}), E = (e) => ({\n lower: Math.max(...e.map((r) => i(r).lower)),\n upper: Math.min(...e.map((r) => i(r).upper))\n}), F = (e) => {\n const r = i(e), n = typeof r.lower == \"bigint\";\n return Array.from({ length: Number(l(e)) }, (t, o) => n ? r.lower + BigInt(o) : r.lower + o);\n}, m = (e, r) => {\n const n = e.map((p) => i(p)), t = n.findIndex(\n (p, s) => u(p, r) || r < n[s].lower\n );\n if (t === -1)\n return { index: e.length, position: 0 };\n const o = n[t];\n return u(o, r) ? { index: t, position: Number(r - o.lower) } : { index: t, position: 0 };\n}, c = {\n removeBefore: 0,\n removeAfter: 0,\n insertInto: 0,\n deleteInBetween: 0\n}, I = (e, r) => {\n const n = e.map((y) => i(y)), t = i(r);\n if (n.length === 0)\n return c;\n const o = m(n, t.lower), p = m(n, t.upper);\n if (o.index === e.length)\n return { ...c, insertInto: e.length };\n if (p.index === 0)\n return { ...c, removeAfter: p.position };\n if (o.index === p.index)\n return o.position !== 0 && p.position !== 0 ? null : {\n removeAfter: p.position,\n removeBefore: o.position,\n insertInto: o.index,\n deleteInBetween: 0\n };\n let s = p.index - o.index, b = o.index, d = w(Number(l(n[o.index])), o.position);\n return o.position !== 0 ? (s -= 1, b += 1) : d = 0, {\n removeBefore: d,\n removeAfter: p.position,\n insertInto: b,\n deleteInBetween: s\n };\n}, S = (e, r) => {\n const n = I(e, r), t = e.map((p) => i(p));\n if (n == null)\n return t;\n const o = i(r);\n return o.lower = a(o.lower, n.removeBefore), o.upper = w(o.upper, n.removeAfter), t.splice(n.insertInto, n.deleteInBetween, o), t;\n}, L = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n CLIP: v,\n DECIMAL: B,\n INFINITE: h,\n ZERO: g,\n bounds: _,\n buildInsertionPlan: I,\n clamp: N,\n construct: i,\n contains: u,\n equals: A,\n findInsertPosition: m,\n insert: S,\n isFinite: z,\n isZero: j,\n linspace: F,\n makeValid: f,\n max: P,\n min: E,\n overlapsWith: O,\n span: l,\n spanIsZero: M\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n L as b,\n i as c,\n Z as m\n};\n//# sourceMappingURL=index-j0nI5Ulm.js.map\n","import { z as O } from \"./index-DGl1HeGK.js\";\nimport { b as m } from \"./index-GKyuv4Un.js\";\nimport { a as f, e as x, y as a, f as C, D as g, C as z, X as L, Y as S, l as d, o as h } from \"./base-BFiX58sV.js\";\nconst N = f, R = a, I = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n center: \"center\"\n}, X = {\n top: \"left\",\n right: \"top\",\n bottom: \"right\",\n left: \"bottom\",\n center: \"center\"\n}, Y = C, c = (t) => t instanceof String ? t : g.includes(t) ? t === \"x\" ? \"left\" : \"top\" : t, A = (t) => I[c(t)], P = (t) => X[c(t)], s = (t) => {\n const o = c(t);\n return o === \"top\" || o === \"bottom\" ? \"y\" : \"x\";\n}, k = O.object({\n x: f.or(x),\n y: a.or(x)\n}), w = O.object({ x: f, y: a }), T = Object.freeze({ x: \"left\", y: \"top\" }), l = Object.freeze({ x: \"right\", y: \"top\" }), b = Object.freeze({ x: \"left\", y: \"bottom\" }), u = Object.freeze({ x: \"right\", y: \"bottom\" }), y = Object.freeze({ x: \"center\", y: \"center\" }), p = Object.freeze({ x: \"center\", y: \"top\" }), _ = Object.freeze({ x: \"center\", y: \"bottom\" }), E = Object.freeze({ x: \"right\", y: \"center\" }), j = Object.freeze({ x: \"left\", y: \"center\" }), M = Object.freeze([\n j,\n E,\n p,\n _,\n T,\n l,\n b,\n u,\n y\n]), $ = (t, o) => t.x === o.x && t.y === o.y, B = (t, o) => {\n if (typeof o == \"object\") {\n let e = !0;\n return \"x\" in o && (t.x === o.x || (e = !1)), \"y\" in o && (t.y === o.y || (e = !1)), e;\n }\n return t.x === o || t.y === o;\n}, D = (t) => [t.x, t.y], i = (t) => s(c(t)) === \"x\", F = (t) => s(c(t)) === \"y\", G = (t) => `${t.x}${m(t.y)}`, H = (t, o) => {\n let e, n;\n if (typeof t == \"object\" && \"x\" in t ? (e = t.x, n = t.y) : (e = c(t), n = c(o ?? t)), s(e) === s(n) && e !== \"center\" && n !== \"center\")\n throw new Error(\n `[XYLocation] - encountered two locations with the same direction: ${e.toString()} - ${n.toString()}`\n );\n const r = { ...y };\n return e === \"center\" ? i(n) ? [r.x, r.y] = [n, e] : [r.x, r.y] = [e, n] : n === \"center\" ? i(e) ? [r.x, r.y] = [e, n] : [r.x, r.y] = [n, e] : i(e) ? [r.x, r.y] = [e, n] : [r.x, r.y] = [n, e], r;\n}, J = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n BOTTOM_CENTER: _,\n BOTTOM_LEFT: b,\n BOTTOM_RIGHT: u,\n CENTER: y,\n CENTER_LOCATIONS: z,\n LEFT_CENTER: j,\n RIGHT_CENTER: E,\n TOP_CENTER: p,\n TOP_LEFT: T,\n TOP_RIGHT: l,\n XY_LOCATIONS: M,\n X_LOCATIONS: L,\n Y_LOCATIONS: S,\n construct: c,\n constructXY: H,\n corner: w,\n crude: Y,\n direction: s,\n isX: i,\n isY: F,\n location: d,\n outer: h,\n rotate90: P,\n swap: A,\n x: N,\n xy: k,\n xyCouple: D,\n xyEquals: $,\n xyMatches: B,\n xyToString: G,\n y: R\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n b as B,\n y as C,\n T,\n M as X,\n D as a,\n l as b,\n w as c,\n u as d,\n k as e,\n B as f,\n J as l,\n A as s,\n $ as x\n};\n//# sourceMappingURL=index-ClwaLrxu.js.map\n","import { z as y } from \"./index-DGl1HeGK.js\";\nimport { x as u, n as m, d, s as l, g as a } from \"./base-BFiX58sV.js\";\nconst p = y.union([\n y.number(),\n u,\n m,\n d,\n l,\n a\n]), s = (t, n) => {\n if (typeof t == \"string\") {\n if (n === void 0)\n throw new Error(\"The y coordinate must be given.\");\n return t === \"x\" ? { x: n, y: 0 } : { x: 0, y: n };\n }\n return typeof t == \"number\" ? { x: t, y: n ?? t } : Array.isArray(t) ? { x: t[0], y: t[1] } : \"signedWidth\" in t ? { x: t.signedWidth, y: t.signedHeight } : \"clientX\" in t ? { x: t.clientX, y: t.clientY } : \"width\" in t ? { x: t.width, y: t.height } : { x: t.x, y: t.y };\n}, i = Object.freeze({ x: 0, y: 0 }), g = Object.freeze({ x: 1, y: 1 }), O = Object.freeze({ x: 1 / 0, y: 1 / 0 }), h = Object.freeze({ x: NaN, y: NaN }), x = (t, n, e = 0) => {\n const r = s(t), o = s(n);\n return e === 0 ? r.x === o.x && r.y === o.y : Math.abs(r.x - o.x) <= e && Math.abs(r.y - o.y) <= e;\n}, j = (t) => x(t, i), z = (t, n, e = n) => {\n const r = s(t);\n return { x: r.x * n, y: r.y * e };\n}, f = (t, n) => {\n const e = s(t);\n return { x: e.x + n, y: e.y };\n}, b = (t, n) => {\n const e = s(t);\n return { x: e.x, y: e.y + n };\n}, F = (t, n, e, ...r) => typeof n == \"string\" && typeof e == \"number\" ? n === \"x\" ? f(t, e) : b(t, e) : [t, n, e ?? i, ...r].reduce((o, N) => {\n const c = s(N);\n return { x: o.x + c.x, y: o.y + c.y };\n}, i), _ = (t, n, e) => {\n const r = s(t);\n return n === \"x\" ? { x: e, y: r.y } : { x: r.x, y: e };\n}, I = (t, n) => {\n const e = s(t), r = s(n);\n return Math.sqrt((e.x - r.x) ** 2 + (e.y - r.y) ** 2);\n}, w = (t, n) => {\n const e = s(t), r = s(n);\n return { x: r.x - e.x, y: r.y - e.y };\n}, M = (t) => {\n const n = s(t);\n return Number.isNaN(n.x) || Number.isNaN(n.y);\n}, X = (t) => {\n const n = s(t);\n return Number.isFinite(n.x) && Number.isFinite(n.y);\n}, Y = (t) => {\n const n = s(t);\n return [n.x, n.y];\n}, Z = (t) => {\n const n = s(t);\n return { left: n.x, top: n.y };\n}, A = (t, n = 0) => {\n const e = s(t);\n return { x: Number(e.x.toFixed(n)), y: Number(e.y.toFixed(n)) };\n}, q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n INFINITY: O,\n NAN: h,\n ONE: g,\n ZERO: i,\n clientXY: a,\n construct: s,\n couple: Y,\n crudeZ: p,\n css: Z,\n distance: I,\n equals: x,\n isFinite: X,\n isNan: M,\n isZero: j,\n scale: z,\n set: _,\n translate: F,\n translateX: f,\n translateY: b,\n translation: w,\n truncate: A,\n xy: u\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n g as O,\n i as Z,\n A as a,\n p as b,\n s as c,\n x as e,\n F as t,\n q as x\n};\n//# sourceMappingURL=index-DDN3mTB_.js.map\n","import { z as i } from \"./index-DGl1HeGK.js\";\nimport { c as M } from \"./index-8RT6Cy8l.js\";\nimport { c as S, T as E, B as H, x as Z, a as q, b as v, d as N, l as D } from \"./index-ClwaLrxu.js\";\nimport { Z as p, O as F, e as $, t as O, c as G, a as C } from \"./index-DDN3mTB_.js\";\nimport { x as j, X as P, Y as X } from \"./base-BFiX58sV.js\";\nconst h = i.union([i.number(), i.string()]);\ni.object({\n top: h,\n left: h,\n width: h,\n height: h\n});\ni.object({\n left: i.number(),\n top: i.number(),\n right: i.number(),\n bottom: i.number()\n});\nconst Y = i.object({\n one: j,\n two: j,\n root: S\n}), W = { one: p, two: p, root: E }, U = { one: p, two: F, root: H }, z = (o, t) => ({\n one: o.one,\n two: o.two,\n root: t ?? o.root\n}), s = (o, t, n = 0, e = 0, c) => {\n const r = {\n one: { ...p },\n two: { ...p },\n root: c ?? E\n };\n if (typeof o == \"number\") {\n if (typeof t != \"number\")\n throw new Error(\"Box constructor called with invalid arguments\");\n return r.one = { x: o, y: t }, r.two = { x: r.one.x + n, y: r.one.y + e }, r;\n }\n return \"one\" in o && \"two\" in o && \"root\" in o ? { ...o, root: c ?? o.root } : (\"getBoundingClientRect\" in o && (o = o.getBoundingClientRect()), \"left\" in o ? (r.one = { x: o.left, y: o.top }, r.two = { x: o.right, y: o.bottom }, r) : (r.one = o, t == null ? r.two = { x: r.one.x + n, y: r.one.y + e } : typeof t == \"number\" ? r.two = { x: r.one.x + t, y: r.one.y + n } : \"width\" in t ? r.two = {\n x: r.one.x + t.width,\n y: r.one.y + t.height\n } : \"signedWidth\" in t ? r.two = {\n x: r.one.x + t.signedWidth,\n y: r.one.y + t.signedHeight\n } : r.two = t, r));\n}, k = (o, t, n) => {\n const e = s(o);\n if (typeof t == \"string\") {\n if (n == null)\n throw new Error(\"Invalid arguments for resize\");\n const c = M(t);\n return s(\n e.one,\n void 0,\n c === \"x\" ? n : u(e),\n c === \"y\" ? n : w(e),\n e.root\n );\n }\n return s(e.one, t, void 0, void 0, e.root);\n}, J = (o, t) => {\n const n = s(o);\n return \"one\" in t ? y(t) >= y(n) && l(t) <= l(n) && a(t) >= a(n) && f(t) <= f(n) : t.x >= y(n) && t.x <= l(n) && t.y >= a(n) && t.y <= f(n);\n}, K = (o, t) => $(o.one, t.one) && $(o.two, t.two) && Z(o.root, t.root), A = (o) => ({\n width: u(o),\n height: w(o)\n}), Q = (o) => ({\n signedWidth: _(o),\n signedHeight: b(o)\n}), V = (o) => ({\n top: a(o),\n left: y(o),\n width: u(o),\n height: w(o)\n}), B = (o, t, n = !1) => {\n const e = M(t) === \"y\" ? b(o) : _(o);\n return n ? e : Math.abs(e);\n}, g = (o, t) => {\n const n = s(o);\n return {\n x: t.x === \"center\" ? T(n).x : d(n, t.x),\n y: t.y === \"center\" ? T(n).y : d(n, t.y)\n };\n}, d = (o, t) => {\n const n = s(o), e = q(n.root).includes(t) ? Math.min : Math.max;\n return P.includes(t) ? e(n.one.x, n.two.x) : e(n.one.y, n.two.y);\n}, oo = (o) => o.one.x === o.two.x && o.one.y === o.two.y, u = (o) => B(o, \"x\"), w = (o) => B(o, \"y\"), _ = (o) => {\n const t = s(o);\n return t.two.x - t.one.x;\n}, b = (o) => {\n const t = s(o);\n return t.two.y - t.one.y;\n}, R = (o) => g(o, E), to = (o) => g(o, v), no = (o) => g(o, H), eo = (o) => g(o, N), l = (o) => d(o, \"right\"), f = (o) => d(o, \"bottom\"), y = (o) => d(o, \"left\"), a = (o) => d(o, \"top\"), T = (o) => O(R(o), {\n x: _(o) / 2,\n y: b(o) / 2\n}), I = (o) => {\n const t = s(o);\n return t.root.x === \"left\" ? y(t) : l(t);\n}, L = (o) => {\n const t = s(o);\n return t.root.y === \"top\" ? a(t) : f(t);\n}, ro = (o) => ({ x: I(o), y: L(o) }), so = (o) => {\n const t = s(o);\n return { lower: t.one.x, upper: t.two.x };\n}, co = (o) => {\n const t = s(o);\n return { lower: t.one.y, upper: t.two.y };\n}, io = (o, t) => z(o, t), xo = (o, t) => {\n const n = s(o), e = P.includes(t) ? \"x\" : X.includes(t) ? \"y\" : null;\n if (e === null)\n throw new Error(`Invalid location: ${D}`);\n const c = t === \"top\" || t === \"left\" ? Math.min : Math.max, r = { ...n.one }, x = { ...n.two };\n return r[e] = c(n.one[e], n.two[e]), x[e] = c(n.one[e], n.two[e]), [r, x];\n}, yo = (o, t) => {\n const n = s(o), e = s(t), c = I(e) + (u(e) - u(n)) / 2, r = L(e) + (w(e) - w(n)) / 2;\n return s({ x: c, y: r }, A(n));\n}, ao = (o) => typeof o != \"object\" || o == null ? !1 : \"one\" in o && \"two\" in o && \"root\" in o, uo = (o) => u(o) / w(o), wo = (o, t, n) => {\n if (typeof t == \"string\") {\n if (n == null)\n throw new Error(\"Undefined amount passed into box.translate\");\n const c = M(t);\n t = G(c, n);\n }\n const e = s(o);\n return s(\n O(e.one, t),\n O(e.two, t),\n void 0,\n void 0,\n e.root\n );\n}, lo = (o, t) => {\n const n = Math.max(y(o), y(t)), e = Math.max(a(o), a(t)), c = Math.min(l(o), l(t)), r = Math.min(f(o), f(t));\n return n > c || e > r ? W : s({ x: n, y: e }, { x: c, y: r }, void 0, void 0, o.root);\n}, fo = (o) => u(o) * w(o), mo = (o, t) => {\n const n = s(o);\n return s(\n C(n.one, t),\n C(n.two, t),\n void 0,\n void 0,\n n.root\n );\n}, po = (o, t, n, e, c, r) => {\n const x = { x: o, y: t }, m = { x: o + n, y: t + e };\n return c.x !== r.x && (c.x === \"center\" ? (x.x -= n / 2, m.x -= n / 2) : (x.x -= n, m.x -= n)), c.y !== r.y && (c.y === \"center\" ? (x.y -= e / 2, m.y -= e / 2) : (x.y -= e, m.y -= e)), s(x, m, void 0, void 0, r);\n}, To = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n DECIMAL: U,\n ZERO: W,\n area: fo,\n areaIsZero: oo,\n aspect: uo,\n bottom: f,\n bottomLeft: no,\n bottomRight: eo,\n box: Y,\n center: T,\n construct: s,\n constructWithAlternateRoot: po,\n contains: J,\n copy: z,\n css: V,\n dim: B,\n dims: A,\n edgePoints: xo,\n equals: K,\n height: w,\n intersection: lo,\n isBox: ao,\n left: y,\n loc: d,\n positionInCenter: yo,\n reRoot: io,\n resize: k,\n right: l,\n root: ro,\n signedDims: Q,\n signedHeight: b,\n signedWidth: _,\n top: a,\n topLeft: R,\n topRight: to,\n translate: wo,\n truncate: mo,\n width: u,\n x: I,\n xBounds: so,\n xyLoc: g,\n y: L,\n yBounds: co\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n po as a,\n To as b,\n s as c,\n fo as d,\n ao as e,\n so as f,\n w as h,\n lo as i,\n u as w,\n g as x,\n co as y\n};\n//# sourceMappingURL=index-DCtHmiqr.js.map\n","import { z as h } from \"./index-DGl1HeGK.js\";\nimport { d as o, x as g, n as a } from \"./base-BFiX58sV.js\";\nconst r = h.object({ signedWidth: h.number(), signedHeight: h.number() }), c = h.union([o, r, g, a]), u = { width: 0, height: 0 }, m = { width: 1, height: 1 }, n = (t, e) => typeof t == \"number\" ? { width: t, height: e ?? t } : Array.isArray(t) ? { width: t[0], height: t[1] } : \"x\" in t ? { width: t.x, height: t.y } : \"signedWidth\" in t ? { width: t.signedWidth, height: t.signedHeight } : { ...t }, d = (t, e) => {\n if (e == null)\n return !1;\n const i = n(t), s = n(e);\n return i.width === s.width && i.height === s.height;\n}, p = (t) => {\n const e = n(t);\n return { width: e.height, height: e.width };\n}, l = (t) => {\n const e = n(t);\n return `0 0 ${e.width} ${e.height}`;\n}, f = (t) => {\n const e = n(t);\n return [e.width, e.height];\n}, x = (t) => ({\n width: Math.max(...t.map((e) => n(e).width)),\n height: Math.max(...t.map((e) => n(e).height))\n}), b = (t) => ({\n width: Math.min(...t.map((e) => n(e).width)),\n height: Math.min(...t.map((e) => n(e).height))\n}), w = (t, e) => {\n const i = n(t);\n return { width: i.width * e, height: i.height * e };\n}, _ = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n DECIMAL: m,\n ZERO: u,\n construct: n,\n couple: f,\n crude: c,\n dimensions: o,\n equals: d,\n max: x,\n min: b,\n scale: w,\n signed: r,\n svgViewBox: l,\n swap: p\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n _ as dimensions\n};\n//# sourceMappingURL=dimensions.js.map\n","var B = Object.defineProperty;\nvar R = (r, t, e) => t in r ? B(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;\nvar i = (r, t, e) => (R(r, typeof t != \"symbol\" ? t + \"\" : t, e), e);\nimport { z as v } from \"./index-DGl1HeGK.js\";\nimport { c as y } from \"./index-j0nI5Ulm.js\";\nimport { e as T, f as x, y as h, c as E } from \"./index-DCtHmiqr.js\";\nimport { x as I } from \"./index-ClwaLrxu.js\";\nimport { b as w, c as M } from \"./index-DDN3mTB_.js\";\nconst Y = (r, t, e) => (t != null && (r = Math.max(r, t)), e != null && (r = Math.min(r, e)), r), j = v.object({ offset: w, scale: w }), z = (r) => (t, e, s, n) => e === \"dimension\" ? [t, s] : [t, n ? s - r : s + r], D = (r) => (t, e, s, n) => [t, n ? s / r : s * r], L = (r) => (t, e, s) => {\n if (t === null)\n return [r, s];\n const { lower: n, upper: o } = t, { lower: u, upper: p } = r, m = o - n, d = p - u;\n if (e === \"dimension\")\n return [r, s * (d / m)];\n const g = (s - n) * (d / m) + u;\n return [r, g];\n}, N = (r) => (t, e, s) => [r, s], O = () => (r, t, e) => {\n if (r === null)\n throw new Error(\"cannot invert without bounds\");\n if (t === \"dimension\")\n return [r, e];\n const { lower: s, upper: n } = r;\n return [r, n - (e - s)];\n}, U = (r) => (t, e, s) => {\n const { lower: n, upper: o } = r;\n return s = Y(s, n, o), [t, s];\n}, a = class a {\n constructor() {\n i(this, \"ops\", []);\n i(this, \"currBounds\", null);\n i(this, \"currType\", null);\n i(this, \"reversed\", !1);\n this.ops = [];\n }\n static translate(t) {\n return new a().translate(t);\n }\n static magnify(t) {\n return new a().magnify(t);\n }\n static scale(t, e) {\n return new a().scale(t, e);\n }\n translate(t) {\n const e = this.new(), s = z(t);\n return s.type = \"translate\", e.ops.push(s), e;\n }\n magnify(t) {\n const e = this.new(), s = D(t);\n return s.type = \"magnify\", e.ops.push(s), e;\n }\n scale(t, e) {\n const s = y(t, e), n = this.new(), o = L(s);\n return o.type = \"scale\", n.ops.push(o), n;\n }\n clamp(t, e) {\n const s = y(t, e), n = this.new(), o = U(s);\n return o.type = \"clamp\", n.ops.push(o), n;\n }\n reBound(t, e) {\n const s = y(t, e), n = this.new(), o = N(s);\n return o.type = \"re-bound\", n.ops.push(o), n;\n }\n invert() {\n const t = O();\n t.type = \"invert\";\n const e = this.new();\n return e.ops.push(t), e;\n }\n pos(t) {\n return this.exec(\"position\", t);\n }\n dim(t) {\n return this.exec(\"dimension\", t);\n }\n new() {\n const t = new a();\n return t.ops = this.ops.slice(), t.reversed = this.reversed, t;\n }\n exec(t, e) {\n return this.currBounds = null, this.ops.reduce(\n ([s, n], o) => o(s, t, n, this.reversed),\n [null, e]\n )[1];\n }\n reverse() {\n const t = this.new();\n t.ops.reverse();\n const e = [];\n return t.ops.forEach((s, n) => {\n if (s.type === \"scale\" || e.some(([u, p]) => n >= u && n <= p))\n return;\n const o = t.ops.findIndex((u, p) => u.type === \"scale\" && p > n);\n o !== -1 && e.push([n, o]);\n }), e.forEach(([s, n]) => {\n const o = t.ops.slice(s, n);\n o.unshift(t.ops[n]), t.ops.splice(s, n - s + 1, ...o);\n }), t.reversed = !t.reversed, t;\n }\n};\ni(a, \"IDENTITY\", new a());\nlet l = a;\nconst X = (r) => ({\n scale: {\n x: r.x.dim(1),\n y: r.y.dim(1)\n },\n offset: {\n x: r.x.pos(0),\n y: r.y.pos(0)\n }\n}), c = class c {\n constructor(t = new l(), e = new l(), s = null) {\n i(this, \"x\");\n i(this, \"y\");\n i(this, \"currRoot\");\n this.x = t, this.y = e, this.currRoot = s;\n }\n static translate(t, e) {\n return new c().translate(t, e);\n }\n static translateX(t) {\n return new c().translateX(t);\n }\n static translateY(t) {\n return new c().translateY(t);\n }\n static clamp(t) {\n return new c().clamp(t);\n }\n static magnify(t) {\n return new c().magnify(t);\n }\n static scale(t) {\n return new c().scale(t);\n }\n static reBound(t) {\n return new c().reBound(t);\n }\n translate(t, e) {\n const s = M(t, e), n = this.copy();\n return n.x = this.x.translate(s.x), n.y = this.y.translate(s.y), n;\n }\n translateX(t) {\n const e = this.copy();\n return e.x = this.x.translate(t), e;\n }\n translateY(t) {\n const e = this.copy();\n return e.y = this.y.translate(t), e;\n }\n magnify(t) {\n const e = this.copy();\n return e.x = this.x.magnify(t.x), e.y = this.y.magnify(t.y), e;\n }\n scale(t) {\n const e = this.copy();\n if (T(t)) {\n const s = this.currRoot;\n return e.currRoot = t.root, s != null && !I(s, t.root) && (s.x !== t.root.x && (e.x = e.x.invert()), s.y !== t.root.y && (e.y = e.y.invert())), e.x = e.x.scale(x(t)), e.y = e.y.scale(h(t)), e;\n }\n return e.x = e.x.scale(t.width), e.y = e.y.scale(t.height), e;\n }\n reBound(t) {\n const e = this.copy();\n return e.x = this.x.reBound(x(t)), e.y = this.y.reBound(h(t)), e;\n }\n clamp(t) {\n const e = this.copy();\n return e.x = this.x.clamp(x(t)), e.y = this.y.clamp(h(t)), e;\n }\n copy() {\n const t = new c();\n return t.currRoot = this.currRoot, t.x = this.x, t.y = this.y, t;\n }\n reverse() {\n const t = this.copy();\n return t.x = this.x.reverse(), t.y = this.y.reverse(), t;\n }\n pos(t) {\n return { x: this.x.pos(t.x), y: this.y.pos(t.y) };\n }\n box(t) {\n return E(\n this.pos(t.one),\n this.pos(t.two),\n 0,\n 0,\n this.currRoot ?? t.root\n );\n }\n};\ni(c, \"IDENTITY\", new c());\nlet f = c;\nconst k = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Scale: l,\n XY: f,\n crudeXYTransform: j,\n xyScaleToTransform: X\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n Y as c,\n k as s\n};\n//# sourceMappingURL=index-Cx2GASyR.js.map\n","var P = Object.defineProperty;\nvar Y = (f, t, e) => t in f ? P(f, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : f[t] = e;\nvar s = (f, t, e) => (Y(f, typeof t != \"symbol\" ? t + \"\" : t, e), e);\nimport { t as L } from \"./index-GKyuv4Un.js\";\nimport { n as G } from \"./index-Bcm6lEr8.js\";\nimport { c as D } from \"./index-j0nI5Ulm.js\";\nimport \"./index-DCtHmiqr.js\";\nimport \"./dimensions.js\";\nimport \"./base-BFiX58sV.js\";\nimport \"./index-ClwaLrxu.js\";\nimport \"./index-DDN3mTB_.js\";\nimport \"./index-Cx2GASyR.js\";\nimport { z as c } from \"./index-DGl1HeGK.js\";\nlet V = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\", Z = (f = 21) => {\n let t = \"\", e = f;\n for (; e--; )\n t += V[Math.random() * 64 | 0];\n return t;\n};\nconst $ = (f, t) => {\n const e = new w(t);\n if (![\n y.DAY,\n y.HOUR,\n y.MINUTE,\n y.SECOND,\n y.MILLISECOND,\n y.MICROSECOND,\n y.NANOSECOND\n ].some((u) => u.equals(e)))\n throw new Error(\n \"Invalid argument for remainder. Must be an even TimeSpan or Timestamp\"\n );\n const r = f.valueOf() % e.valueOf();\n return f instanceof w ? new w(r) : new y(r);\n}, i = class i {\n constructor(t, e = \"UTC\") {\n s(this, \"value\");\n s(this, \"encodeValue\", !0);\n if (t == null)\n this.value = i.now().valueOf();\n else if (t instanceof Date)\n this.value = BigInt(t.getTime()) * i.MILLISECOND.valueOf();\n else if (typeof t == \"string\")\n this.value = i.parseDateTimeString(t, e).valueOf();\n else if (Array.isArray(t))\n this.value = i.parseDate(t);\n else {\n let r = BigInt(0);\n t instanceof Number && (t = t.valueOf()), e === \"local\" && (r = i.utcOffset.valueOf()), typeof t == \"number\" && (isFinite(t) ? t = Math.trunc(t) : (isNaN(t) && (t = 0), t === 1 / 0 ? t = i.MAX : t = i.MIN)), this.value = BigInt(t.valueOf()) + r;\n }\n }\n static parseDate([t = 1970, e = 1, r = 1]) {\n const u = new Date(t, e - 1, r, 0, 0, 0, 0);\n return new i(BigInt(u.getTime()) * i.MILLISECOND.valueOf()).truncate(i.DAY).valueOf();\n }\n encode() {\n return this.value.toString();\n }\n valueOf() {\n return this.value;\n }\n static parseTimeString(t, e = \"UTC\") {\n const [r, u, h] = t.split(\":\");\n let d = \"00\", S = \"00\";\n h != null && ([d, S] = h.split(\".\"));\n let O = i.hours(parseInt(r ?? \"00\", 10)).add(i.minutes(parseInt(u ?? \"00\", 10))).add(i.seconds(parseInt(d ?? \"00\", 10))).add(i.milliseconds(parseInt(S ?? \"00\", 10)));\n return e === \"local\" && (O = O.add(i.utcOffset)), O.valueOf();\n }\n static parseDateTimeString(t, e = \"UTC\") {\n if (!t.includes(\"/\") && !t.includes(\"-\"))\n return i.parseTimeString(t, e);\n const r = new Date(t);\n return t.includes(\":\") || r.setUTCHours(0, 0, 0, 0), new i(\n BigInt(r.getTime()) * i.MILLISECOND.valueOf(),\n e\n ).valueOf();\n }\n fString(t = \"ISO\", e = \"UTC\") {\n switch (t) {\n case \"ISODate\":\n return this.toISOString(e).slice(0, 10);\n case \"ISOTime\":\n return this.toISOString(e).slice(11, 23);\n case \"time\":\n return this.timeString(!1, e);\n case \"preciseTime\":\n return this.timeString(!0, e);\n case \"date\":\n return this.dateString(e);\n case \"preciseDate\":\n return `${this.dateString(e)} ${this.timeString(!0, e)}`;\n case \"dateTime\":\n return `${this.dateString(e)} ${this.timeString(!1, e)}`;\n default:\n return this.toISOString(e);\n }\n }\n toISOString(t = \"UTC\") {\n return t === \"UTC\" ? this.date().toISOString() : this.sub(i.utcOffset).date().toISOString();\n }\n timeString(t = !1, e = \"UTC\") {\n const r = this.toISOString(e);\n return t ? r.slice(11, 23) : r.slice(11, 19);\n }\n dateString(t = \"UTC\") {\n const e = this.date(), r = e.toLocaleString(\"default\", { month: \"short\" }), u = e.toLocaleString(\"default\", { day: \"numeric\" });\n return `${r} ${u}`;\n }\n static get utcOffset() {\n return new y(\n BigInt((/* @__PURE__ */ new Date()).getTimezoneOffset()) * i.MINUTE.valueOf()\n );\n }\n /**\n * @returns a TimeSpan representing the amount time elapsed since\n * the other timestamp.\n * @param other - The other timestamp.\n */\n static since(t) {\n return new i().span(t);\n }\n /** @returns A JavaScript Date object representing the TimeStamp. */\n date() {\n return new Date(this.milliseconds());\n }\n /**\n * Checks if the TimeStamp is equal to another TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamps are equal, false otherwise.\n */\n equals(t) {\n return this.valueOf() === new i(t).valueOf();\n }\n /**\n * Creates a TimeSpan representing the duration between the two timestamps.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns A TimeSpan representing the duration between the two timestamps.\n * The span is guaranteed to be positive.\n */\n span(t) {\n return this.range(t).span;\n }\n /**\n * Creates a TimeRange spanning the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns A TimeRange spanning the given TimeStamp that is guaranteed to be\n * valid, regardless of the TimeStamp order.\n */\n range(t) {\n return new U(this, t).makeValid();\n }\n /**\n * Creates a TimeRange starting at the TimeStamp and spanning the given\n * TimeSpan.\n *\n * @param other - The TimeSpan to span.\n * @returns A TimeRange starting at the TimeStamp and spanning the given\n * TimeSpan. The TimeRange is guaranteed to be valid.\n */\n spanRange(t) {\n return this.range(this.add(t)).makeValid();\n }\n /**\n * Checks if the TimeStamp represents the unix epoch.\n *\n * @returns True if the TimeStamp represents the unix epoch, false otherwise.\n */\n get isZero() {\n return this.valueOf() === BigInt(0);\n }\n /**\n * Checks if the TimeStamp is after the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is after the given TimeStamp, false\n * otherwise.\n */\n after(t) {\n return this.valueOf() > new i(t).valueOf();\n }\n /**\n * Checks if the TimeStamp is after or equal to the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is after or equal to the given TimeStamp,\n * false otherwise.\n */\n afterEq(t) {\n return this.valueOf() >= new i(t).valueOf();\n }\n /**\n * Checks if the TimeStamp is before the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is before the given TimeStamp, false\n * otherwise.\n */\n before(t) {\n return this.valueOf() < new i(t).valueOf();\n }\n /**\n * Checks if TimeStamp is before or equal to the current timestamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if TimeStamp is before or equal to the current timestamp,\n * false otherwise.\n */\n beforeEq(t) {\n return this.valueOf() <= new i(t).valueOf();\n }\n /**\n * Adds a TimeSpan to the TimeStamp.\n *\n * @param span - The TimeSpan to add.\n * @returns A new TimeStamp representing the sum of the TimeStamp and\n * TimeSpan.\n */\n add(t) {\n return new i(this.valueOf() + BigInt(t.valueOf()));\n }\n /**\n * Subtracts a TimeSpan from the TimeStamp.\n *\n * @param span - The TimeSpan to subtract.\n * @returns A new TimeStamp representing the difference of the TimeStamp and\n * TimeSpan.\n */\n sub(t) {\n return new i(this.valueOf() - BigInt(t.valueOf()));\n }\n /**\n * @returns The number of milliseconds since the unix epoch.\n */\n milliseconds() {\n return Number(this.valueOf() / i.MILLISECOND.valueOf());\n }\n toString() {\n return this.date().toISOString();\n }\n /**\n * @returns A new TimeStamp that is the remainder of the TimeStamp divided by the\n * given span. This is useful in cases where you want only part of a TimeStamp's value\n * i.e. the hours, minutes, seconds, milliseconds, microseconds, and nanoseconds but\n * not the days, years, etc.\n *\n * @param divisor - The TimeSpan to divide by. Must be an even TimeSpan or TimeStamp. Even\n * means it must be a day, hour, minute, second, millisecond, or microsecond, etc.\n *\n * @example TimeStamp.now().remainder(TimeStamp.DAY) // => TimeStamp representing the current day\n */\n remainder(t) {\n return $(this, t);\n }\n /** @returns true if the day portion TimeStamp is today, false otherwise. */\n get isToday() {\n return this.truncate(y.DAY).equals(i.now().truncate(y.DAY));\n }\n truncate(t) {\n return this.sub(this.remainder(t));\n }\n /**\n * @returns A new TimeStamp representing the current time in UTC. It's important to\n * note that this TimeStamp is only accurate to the millisecond level (that's the best\n * JavaScript can do).\n */\n static now() {\n return new i(/* @__PURE__ */ new Date());\n }\n static max(...t) {\n let e = i.MIN;\n for (const r of t) {\n const u = new i(r);\n u.after(e) && (e = u);\n }\n return e;\n }\n static min(...t) {\n let e = i.MAX;\n for (const r of t) {\n const u = new i(r);\n u.before(e) && (e = u);\n }\n return e;\n }\n /** @returns a new TimeStamp n nanoseconds after the unix epoch */\n static nanoseconds(t) {\n return new i(t);\n }\n /** @returns a new TimeStamp n microseconds after the unix epoch */\n static microseconds(t) {\n return i.nanoseconds(t * 1e3);\n }\n /** @returns a new TimeStamp n milliseconds after the unix epoch */\n static milliseconds(t) {\n return i.microseconds(t * 1e3);\n }\n /** @returns a new TimeStamp n seconds after the unix epoch */\n static seconds(t) {\n return i.milliseconds(t * 1e3);\n }\n /** @returns a new TimeStamp n minutes after the unix epoch */\n static minutes(t) {\n return i.seconds(t * 60);\n }\n /** @returns a new TimeStamp n hours after the unix epoch */\n static hours(t) {\n return i.minutes(t * 60);\n }\n /** @returns a new TimeStamp n days after the unix epoch */\n static days(t) {\n return i.hours(t * 24);\n }\n};\n/* One nanosecond after the unix epoch */\ns(i, \"NANOSECOND\", i.nanoseconds(1)), /** One microsecond after the unix epoch */\ns(i, \"MICROSECOND\", i.microseconds(1)), /** One millisecond after the unix epoch */\ns(i, \"MILLISECOND\", i.milliseconds(1)), /** One second after the unix epoch */\ns(i, \"SECOND\", i.seconds(1)), /** One minute after the unix epoch */\ns(i, \"MINUTE\", i.minutes(1)), /** One hour after the unix epoch */\ns(i, \"HOUR\", i.hours(1)), /** One day after the unix epoch */\ns(i, \"DAY\", i.days(1)), /** The maximum possible value for a timestamp */\ns(i, \"MAX\", new i((1n << 63n) - 1n)), /** The minimum possible value for a timestamp */\ns(i, \"MIN\", new i(0)), /** The unix epoch */\ns(i, \"ZERO\", new i(0)), /** A zod schema for validating timestamps */\ns(i, \"z\", c.union([\n c.object({ value: c.bigint() }).transform((t) => new i(t.value)),\n c.string().transform((t) => new i(BigInt(t))),\n c.instanceof(Number).transform((t) => new i(t)),\n c.number().transform((t) => new i(t)),\n c.instanceof(i)\n]));\nlet w = i;\nconst a = class a {\n constructor(t) {\n s(this, \"value\");\n s(this, \"encodeValue\", !0);\n typeof t == \"number\" && (t = Math.trunc(t.valueOf())), this.value = BigInt(t.valueOf());\n }\n encode() {\n return this.value.toString();\n }\n valueOf() {\n return this.value;\n }\n lessThan(t) {\n return this.valueOf() < new a(t).valueOf();\n }\n greaterThan(t) {\n return this.valueOf() > new a(t).valueOf();\n }\n lessThanOrEqual(t) {\n return this.valueOf() <= new a(t).valueOf();\n }\n greaterThanOrEqual(t) {\n return this.valueOf() >= new a(t).valueOf();\n }\n remainder(t) {\n return $(this, t);\n }\n truncate(t) {\n return new a(\n BigInt(Math.trunc(Number(this.valueOf() / t.valueOf()))) * t.valueOf()\n );\n }\n toString() {\n const t = this.truncate(a.DAY), e = this.truncate(a.HOUR), r = this.truncate(a.MINUTE), u = this.truncate(a.SECOND), h = this.truncate(a.MILLISECOND), d = this.truncate(a.MICROSECOND), S = this.truncate(a.NANOSECOND), O = t, b = e.sub(t), p = r.sub(e), o = u.sub(r), M = h.sub(u), B = d.sub(h), x = S.sub(d);\n let A = \"\";\n return O.isZero || (A += `${O.days}d `), b.isZero || (A += `${b.hours}h `), p.isZero || (A += `${p.minutes}m `), o.isZero || (A += `${o.seconds}s `), M.isZero || (A += `${M.milliseconds}ms `), B.isZero || (A += `${B.microseconds}µs `), x.isZero || (A += `${x.nanoseconds}ns`), A.trim();\n }\n /** @returns the decimal number of days in the timespan */\n get days() {\n return Number(this.valueOf() / a.DAY.valueOf());\n }\n /** @returns the decimal number of hours in the timespan */\n get hours() {\n return Number(this.valueOf() / a.HOUR.valueOf());\n }\n /** @returns the decimal number of minutes in the timespan */\n get minutes() {\n return Number(this.valueOf() / a.MINUTE.valueOf());\n }\n /** @returns The number of seconds in the TimeSpan. */\n get seconds() {\n return Number(this.valueOf() / a.SECOND.valueOf());\n }\n /** @returns The number of milliseconds in the TimeSpan. */\n get milliseconds() {\n return Number(this.valueOf() / a.MILLISECOND.valueOf());\n }\n get microseconds() {\n return Number(this.valueOf() / a.MICROSECOND.valueOf());\n }\n get nanoseconds() {\n return Number(this.valueOf());\n }\n /**\n * Checks if the TimeSpan represents a zero duration.\n *\n * @returns True if the TimeSpan represents a zero duration, false otherwise.\n */\n get isZero() {\n return this.valueOf() === BigInt(0);\n }\n /**\n * Checks if the TimeSpan is equal to another TimeSpan.\n *\n * @returns True if the TimeSpans are equal, false otherwise.\n */\n equals(t) {\n return this.valueOf() === new a(t).valueOf();\n }\n /**\n * Adds a TimeSpan to the TimeSpan.\n *\n * @returns A new TimeSpan representing the sum of the two TimeSpans.\n */\n add(t) {\n return new a(this.valueOf() + new a(t).valueOf());\n }\n /**\n * Creates a TimeSpan representing the duration between the two timestamps.\n *\n * @param other\n */\n sub(t) {\n return new a(this.valueOf() - new a(t).valueOf());\n }\n /**\n * Creates a TimeSpan representing the given number of nanoseconds.\n *\n * @param value - The number of nanoseconds.\n * @returns A TimeSpan representing the given number of nanoseconds.\n */\n static nanoseconds(t = 1) {\n return new a(t);\n }\n /**\n * Creates a TimeSpan representing the given number of microseconds.\n *\n * @param value - The number of microseconds.\n * @returns A TimeSpan representing the given number of microseconds.\n */\n static microseconds(t = 1) {\n return a.nanoseconds(t * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of milliseconds.\n *\n * @param value - The number of milliseconds.\n * @returns A TimeSpan representing the given number of milliseconds.\n */\n static milliseconds(t = 1) {\n return a.microseconds(t * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of seconds.\n *\n * @param value - The number of seconds.\n * @returns A TimeSpan representing the given number of seconds.\n */\n static seconds(t = 1) {\n return a.milliseconds(t * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of minutes.\n *\n * @param value - The number of minutes.\n * @returns A TimeSpan representing the given number of minutes.\n */\n static minutes(t) {\n return a.seconds(t.valueOf() * 60);\n }\n /**\n * Creates a TimeSpan representing the given number of hours.\n *\n * @param value - The number of hours.\n * @returns A TimeSpan representing the given number of hours.\n */\n static hours(t) {\n return a.minutes(t * 60);\n }\n /**\n * Creates a TimeSpan representing the given number of days.\n *\n * @param value - The number of days.\n * @returns A TimeSpan representing the given number of days.\n */\n static days(t) {\n return a.hours(t * 24);\n }\n};\n/** A nanosecond. */\ns(a, \"NANOSECOND\", a.nanoseconds(1)), /** A microsecond. */\ns(a, \"MICROSECOND\", a.microseconds(1)), /** A millisecond. */\ns(a, \"MILLISECOND\", a.milliseconds(1)), /** A second. */\ns(a, \"SECOND\", a.seconds(1)), /** A minute. */\ns(a, \"MINUTE\", a.minutes(1)), /** Represents an hour. */\ns(a, \"HOUR\", a.hours(1)), /** Represents a day. */\ns(a, \"DAY\", a.days(1)), /** The maximum possible value for a TimeSpan. */\ns(a, \"MAX\", new a((1n << 63n) - 1n)), /** The minimum possible value for a TimeSpan. */\ns(a, \"MIN\", new a(0)), /** The zero value for a TimeSpan. */\ns(a, \"ZERO\", new a(0)), /** A zod schema for validating and transforming timespans */\ns(a, \"z\", c.union([\n c.object({ value: c.bigint() }).transform((t) => new a(t.value)),\n c.string().transform((t) => new a(BigInt(t))),\n c.instanceof(Number).transform((t) => new a(t)),\n c.number().transform((t) => new a(t)),\n c.instanceof(a)\n]));\nlet y = a;\nconst v = class v extends Number {\n constructor(t) {\n t instanceof Number ? super(t.valueOf()) : super(t);\n }\n /** @returns a pretty string representation of the rate in the format \"X Hz\". */\n toString() {\n return `${this.valueOf()} Hz`;\n }\n /** @returns The number of seconds in the Rate. */\n equals(t) {\n return this.valueOf() === new v(t).valueOf();\n }\n /**\n * Calculates the period of the Rate as a TimeSpan.\n *\n * @returns A TimeSpan representing the period of the Rate.\n */\n get period() {\n return y.seconds(1 / this.valueOf());\n }\n /**\n * Calculates the number of samples in the given TimeSpan at this rate.\n *\n * @param duration - The duration to calculate the sample count from.\n * @returns The number of samples in the given TimeSpan at this rate.\n */\n sampleCount(t) {\n return new y(t).seconds * this.valueOf();\n }\n /**\n * Calculates the number of bytes in the given TimeSpan at this rate.\n *\n * @param span - The duration to calculate the byte count from.\n * @param density - The density of the data in bytes per sample.\n * @returns The number of bytes in the given TimeSpan at this rate.\n */\n byteCount(t, e) {\n return this.sampleCount(t) * new I(e).valueOf();\n }\n /**\n * Calculates a TimeSpan given the number of samples at this rate.\n *\n * @param sampleCount - The number of samples in the span.\n * @returns A TimeSpan that corresponds to the given number of samples.\n */\n span(t) {\n return y.seconds(t / this.valueOf());\n }\n /**\n * Calculates a TimeSpan given the number of bytes at this rate.\n *\n * @param size - The number of bytes in the span.\n * @param density - The density of the data in bytes per sample.\n * @returns A TimeSpan that corresponds to the given number of bytes.\n */\n byteSpan(t, e) {\n return this.span(t.valueOf() / e.valueOf());\n }\n /**\n * Creates a Rate representing the given number of Hz.\n *\n * @param value - The number of Hz.\n * @returns A Rate representing the given number of Hz.\n */\n static hz(t) {\n return new v(t);\n }\n /**\n * Creates a Rate representing the given number of kHz.\n *\n * @param value - The number of kHz.\n * @returns A Rate representing the given number of kHz.\n */\n static khz(t) {\n return v.hz(t * 1e3);\n }\n};\n/** A zod schema for validating and transforming rates */\ns(v, \"z\", c.union([\n c.number().transform((t) => new v(t)),\n c.instanceof(Number).transform((t) => new v(t)),\n c.instanceof(v)\n]));\nlet q = v;\nconst m = class m extends Number {\n /**\n * Creates a Density representing the given number of bytes per value.\n *\n * @class\n * @param value - The number of bytes per value.\n * @returns A Density representing the given number of bytes per value.\n */\n constructor(t) {\n t instanceof Number ? super(t.valueOf()) : super(t);\n }\n length(t) {\n return t.valueOf() / this.valueOf();\n }\n size(t) {\n return new C(t * this.valueOf());\n }\n};\n/** Unknown/Invalid Density. */\ns(m, \"UNKNOWN\", new m(0)), /** 128 bits per value. */\ns(m, \"BIT128\", new m(16)), /** 64 bits per value. */\ns(m, \"BIT64\", new m(8)), /** 32 bits per value. */\ns(m, \"BIT32\", new m(4)), /** 16 bits per value. */\ns(m, \"BIT16\", new m(2)), /** 8 bits per value. */\ns(m, \"BIT8\", new m(1)), /** A zod schema for validating and transforming densities */\ns(m, \"z\", c.union([\n c.number().transform((t) => new m(t)),\n c.instanceof(Number).transform((t) => new m(t)),\n c.instanceof(m)\n]));\nlet I = m;\nconst T = class T {\n /**\n * Creates a TimeRange from the given start and end TimeStamps.\n *\n * @param start - A TimeStamp representing the start of the range.\n * @param end - A TimeStamp representing the end of the range.\n */\n constructor(t, e) {\n /**\n * The starting TimeStamp of the TimeRange.\n *\n * Note that this value is not guaranteed to be before or equal to the ending value.\n * To ensure that this is the case, call TimeRange.make_valid().\n *\n * In most cases, operations should treat start as inclusive.\n */\n s(this, \"start\");\n /**\n * The starting TimeStamp of the TimeRange.\n *\n * Note that this value is not guaranteed to be before or equal to the ending value.\n * To ensure that this is the case, call TimeRange.make_valid().\n *\n * In most cases, operations should treat end as exclusive.\n */\n s(this, \"end\");\n typeof t == \"object\" && \"start\" in t ? (this.start = new w(t.start), this.end = new w(t.end)) : (this.start = new w(t), this.end = new w(e));\n }\n /** @returns The TimeSpan occupied by the TimeRange. */\n get span() {\n return new y(this.end.valueOf() - this.start.valueOf());\n }\n /**\n * Checks if the timestamp is valid i.e. the start is before the end.\n *\n * @returns True if the TimeRange is valid.\n */\n get isValid() {\n return this.start.valueOf() <= this.end.valueOf();\n }\n /**\n * Makes sure the TimeRange is valid i.e. the start is before the end.\n *\n * @returns A TimeRange that is valid.\n */\n makeValid() {\n return this.isValid ? this : this.swap();\n }\n /**\n * Checks if the TimeRange has a zero span.\n *\n * @returns True if the TimeRange has a zero span.\n */\n get isZero() {\n return this.span.isZero;\n }\n /**\n * Creates a new TimeRange with the start and end swapped.\n *\n * @returns A TimeRange with the start and end swapped.\n */\n swap() {\n return new T(this.end, this.start);\n }\n /**\n * Checks if the TimeRange is equal to the given TimeRange.\n *\n * @param other - The TimeRange to compare to.\n * @returns True if the TimeRange is equal to the given TimeRange.\n */\n equals(t) {\n return this.start.equals(t.start) && this.end.equals(t.end);\n }\n toString() {\n return `${this.start.toString()} - ${this.end.toString()}`;\n }\n toPrettyString() {\n return `${this.start.fString(\"preciseDate\")} - ${this.span.toString()}`;\n }\n /**\n * Checks if if the two time ranges overlap. If the two time ranges are equal, returns\n * true. If the start of one range is equal to the end of the other, returns false.\n * Just follow the rule [start, end) i.e. start is inclusive and end is exclusive.\n *\n * @param other - The other TimeRange to compare to.\n * @returns True if the two TimeRanges overlap, false otherwise.\n */\n overlapsWith(t, e = y.ZERO) {\n t = t.makeValid();\n const r = this.makeValid();\n if (this.equals(t))\n return !0;\n if (t.end.equals(r.start) || r.end.equals(t.start))\n return !1;\n const u = w.max(r.start, t.start), h = w.min(r.end, t.end);\n return h.before(u) ? !1 : new y(h.sub(u)).greaterThanOrEqual(e);\n }\n roughlyEquals(t, e) {\n let r = this.start.sub(t.start).valueOf(), u = this.end.sub(t.end).valueOf();\n return r < 0 && (r = -r), u < 0 && (u = -u), r <= e.valueOf() && u <= e.valueOf();\n }\n contains(t) {\n return t instanceof T ? this.contains(t.start) && this.contains(t.end) : this.start.beforeEq(t) && this.end.after(t);\n }\n boundBy(t) {\n const e = new T(this.start, this.end);\n return t.start.after(this.start) && (e.start = t.start), t.start.after(this.end) && (e.end = t.start), t.end.before(this.end) && (e.end = t.end), t.end.before(this.start) && (e.start = t.end), e;\n }\n};\n/** The maximum possible time range. */\ns(T, \"MAX\", new T(w.MIN, w.MAX)), /** The minimum possible time range. */\ns(T, \"MIN\", new T(w.MAX, w.MIN)), /** A zero time range. */\ns(T, \"ZERO\", new T(w.ZERO, w.ZERO)), /** A zod schema for validating and transforming time ranges */\ns(T, \"z\", c.union([\n c.object({ start: w.z, end: w.z }).transform((t) => new T(t.start, t.end)),\n c.instanceof(T)\n]));\nlet U = T;\nconst n = class n extends String {\n constructor(t) {\n if (t instanceof n || typeof t == \"string\" || typeof t.valueOf() == \"string\") {\n super(t.valueOf());\n return;\n } else {\n const e = n.ARRAY_CONSTRUCTOR_DATA_TYPES.get(t.constructor.name);\n if (e != null) {\n super(e.valueOf());\n return;\n }\n }\n throw super(n.UNKNOWN.valueOf()), new Error(`unable to find data type for ${t.toString()}`);\n }\n /**\n * @returns the TypedArray constructor for the DataType.\n */\n get Array() {\n const t = n.ARRAY_CONSTRUCTORS.get(this.toString());\n if (t == null)\n throw new Error(`unable to find array constructor for ${this.valueOf()}`);\n return t;\n }\n equals(t) {\n return this.valueOf() === t.valueOf();\n }\n /** @returns a string representation of the DataType. */\n toString() {\n return this.valueOf();\n }\n get isVariable() {\n return this.equals(n.JSON) || this.equals(n.STRING);\n }\n get isNumeric() {\n return !this.isVariable && !this.equals(n.UUID);\n }\n get isInteger() {\n return this.toString().startsWith(\"int\");\n }\n get isFloat() {\n return this.toString().startsWith(\"float\");\n }\n get density() {\n const t = n.DENSITIES.get(this.toString());\n if (t == null)\n throw new Error(`unable to find density for ${this.valueOf()}`);\n return t;\n }\n /** @returns true if the data type can be cast to the other data type without loss of precision. */\n canSafelyCastTo(t) {\n return this.equals(t) ? !0 : this.isVariable && !t.isVariable || !this.isVariable && t.isVariable ? !1 : this.isFloat && t.isInteger || this.isInteger && t.isFloat ? this.density.valueOf() < t.density.valueOf() : this.isFloat && t.isFloat || this.isInteger && t.isInteger ? this.density.valueOf() <= t.density.valueOf() : !1;\n }\n /** @returns true if the data type can be cast to the other data type, even if there is a loss of precision. */\n canCastTo(t) {\n return this.isNumeric && t.isNumeric ? !0 : this.equals(t);\n }\n /**\n * Checks whether the given TypedArray is of the same type as the DataType.\n *\n * @param array - The TypedArray to check.\n * @returns True if the TypedArray is of the same type as the DataType.\n */\n checkArray(t) {\n return t.constructor === this.Array;\n }\n toJSON() {\n return this.toString();\n }\n get usesBigInt() {\n return n.BIG_INT_TYPES.some((t) => t.equals(this));\n }\n};\n/** Represents an Unknown/Invalid DataType. */\ns(n, \"UNKNOWN\", new n(\"unknown\")), /** Represents a 64-bit floating point value. */\ns(n, \"FLOAT64\", new n(\"float64\")), /** Represents a 32-bit floating point value. */\ns(n, \"FLOAT32\", new n(\"float32\")), /** Represents a 64-bit signed integer value. */\ns(n, \"INT64\", new n(\"int64\")), /** Represents a 32-bit signed integer value. */\ns(n, \"INT32\", new n(\"int32\")), /** Represents a 16-bit signed integer value. */\ns(n, \"INT16\", new n(\"int16\")), /** Represents a 8-bit signed integer value. */\ns(n, \"INT8\", new n(\"int8\")), /** Represents a 64-bit unsigned integer value. */\ns(n, \"UINT64\", new n(\"uint64\")), /** Represents a 32-bit unsigned integer value. */\ns(n, \"UINT32\", new n(\"uint32\")), /** Represents a 16-bit unsigned integer value. */\ns(n, \"UINT16\", new n(\"uint16\")), /** Represents a 8-bit unsigned integer value. */\ns(n, \"UINT8\", new n(\"uint8\")), /** Represents a boolean value. Alias for UINT8. */\ns(n, \"BOOLEAN\", n.UINT8), /** Represents a 64-bit unix epoch. */\ns(n, \"TIMESTAMP\", new n(\"timestamp\")), /** Represents a UUID data type */\ns(n, \"UUID\", new n(\"uuid\")), /** Represents a string data type. Strings have an unknown density, and are separate\n * by a newline character. */\ns(n, \"STRING\", new n(\"string\")), /** Represents a JSON data type. JSON has an unknown density, and is separated by a\n * newline character. */\ns(n, \"JSON\", new n(\"json\")), s(n, \"ARRAY_CONSTRUCTORS\", /* @__PURE__ */ new Map([\n [n.UINT8.toString(), Uint8Array],\n [n.UINT16.toString(), Uint16Array],\n [n.UINT32.toString(), Uint32Array],\n [n.UINT64.toString(), BigUint64Array],\n [n.FLOAT32.toString(), Float32Array],\n [n.FLOAT64.toString(), Float64Array],\n [n.INT8.toString(), Int8Array],\n [n.INT16.toString(), Int16Array],\n [n.INT32.toString(), Int32Array],\n [n.INT64.toString(), BigInt64Array],\n [n.TIMESTAMP.toString(), BigInt64Array],\n [n.STRING.toString(), Uint8Array],\n [n.JSON.toString(), Uint8Array],\n [n.UUID.toString(), Uint8Array]\n])), s(n, \"ARRAY_CONSTRUCTOR_DATA_TYPES\", /* @__PURE__ */ new Map([\n [Uint8Array.name, n.UINT8],\n [Uint16Array.name, n.UINT16],\n [Uint32Array.name, n.UINT32],\n [BigUint64Array.name, n.UINT64],\n [Float32Array.name, n.FLOAT32],\n [Float64Array.name, n.FLOAT64],\n [Int8Array.name, n.INT8],\n [Int16Array.name, n.INT16],\n [Int32Array.name, n.INT32],\n [BigInt64Array.name, n.INT64]\n])), s(n, \"DENSITIES\", /* @__PURE__ */ new Map([\n [n.UINT8.toString(), I.BIT8],\n [n.UINT16.toString(), I.BIT16],\n [n.UINT32.toString(), I.BIT32],\n [n.UINT64.toString(), I.BIT64],\n [n.FLOAT32.toString(), I.BIT32],\n [n.FLOAT64.toString(), I.BIT64],\n [n.INT8.toString(), I.BIT8],\n [n.INT16.toString(), I.BIT16],\n [n.INT32.toString(), I.BIT32],\n [n.INT64.toString(), I.BIT64],\n [n.TIMESTAMP.toString(), I.BIT64],\n [n.STRING.toString(), I.UNKNOWN],\n [n.JSON.toString(), I.UNKNOWN],\n [n.UUID.toString(), I.BIT128]\n])), /** All the data types. */\ns(n, \"ALL\", [\n n.UNKNOWN,\n n.FLOAT64,\n n.FLOAT32,\n n.INT64,\n n.INT32,\n n.INT16,\n n.INT8,\n n.UINT64,\n n.UINT32,\n n.UINT16,\n n.UINT8,\n n.TIMESTAMP,\n n.UUID,\n n.STRING,\n n.JSON\n]), s(n, \"BIG_INT_TYPES\", [n.INT64, n.UINT64, n.TIMESTAMP]), /** A zod schema for a DataType. */\ns(n, \"z\", c.union([\n c.string().transform((t) => new n(t)),\n c.instanceof(n)\n]));\nlet g = n;\nconst l = class l extends Number {\n constructor(t) {\n super(t.valueOf());\n }\n /** @returns true if the Size is larger than the other size. */\n largerThan(t) {\n return this.valueOf() > t.valueOf();\n }\n /** @returns true if the Size is smaller than the other sisze. */\n smallerThan(t) {\n return this.valueOf() < t.valueOf();\n }\n add(t) {\n return l.bytes(this.valueOf() + t.valueOf());\n }\n sub(t) {\n return l.bytes(this.valueOf() - t.valueOf());\n }\n truncate(t) {\n return new l(Math.trunc(this.valueOf() / t.valueOf()) * t.valueOf());\n }\n remainder(t) {\n return l.bytes(this.valueOf() % t.valueOf());\n }\n get gigabytes() {\n return this.valueOf() / l.GIGABYTE.valueOf();\n }\n get megabytes() {\n return this.valueOf() / l.MEGABYTE.valueOf();\n }\n get kilobytes() {\n return this.valueOf() / l.KILOBYTE.valueOf();\n }\n get terabytes() {\n return this.valueOf() / l.TERABYTE.valueOf();\n }\n toString() {\n const t = this.truncate(l.TERABYTE), e = this.truncate(l.GIGABYTE), r = this.truncate(l.MEGABYTE), u = this.truncate(l.KILOBYTE), h = this.truncate(l.BYTE), d = t, S = e.sub(t), O = r.sub(e), b = u.sub(r), p = h.sub(u);\n let o = \"\";\n return d.isZero || (o += `${d.terabytes}TB `), S.isZero || (o += `${S.gigabytes}GB `), O.isZero || (o += `${O.megabytes}MB `), b.isZero || (o += `${b.kilobytes}KB `), (!p.isZero || o === \"\") && (o += `${p.valueOf()}B`), o.trim();\n }\n /**\n * Creates a Size from the given number of bytes.\n *\n * @param value - The number of bytes.\n * @returns A Size representing the given number of bytes.\n */\n static bytes(t = 1) {\n return new l(t);\n }\n /**\n * Creates a Size from the given number if kilobytes.\n *\n * @param value - The number of kilobytes.\n * @returns A Size representing the given number of kilobytes.\n */\n static kilobytes(t = 1) {\n return l.bytes(t.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of megabytes.\n *\n * @param value - The number of megabytes.\n * @returns A Size representing the given number of megabytes.\n */\n static megabytes(t = 1) {\n return l.kilobytes(t.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of gigabytes.\n *\n * @param value - The number of gigabytes.\n * @returns A Size representing the given number of gigabytes.\n */\n static gigabytes(t = 1) {\n return l.megabytes(t.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of terabytes.\n *\n * @param value - The number of terabytes.\n * @returns A Size representing the given number of terabytes.\n */\n static terabytes(t) {\n return l.gigabytes(t.valueOf() * 1e3);\n }\n get isZero() {\n return this.valueOf() === 0;\n }\n};\n/** A single byte */\ns(l, \"BYTE\", new l(1)), /** A kilobyte */\ns(l, \"KILOBYTE\", l.kilobytes(1)), /** A megabyte */\ns(l, \"MEGABYTE\", l.megabytes(1)), /** A gigabyte */\ns(l, \"GIGABYTE\", l.gigabytes(1)), /** A terabyte. */\ns(l, \"TERABYTE\", l.terabytes(1)), /** The zero value for Size */\ns(l, \"ZERO\", new l(0)), /** A zod schema for a Size. */\ns(l, \"z\", c.union([\n c.number().transform((t) => new l(t)),\n c.instanceof(l)\n]));\nlet C = l;\nconst ft = c.union([\n c.instanceof(Uint8Array),\n c.instanceof(Uint16Array),\n c.instanceof(Uint32Array),\n c.instanceof(BigUint64Array),\n c.instanceof(Float32Array),\n c.instanceof(Float64Array),\n c.instanceof(Int8Array),\n c.instanceof(Int16Array),\n c.instanceof(Int32Array),\n c.instanceof(BigInt64Array)\n]), F = (f) => {\n const t = typeof f;\n return t === \"string\" || t === \"number\" || t === \"boolean\" || t === \"bigint\" || f instanceof w || f instanceof y || f instanceof Date;\n}, k = (f, t, e, r = 0) => f.usesBigInt && !t.usesBigInt ? Number(e) - Number(r) : !f.usesBigInt && t.usesBigInt ? BigInt(e) - BigInt(r) : R(e, -r), J = (f) => f == null ? !1 : Array.isArray(f) || f instanceof ArrayBuffer || ArrayBuffer.isView(f) && !(f instanceof DataView) || f instanceof N ? !0 : F(f), E = -1;\nclass N {\n constructor(t) {\n s(this, \"key\", \"\");\n s(this, \"isSynnaxSeries\", !0);\n /** The data type of the array */\n s(this, \"dataType\");\n /**\n * A sample offset that can be used to shift the values of all samples upwards or\n * downwards. Typically used to convert arrays to lower precision while preserving\n * the relative range of actual values.\n */\n s(this, \"sampleOffset\");\n /**\n * Stores information about the buffer state of this array into a WebGL buffer.\n */\n s(this, \"gl\");\n /** The underlying data. */\n s(this, \"_data\");\n s(this, \"_timeRange\");\n s(this, \"alignment\", 0n);\n /** A cached minimum value. */\n s(this, \"_cachedMin\");\n /** A cached maximum value. */\n s(this, \"_cachedMax\");\n /** The write position of the buffer. */\n s(this, \"writePos\", E);\n /** Tracks the number of entities currently using this array. */\n s(this, \"_refCount\", 0);\n s(this, \"_cachedLength\");\n J(t) && (t = { data: t });\n const {\n dataType: e,\n timeRange: r,\n sampleOffset: u = 0,\n glBufferUsage: h = \"static\",\n alignment: d = 0n,\n key: S = Z()\n } = t, { data: O } = t;\n if (O instanceof N || typeof O == \"object\" && \"isSynnaxSeries\" in O && O.isSynnaxSeries === !0) {\n const o = O;\n this.key = o.key, this.dataType = o.dataType, this.sampleOffset = o.sampleOffset, this.gl = o.gl, this._data = o._data, this._timeRange = o._timeRange, this.alignment = o.alignment, this._cachedMin = o._cachedMin, this._cachedMax = o._cachedMax, this.writePos = o.writePos, this._refCount = o._refCount, this._cachedLength = o._cachedLength;\n return;\n }\n const b = F(O), p = Array.isArray(O);\n if (e != null)\n this.dataType = new g(e);\n else {\n if (O instanceof ArrayBuffer)\n throw new Error(\n \"cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.\"\n );\n if (p || b) {\n let o = O;\n if (!b) {\n if (O.length === 0)\n throw new Error(\n \"cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.\"\n );\n o = O[0];\n }\n if (typeof o == \"string\")\n this.dataType = g.STRING;\n else if (typeof o == \"number\")\n this.dataType = g.FLOAT64;\n else if (typeof o == \"bigint\")\n this.dataType = g.INT64;\n else if (typeof o == \"boolean\")\n this.dataType = g.BOOLEAN;\n else if (o instanceof w || o instanceof Date || o instanceof w)\n this.dataType = g.TIMESTAMP;\n else if (typeof o == \"object\")\n this.dataType = g.JSON;\n else\n throw new Error(\n `cannot infer data type of ${typeof o} when constructing a Series from a JS array`\n );\n } else\n this.dataType = new g(O);\n }\n if (!p && !b)\n this._data = O;\n else {\n let o = b ? [O] : O;\n const M = o[0];\n (M instanceof w || M instanceof Date || M instanceof y) && (o = o.map((B) => new w(B).valueOf())), this.dataType.equals(g.STRING) ? (this._cachedLength = o.length, this._data = new TextEncoder().encode(o.join(`\n`) + `\n`)) : this.dataType.equals(g.JSON) ? (this._cachedLength = o.length, this._data = new TextEncoder().encode(\n o.map((B) => JSON.stringify(B)).join(`\n`) + `\n`\n )) : this._data = new this.dataType.Array(o).buffer;\n }\n this.key = S, this.alignment = d, this.sampleOffset = u ?? 0, this._timeRange = r, this.gl = {\n control: null,\n buffer: null,\n prevBuffer: 0,\n bufferUsage: h\n };\n }\n static alloc({ capacity: t, dataType: e, ...r }) {\n if (t === 0)\n throw new Error(\"[Series] - cannot allocate an array of length 0\");\n const u = new new g(e).Array(t), h = new N({\n data: u.buffer,\n dataType: e,\n ...r\n });\n return h.writePos = 0, h;\n }\n static generateTimestamps(t, e, r) {\n const u = r.spanRange(e.span(t)), h = new BigInt64Array(t);\n for (let d = 0; d < t; d++)\n h[d] = BigInt(r.add(e.span(d)).valueOf());\n return new N({ data: h, dataType: g.TIMESTAMP, timeRange: u });\n }\n get refCount() {\n return this._refCount;\n }\n static fromStrings(t, e) {\n const r = new TextEncoder().encode(t.join(`\n`) + `\n`);\n return new N({ data: r, dataType: g.STRING, timeRange: e });\n }\n static fromJSON(t, e) {\n const r = new TextEncoder().encode(\n t.map((u) => JSON.stringify(u)).join(`\n`) + `\n`\n );\n return new N({ data: r, dataType: g.JSON, timeRange: e });\n }\n acquire(t) {\n this._refCount++, t != null && this.updateGLBuffer(t);\n }\n release() {\n if (this._refCount--, this._refCount === 0 && this.gl.control != null)\n this.maybeGarbageCollectGLBuffer(this.gl.control);\n else if (this._refCount < 0)\n throw new Error(\"cannot release an array with a negative reference count\");\n }\n /**\n * Writes the given series to this series. If the series being written exceeds the\n * remaining of series being written to, only the portion that fits will be written.\n * @param other the series to write to this series. The data type of the series written\n * must be the same as the data type of the series being written to.\n * @returns the number of samples written. If the entire series fits, this value is\n * equal to the length of the series being written.\n */\n write(t) {\n if (!t.dataType.equals(this.dataType))\n throw new Error(\"buffer must be of the same type as this array\");\n if (this.writePos === E)\n return 0;\n const e = this.capacity - this.writePos, r = e < t.length ? t.slice(0, e) : t;\n return this.underlyingData.set(r.data, this.writePos), this.maybeRecomputeMinMax(r), this._cachedLength = void 0, this.writePos += r.length, r.length;\n }\n /** @returns the underlying buffer backing this array. */\n get buffer() {\n return this._data;\n }\n get underlyingData() {\n return new this.dataType.Array(this._data);\n }\n /** @returns a native typed array with the proper data type. */\n get data() {\n return this.writePos === E ? this.underlyingData : new this.dataType.Array(this._data, 0, this.writePos);\n }\n toStrings() {\n if (!this.dataType.equals(g.STRING))\n throw new Error(\"cannot convert non-string series to strings\");\n return new TextDecoder().decode(this.buffer).split(`\n`).slice(0, -1);\n }\n toUUIDs() {\n if (!this.dataType.equals(g.UUID))\n throw new Error(\"cannot convert non-uuid series to uuids\");\n const t = g.UUID.density.valueOf(), e = Array(this.length);\n for (let r = 0; r < this.length; r++) {\n const u = this.buffer.slice(r * t, (r + 1) * t), h = Array.from(new Uint8Array(u), (d) => d.toString(16).padStart(2, \"0\")).join(\"\").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, \"$1-$2-$3-$4-$5\");\n e[r] = h;\n }\n return e;\n }\n parseJSON(t) {\n if (!this.dataType.equals(g.JSON))\n throw new Error(\"cannot convert non-string series to strings\");\n return new TextDecoder().decode(this.buffer).split(`\n`).slice(0, -1).map((e) => t.parse(L(JSON.parse(e))));\n }\n /** @returns the time range of this array. */\n get timeRange() {\n if (this._timeRange == null)\n throw new Error(\"time range not set on series\");\n return this._timeRange;\n }\n /** @returns the capacity of the series in bytes. */\n get byteCapacity() {\n return new C(this.buffer.byteLength);\n }\n /** @returns the capacity of the series in samples. */\n get capacity() {\n return this.dataType.density.length(this.byteCapacity);\n }\n /** @returns the length of the series in bytes. */\n get byteLength() {\n return this.writePos === E ? this.byteCapacity : this.dataType.density.size(this.writePos);\n }\n /** @returns the number of samples in this array. */\n get length() {\n return this._cachedLength != null ? this._cachedLength : this.dataType.isVariable ? this.calculateCachedLength() : this.writePos === E ? this.data.length : this.writePos;\n }\n calculateCachedLength() {\n if (!this.dataType.isVariable)\n throw new Error(\"cannot calculate length of a non-variable length data type\");\n let t = 0;\n return this.data.forEach((e) => {\n e === 10 && t++;\n }), this._cachedLength = t, t;\n }\n /**\n * Creates a new array with a different data type.\n * @param target the data type to convert to.\n * @param sampleOffset an offset to apply to each sample. This can help with precision\n * issues when converting between data types.\n *\n * WARNING: This method is expensive and copies the entire underlying array. There\n * also may be untimely precision issues when converting between data types.\n */\n convert(t, e = 0) {\n if (this.dataType.equals(t))\n return this;\n const r = new t.Array(this.length);\n for (let u = 0; u < this.length; u++)\n r[u] = k(this.dataType, t, this.data[u], e);\n return new N({\n data: r.buffer,\n dataType: t,\n timeRange: this._timeRange,\n sampleOffset: e,\n glBufferUsage: this.gl.bufferUsage,\n alignment: this.alignment\n });\n }\n calcRawMax() {\n if (this.length === 0)\n return -1 / 0;\n if (this.dataType.equals(g.TIMESTAMP))\n this._cachedMax = this.data[this.data.length - 1];\n else if (this.dataType.usesBigInt) {\n const t = this.data;\n this._cachedMax = t.reduce((e, r) => e > r ? e : r);\n } else {\n const t = this.data;\n this._cachedMax = t.reduce((e, r) => e > r ? e : r);\n }\n return this._cachedMax;\n }\n /** @returns the maximum value in the array */\n get max() {\n if (this.dataType.isVariable)\n throw new Error(\"cannot calculate maximum on a variable length data type\");\n return this.writePos === 0 ? -1 / 0 : (this._cachedMax == null && (this._cachedMax = this.calcRawMax()), R(this._cachedMax, this.sampleOffset));\n }\n calcRawMin() {\n if (this.length === 0)\n return 1 / 0;\n if (this.dataType.equals(g.TIMESTAMP))\n this._cachedMin = this.data[0];\n else if (this.dataType.usesBigInt) {\n const t = this.data;\n this._cachedMin = t.reduce((e, r) => e < r ? e : r);\n } else {\n const t = this.data;\n this._cachedMin = t.reduce((e, r) => e < r ? e : r);\n }\n return this._cachedMin;\n }\n /** @returns the minimum value in the array */\n get min() {\n if (this.dataType.isVariable)\n throw new Error(\"cannot calculate minimum on a variable length data type\");\n return this.writePos === 0 ? 1 / 0 : (this._cachedMin == null && (this._cachedMin = this.calcRawMin()), R(this._cachedMin, this.sampleOffset));\n }\n /** @returns the bounds of this array. */\n get bounds() {\n return D(Number(this.min), Number(this.max));\n }\n maybeRecomputeMinMax(t) {\n if (this._cachedMin != null) {\n const e = t._cachedMin ?? t.calcRawMin();\n e < this._cachedMin && (this._cachedMin = e);\n }\n if (this._cachedMax != null) {\n const e = t._cachedMax ?? t.calcRawMax();\n e > this._cachedMax && (this._cachedMax = e);\n }\n }\n enrich() {\n this.max, this.min;\n }\n get range() {\n return R(this.max, -this.min);\n }\n at(t, e) {\n if (this.dataType.isVariable)\n return this.atVariable(t, e ?? !1);\n t < 0 && (t = this.length + t);\n const r = this.data[t];\n if (r == null) {\n if (e === !0)\n throw new Error(`[series] - no value at index ${t}`);\n return;\n }\n return R(r, this.sampleOffset);\n }\n atVariable(t, e) {\n t < 0 && (t = this.length + t);\n let r = 0, u = 0;\n for (let d = 0; d < this.data.length; d++)\n if (this.data[d] === 10) {\n if (t === 0) {\n u = d;\n break;\n }\n r = d + 1, t--;\n }\n if (u === 0 && (u = this.data.length), r >= u || t > 0) {\n if (e)\n throw new Error(`[series] - no value at index ${t}`);\n return;\n }\n const h = this.data.slice(r, u);\n return this.dataType.equals(g.STRING) ? new TextDecoder().decode(h) : L(\n JSON.parse(new TextDecoder().decode(h))\n );\n }\n /**\n * @returns the index of the first sample that is greater than or equal to the given value.\n * The underlying array must be sorted. If it is not, the behavior of this method is undefined.\n * @param value the value to search for.\n */\n binarySearch(t) {\n let e = 0, r = this.length - 1;\n const u = G(t);\n for (; e <= r; ) {\n const h = Math.floor((e + r) / 2), d = u(this.at(h, !0), t);\n if (d === 0)\n return h;\n d < 0 ? e = h + 1 : r = h - 1;\n }\n return e;\n }\n updateGLBuffer(t) {\n if (this.gl.control = t, !this.dataType.equals(g.FLOAT32))\n throw new Error(\"Only FLOAT32 arrays can be used in WebGL\");\n const { buffer: e, bufferUsage: r, prevBuffer: u } = this.gl;\n if (e == null && (this.gl.buffer = t.createBuffer()), this.writePos !== u)\n if (t.bindBuffer(t.ARRAY_BUFFER, this.gl.buffer), this.writePos !== E) {\n u === 0 && t.bufferData(t.ARRAY_BUFFER, this.byteCapacity.valueOf(), t.STATIC_DRAW);\n const h = this.dataType.density.size(u).valueOf(), d = this.underlyingData.slice(this.gl.prevBuffer, this.writePos);\n t.bufferSubData(t.ARRAY_BUFFER, h, d.buffer), this.gl.prevBuffer = this.writePos;\n } else\n t.bufferData(\n t.ARRAY_BUFFER,\n this.buffer,\n r === \"static\" ? t.STATIC_DRAW : t.DYNAMIC_DRAW\n ), this.gl.prevBuffer = E;\n }\n as(t) {\n if (t === \"string\") {\n if (!this.dataType.equals(g.STRING))\n throw new Error(\n `cannot convert series of type ${this.dataType.toString()} to string`\n );\n return this;\n }\n if (t === \"number\") {\n if (!this.dataType.isNumeric)\n throw new Error(\n `cannot convert series of type ${this.dataType.toString()} to number`\n );\n return this;\n }\n if (t === \"bigint\") {\n if (!this.dataType.equals(g.INT64))\n throw new Error(\n `cannot convert series of type ${this.dataType.toString()} to bigint`\n );\n return this;\n }\n throw new Error(`cannot convert series to ${t}`);\n }\n get digest() {\n var t;\n return {\n key: this.key,\n dataType: this.dataType.toString(),\n sampleOffset: this.sampleOffset,\n alignment: this.alignmentBounds,\n timeRange: (t = this._timeRange) == null ? void 0 : t.toString(),\n length: this.length,\n capacity: this.capacity\n };\n }\n get memInfo() {\n return {\n key: this.key,\n length: this.length,\n byteLength: this.byteLength,\n glBuffer: this.gl.buffer != null\n };\n }\n get alignmentBounds() {\n return D(this.alignment, this.alignment + BigInt(this.length));\n }\n maybeGarbageCollectGLBuffer(t) {\n this.gl.buffer != null && (t.deleteBuffer(this.gl.buffer), this.gl.buffer = null, this.gl.prevBuffer = 0, this.gl.control = null);\n }\n get glBuffer() {\n if (this.gl.buffer == null)\n throw new Error(\"gl buffer not initialized\");\n return this.gl.prevBuffer !== this.writePos && console.warn(\"buffer not updated\"), this.gl.buffer;\n }\n [Symbol.iterator]() {\n if (this.dataType.isVariable) {\n const t = new W(this);\n return this.dataType.equals(g.JSON) ? new K(t) : t;\n }\n return new j(this);\n }\n slice(t, e) {\n if (t <= 0 && (e == null || e >= this.length))\n return this;\n const r = this.data.slice(t, e);\n return new N({\n data: r,\n dataType: this.dataType,\n timeRange: this._timeRange,\n sampleOffset: this.sampleOffset,\n glBufferUsage: this.gl.bufferUsage,\n alignment: this.alignment + BigInt(t)\n });\n }\n reAlign(t) {\n return new N({\n data: this.buffer,\n dataType: this.dataType,\n timeRange: U.ZERO,\n sampleOffset: this.sampleOffset,\n glBufferUsage: \"static\",\n alignment: t\n });\n }\n}\nclass W {\n constructor(t) {\n s(this, \"series\");\n s(this, \"index\");\n s(this, \"decoder\");\n if (!t.dataType.isVariable)\n throw new Error(\n \"cannot create a variable series iterator for a non-variable series\"\n );\n this.series = t, this.index = 0, this.decoder = new TextDecoder();\n }\n next() {\n const t = this.index, e = this.series.data;\n for (; this.index < e.length && e[this.index] !== 10; )\n this.index++;\n const r = this.index;\n return t === r ? { done: !0, value: void 0 } : (this.index++, { done: !1, value: this.decoder.decode(this.series.buffer.slice(t, r)) });\n }\n [Symbol.iterator]() {\n return this;\n }\n}\nvar X;\nclass K {\n constructor(t) {\n s(this, \"wrapped\");\n s(this, X, \"JSONSeriesIterator\");\n this.wrapped = t;\n }\n next() {\n const t = this.wrapped.next();\n return t.done === !0 ? { done: !0, value: void 0 } : { done: !1, value: L(JSON.parse(t.value)) };\n }\n [Symbol.iterator]() {\n return this;\n }\n}\nX = Symbol.toStringTag;\nvar z;\nclass j {\n constructor(t) {\n s(this, \"series\");\n s(this, \"index\");\n s(this, z, \"SeriesIterator\");\n this.series = t, this.index = 0;\n }\n next() {\n return this.index >= this.series.length ? { done: !0, value: void 0 } : {\n done: !1,\n value: this.series.at(this.index++, !0)\n };\n }\n [Symbol.iterator]() {\n return this;\n }\n}\nz = Symbol.toStringTag;\nconst R = (f, t) => typeof f == \"bigint\" && typeof t == \"bigint\" || typeof f == \"number\" && typeof t == \"number\" ? f + t : t === 0 ? f : f === 0 ? t : Number(f) + Number(t);\nclass lt {\n constructor(t) {\n s(this, \"series\");\n if (t.length !== 0) {\n const e = t[0].dataType;\n for (let r = 1; r < t.length; r++)\n if (!t[r].dataType.equals(e))\n throw new Error(\"[multi-series] - series must have the same data type\");\n }\n this.series = t;\n }\n as(t) {\n if (!new g(t).equals(this.dataType))\n throw new Error(\n `cannot convert series of type ${this.dataType.toString()} to ${t.toString()}`\n );\n return this;\n }\n get dataType() {\n return this.series.length === 0 ? g.UNKNOWN : this.series[0].dataType;\n }\n get timeRange() {\n return this.series.length === 0 ? U.ZERO : new U(\n this.series[0].timeRange.start,\n this.series[this.series.length - 1].timeRange.end\n );\n }\n push(t) {\n this.series.push(t);\n }\n get length() {\n return this.series.reduce((t, e) => t + e.length, 0);\n }\n at(t, e = !1) {\n t < 0 && (t = this.length + t);\n for (const r of this.series) {\n if (t < r.length)\n return r.at(t, e);\n t -= r.length;\n }\n if (e)\n throw new Error(`[series] - no value at index ${t}`);\n }\n get byteLength() {\n return new C(this.series.reduce((t, e) => t + e.byteLength.valueOf(), 0));\n }\n get data() {\n const t = new this.dataType.Array(this.length);\n let e = 0;\n for (const r of this.series)\n t.set(r.data, e), e += r.length;\n return new this.dataType.Array(t);\n }\n [Symbol.iterator]() {\n return this.series.length === 0 ? {\n next() {\n return { done: !0, value: void 0 };\n }\n } : new H(this.series);\n }\n}\nvar Q;\nclass H {\n constructor(t) {\n s(this, \"series\");\n s(this, \"seriesIndex\");\n s(this, \"internal\");\n s(this, Q, \"MultiSeriesIterator\");\n this.series = t, this.seriesIndex = 0, this.internal = t[0][Symbol.iterator]();\n }\n next() {\n const t = this.internal.next();\n return t.done === !1 ? t : this.seriesIndex === this.series.length - 1 ? { done: !0, value: void 0 } : (this.internal = this.series[++this.seriesIndex][Symbol.iterator](), this.next());\n }\n [Symbol.iterator]() {\n return this;\n }\n}\nQ = Symbol.toStringTag;\nexport {\n g as DataType,\n I as Density,\n lt as MultiSeries,\n q as Rate,\n N as Series,\n C as Size,\n U as TimeRange,\n y as TimeSpan,\n w as TimeStamp,\n R as addSamples,\n k as convertDataType,\n J as isCrudeSeries,\n F as isTelemValue,\n ft as typedArrayZ\n};\n//# sourceMappingURL=telem.js.map\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { DataType, Rate } from \"@synnaxlabs/x/telem\";\nimport { z } from \"zod\";\n\nexport const keyZ = z.number();\nexport type Key = number;\nexport type Keys = number[];\nexport type Name = string;\nexport type Names = string[];\nexport type KeyOrName = Key | Name;\nexport type KeysOrNames = Keys | Names;\nexport type Params = Key | Name | Keys | Names;\n\nexport const payload = z.object({\n name: z.string(),\n key: z.number(),\n rate: Rate.z,\n dataType: DataType.z,\n leaseholder: z.number(),\n index: z.number(),\n isIndex: z.boolean(),\n alias: z.string().optional(),\n});\n\nexport type Payload = z.infer<typeof payload>;\n\nexport const newPayload = payload.extend({\n key: z.number().optional(),\n leaseholder: z.number().optional(),\n index: z.number().optional(),\n rate: Rate.z.optional().default(0),\n isIndex: z.boolean().optional(),\n virtual: z.boolean().optional().default(false),\n});\n\nexport type NewPayload = z.input<typeof newPayload>;\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { z } from \"zod\";\n\nimport {\n type Payload,\n payload,\n newPayload,\n type NewPayload,\n keyZ,\n} from \"@/channel/payload\";\n\nconst createReqZ = z.object({ channels: newPayload.array() });\nconst createResZ = z.object({ channels: payload.array() });\n\nconst deleteReqZ = z.object({\n keys: keyZ.array().optional(),\n names: z.string().array().optional(),\n});\nconst deleteResZ = z.object({});\n\nconst CREATE_ENDPOINT = \"/channel/create\";\nconst DELETE_ENDPOINT = \"/channel/delete\";\n\nexport type DeleteProps = z.input<typeof deleteReqZ>;\n\nexport class Writer {\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async create(channels: NewPayload[]): Promise<Payload[]> {\n return (\n await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { channels },\n createReqZ,\n createResZ,\n )\n ).channels;\n }\n\n async delete(props: DeleteProps): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_ENDPOINT,\n props,\n deleteReqZ,\n deleteResZ,\n );\n }\n}\n","const A = (r) => Array.isArray(r) ? r : [r], o = (r) => Array.isArray(r) ? r : r === null ? [] : [r];\nexport {\n o as nullToArr,\n A as toArray\n};\n//# sourceMappingURL=toArray.js.map\n","const o = (e, l) => {\n let t = null;\n return l === 0 ? e : (...u) => {\n t !== null && (clearTimeout(t), t = null), t = setTimeout(() => e(...u), l);\n };\n}, r = (e, l) => {\n let t = null;\n return l === 0 ? e : (...u) => {\n t === null && (t = setTimeout(() => {\n e(...u), t = null;\n }, l));\n };\n};\nexport {\n o as debounce,\n r as throttle\n};\n//# sourceMappingURL=debounce.js.map\n","const E_TIMEOUT = new Error('timeout while waiting for mutex to become available');\nconst E_ALREADY_LOCKED = new Error('mutex already locked');\nconst E_CANCELED = new Error('request for lock canceled');\n\nvar __awaiter$2 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nclass Semaphore {\n constructor(_value, _cancelError = E_CANCELED) {\n this._value = _value;\n this._cancelError = _cancelError;\n this._queue = [];\n this._weightedWaiters = [];\n }\n acquire(weight = 1, priority = 0) {\n if (weight <= 0)\n throw new Error(`invalid weight ${weight}: must be positive`);\n return new Promise((resolve, reject) => {\n const task = { resolve, reject, weight, priority };\n const i = findIndexFromEnd(this._queue, (other) => priority <= other.priority);\n if (i === -1 && weight <= this._value) {\n // Needs immediate dispatch, skip the queue\n this._dispatchItem(task);\n }\n else {\n this._queue.splice(i + 1, 0, task);\n }\n });\n }\n runExclusive(callback_1) {\n return __awaiter$2(this, arguments, void 0, function* (callback, weight = 1, priority = 0) {\n const [value, release] = yield this.acquire(weight, priority);\n try {\n return yield callback(value);\n }\n finally {\n release();\n }\n });\n }\n waitForUnlock(weight = 1, priority = 0) {\n if (weight <= 0)\n throw new Error(`invalid weight ${weight}: must be positive`);\n if (this._couldLockImmediately(weight, priority)) {\n return Promise.resolve();\n }\n else {\n return new Promise((resolve) => {\n if (!this._weightedWaiters[weight - 1])\n this._weightedWaiters[weight - 1] = [];\n insertSorted(this._weightedWaiters[weight - 1], { resolve, priority });\n });\n }\n }\n isLocked() {\n return this._value <= 0;\n }\n getValue() {\n return this._value;\n }\n setValue(value) {\n this._value = value;\n this._dispatchQueue();\n }\n release(weight = 1) {\n if (weight <= 0)\n throw new Error(`invalid weight ${weight}: must be positive`);\n this._value += weight;\n this._dispatchQueue();\n }\n cancel() {\n this._queue.forEach((entry) => entry.reject(this._cancelError));\n this._queue = [];\n }\n _dispatchQueue() {\n this._drainUnlockWaiters();\n while (this._queue.length > 0 && this._queue[0].weight <= this._value) {\n this._dispatchItem(this._queue.shift());\n this._drainUnlockWaiters();\n }\n }\n _dispatchItem(item) {\n const previousValue = this._value;\n this._value -= item.weight;\n item.resolve([previousValue, this._newReleaser(item.weight)]);\n }\n _newReleaser(weight) {\n let called = false;\n return () => {\n if (called)\n return;\n called = true;\n this.release(weight);\n };\n }\n _drainUnlockWaiters() {\n if (this._queue.length === 0) {\n for (let weight = this._value; weight > 0; weight--) {\n const waiters = this._weightedWaiters[weight - 1];\n if (!waiters)\n continue;\n waiters.forEach((waiter) => waiter.resolve());\n this._weightedWaiters[weight - 1] = [];\n }\n }\n else {\n const queuedPriority = this._queue[0].priority;\n for (let weight = this._value; weight > 0; weight--) {\n const waiters = this._weightedWaiters[weight - 1];\n if (!waiters)\n continue;\n const i = waiters.findIndex((waiter) => waiter.priority <= queuedPriority);\n (i === -1 ? waiters : waiters.splice(0, i))\n .forEach((waiter => waiter.resolve()));\n }\n }\n }\n _couldLockImmediately(weight, priority) {\n return (this._queue.length === 0 || this._queue[0].priority < priority) &&\n weight <= this._value;\n }\n}\nfunction insertSorted(a, v) {\n const i = findIndexFromEnd(a, (other) => v.priority <= other.priority);\n a.splice(i + 1, 0, v);\n}\nfunction findIndexFromEnd(a, predicate) {\n for (let i = a.length - 1; i >= 0; i--) {\n if (predicate(a[i])) {\n return i;\n }\n }\n return -1;\n}\n\nvar __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nclass Mutex {\n constructor(cancelError) {\n this._semaphore = new Semaphore(1, cancelError);\n }\n acquire() {\n return __awaiter$1(this, arguments, void 0, function* (priority = 0) {\n const [, releaser] = yield this._semaphore.acquire(1, priority);\n return releaser;\n });\n }\n runExclusive(callback, priority = 0) {\n return this._semaphore.runExclusive(() => callback(), 1, priority);\n }\n isLocked() {\n return this._semaphore.isLocked();\n }\n waitForUnlock(priority = 0) {\n return this._semaphore.waitForUnlock(1, priority);\n }\n release() {\n if (this._semaphore.isLocked())\n this._semaphore.release();\n }\n cancel() {\n return this._semaphore.cancel();\n }\n}\n\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nfunction withTimeout(sync, timeout, timeoutError = E_TIMEOUT) {\n return {\n acquire: (weightOrPriority, priority) => {\n let weight;\n if (isSemaphore(sync)) {\n weight = weightOrPriority;\n }\n else {\n weight = undefined;\n priority = weightOrPriority;\n }\n if (weight !== undefined && weight <= 0) {\n throw new Error(`invalid weight ${weight}: must be positive`);\n }\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let isTimeout = false;\n const handle = setTimeout(() => {\n isTimeout = true;\n reject(timeoutError);\n }, timeout);\n try {\n const ticket = yield (isSemaphore(sync)\n ? sync.acquire(weight, priority)\n : sync.acquire(priority));\n if (isTimeout) {\n const release = Array.isArray(ticket) ? ticket[1] : ticket;\n release();\n }\n else {\n clearTimeout(handle);\n resolve(ticket);\n }\n }\n catch (e) {\n if (!isTimeout) {\n clearTimeout(handle);\n reject(e);\n }\n }\n }));\n },\n runExclusive(callback, weight, priority) {\n return __awaiter(this, void 0, void 0, function* () {\n let release = () => undefined;\n try {\n const ticket = yield this.acquire(weight, priority);\n if (Array.isArray(ticket)) {\n release = ticket[1];\n return yield callback(ticket[0]);\n }\n else {\n release = ticket;\n return yield callback();\n }\n }\n finally {\n release();\n }\n });\n },\n release(weight) {\n sync.release(weight);\n },\n cancel() {\n return sync.cancel();\n },\n waitForUnlock: (weightOrPriority, priority) => {\n let weight;\n if (isSemaphore(sync)) {\n weight = weightOrPriority;\n }\n else {\n weight = undefined;\n priority = weightOrPriority;\n }\n if (weight !== undefined && weight <= 0) {\n throw new Error(`invalid weight ${weight}: must be positive`);\n }\n return new Promise((resolve, reject) => {\n const handle = setTimeout(() => reject(timeoutError), timeout);\n (isSemaphore(sync)\n ? sync.waitForUnlock(weight, priority)\n : sync.waitForUnlock(priority)).then(() => {\n clearTimeout(handle);\n resolve();\n });\n });\n },\n isLocked: () => sync.isLocked(),\n getValue: () => sync.getValue(),\n setValue: (value) => sync.setValue(value),\n };\n}\nfunction isSemaphore(sync) {\n return sync.getValue !== undefined;\n}\n\n// eslint-disable-next-lisne @typescript-eslint/explicit-module-boundary-types\nfunction tryAcquire(sync, alreadyAcquiredError = E_ALREADY_LOCKED) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return withTimeout(sync, 0, alreadyAcquiredError);\n}\n\nexport { E_ALREADY_LOCKED, E_CANCELED, E_TIMEOUT, Mutex, Semaphore, tryAcquire, withTimeout };\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n type Middleware,\n registerError,\n Unreachable,\n type ErrorPayload,\n} from \"@synnaxlabs/freighter\";\n\nconst _FREIGHTER_EXCEPTION_PREFIX = \"sy.\";\n\nexport interface Field {\n field: string;\n message: string;\n}\n\n/**\n * Raised when a validation error occurs.\n */\nexport class ValidationError extends Error {\n static readonly TYPE = _FREIGHTER_EXCEPTION_PREFIX + \"validation\";\n}\n\nexport class FieldError extends ValidationError {\n static readonly TYPE = ValidationError.TYPE + \".field\";\n readonly field: string;\n readonly message: string;\n\n constructor(field: string, message: string) {\n super(field + \": \" + message);\n this.field = field;\n this.message = message;\n }\n}\n\n/**\n * AuthError is raised when an authentication error occurs.\n */\nexport class AuthError extends Error {\n static readonly TYPE = _FREIGHTER_EXCEPTION_PREFIX + \"auth\";\n}\n\n/**\n * InvalidTokenError is raised when an authentication token is invalid.\n */\nexport class InvalidTokenError extends AuthError {\n static readonly TYPE = AuthError.TYPE + \".invalid-token\";\n}\n\n/**\n * UnexpectedError is raised when an unexpected error occurs.\n */\nexport class UnexpectedError extends Error {\n static readonly TYPE = _FREIGHTER_EXCEPTION_PREFIX + \"unexpected\";\n\n constructor(message: string) {\n super(`\n Unexpected error encountered:\n\n ${message}\n\n Please report this to the Synnax team.\n `);\n }\n}\n\n/**\n * QueryError is raised when a query error occurs.\n */\nexport class QueryError extends Error {\n static readonly TYPE = _FREIGHTER_EXCEPTION_PREFIX + \"query\";\n}\n\nexport class NotFoundError extends QueryError {\n static readonly TYPE = QueryError.TYPE + \".not_found\";\n}\n\nexport class MultipleFoundError extends QueryError {\n static readonly TYPE = QueryError.TYPE + \".multiple_results\";\n}\n\n/**\n * RouteError is raised when a routing error occurs.\n */\nexport class RouteError extends Error {\n static readonly TYPE = _FREIGHTER_EXCEPTION_PREFIX + \"route\";\n path: string;\n\n constructor(message: string, path: string) {\n super(message);\n this.path = path;\n }\n}\n\n/**\n * Raised when time-series data is not contiguous.\n */\nexport class ContiguityError extends Error {}\n\nconst decode = (payload: ErrorPayload): Error | null => {\n if (!payload.type.startsWith(_FREIGHTER_EXCEPTION_PREFIX)) return null;\n if (payload.type.startsWith(ValidationError.TYPE)) {\n if (payload.type === FieldError.TYPE) {\n const values = payload.data.split(\": \");\n if (values.length < 2) {\n return new ValidationError(payload.data);\n }\n return new FieldError(values[0], values[1]);\n }\n return new ValidationError(payload.data);\n }\n\n if (payload.type.startsWith(AuthError.TYPE)) {\n if (payload.type.startsWith(InvalidTokenError.TYPE))\n return new InvalidTokenError(payload.data);\n return new AuthError(payload.data);\n }\n\n if (payload.type.startsWith(UnexpectedError.TYPE)) {\n return new UnexpectedError(payload.data);\n }\n\n if (payload.type.startsWith(QueryError.TYPE)) {\n if (payload.type.startsWith(NotFoundError.TYPE))\n return new NotFoundError(payload.data);\n if (payload.type.startsWith(MultipleFoundError.TYPE))\n return new MultipleFoundError(payload.data);\n return new QueryError(payload.data);\n }\n\n if (payload.type.startsWith(RouteError.TYPE)) {\n return new RouteError(payload.data, payload.data);\n }\n\n return new UnexpectedError(payload.data);\n};\n\nconst encode = (): ErrorPayload => {\n throw new Error(\"Not implemented\");\n};\n\nregisterError({ encode, decode });\n\nexport const validateFieldNotNull = (\n key: string,\n value: unknown,\n message: string = \"must be provided\",\n): void => {\n if (value == null) throw new FieldError(key, message);\n};\n\nexport const errorsMiddleware: Middleware = async (ctx, next) => {\n const [res, err] = await next(ctx);\n if (err == null) return [res, err];\n if (err instanceof Unreachable)\n return [\n res,\n new Unreachable({\n message: `Cannot reach cluster at ${err.url.host}:${err.url.port}`,\n url: err.url,\n }),\n ];\n return [res, err];\n};\n","import { z as n } from \"./index-DGl1HeGK.js\";\nconst e = n.record(\n n.union([n.number(), n.string(), n.symbol()]),\n n.unknown()\n), t = (o) => Object.entries(o);\nexport {\n t as getEntries,\n e as unknownRecordZ\n};\n//# sourceMappingURL=record.js.map\n","const o = (r) => r != null && typeof r == \"object\" && !Array.isArray(r);\nexport {\n o as isObject\n};\n//# sourceMappingURL=identity.js.map\n","import { z as u } from \"./index-DGl1HeGK.js\";\nconst r = () => (\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n typeof process < \"u\" && process.versions != null && process.versions.node != null ? \"node\" : typeof window > \"u\" || window.document === void 0 ? \"webworker\" : \"browser\"\n), s = r(), t = [\"MacOS\", \"Windows\", \"Linux\", \"Docker\"], d = u.enum(t);\nlet n;\nconst c = () => {\n if (typeof window > \"u\")\n return;\n const e = window.navigator.userAgent.toLowerCase();\n if (e.includes(\"mac\"))\n return \"MacOS\";\n if (e.includes(\"win\"))\n return \"Windows\";\n if (e.includes(\"linux\"))\n return \"Linux\";\n}, l = (e = {}) => {\n const { force: o, default: i } = e;\n return o ?? n ?? (n = c(), n ?? i);\n}, w = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n OPERATING_SYSTEMS: t,\n RUNTIME: s,\n detect: r,\n getOS: l,\n osZ: d\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n w as runtime\n};\n//# sourceMappingURL=runtime.js.map\n","const n = (e) => [...new Set(e)];\nexport {\n n as unique\n};\n//# sourceMappingURL=unique.js.map\n","var l = Object.defineProperty;\nvar a = (t, r, o) => r in t ? l(t, r, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[r] = o;\nvar i = (t, r, o) => (a(t, typeof r != \"symbol\" ? r + \"\" : r, o), o);\nconst p = (...t) => t.map(e).join(\"\"), e = (t) => (t.endsWith(\"/\") || (t += \"/\"), t.startsWith(\"/\") && (t = t.slice(1)), t), u = (t) => t.endsWith(\"/\") ? t.slice(0, -1) : t, $ = (t, r = \"\") => t === null ? \"\" : \"?\" + Object.entries(t).filter(([, o]) => o == null ? !1 : Array.isArray(o) ? o.length > 0 : !0).map(([o, n]) => `${r}${o}=${n}`).join(\"&\"), s = class s {\n /**\n * @param host - The hostname or IP address of the server.\n * @param port - The port number of the server.\n * @param protocol - The protocol to use for all requests. Defaults to \"\".\n * @param pathPrefix - A path prefix to use for all requests. Defaults to \"\".\n */\n constructor({ host: r, port: o, protocol: n = \"\", pathPrefix: c = \"\" }) {\n i(this, \"protocol\");\n i(this, \"host\");\n i(this, \"port\");\n i(this, \"path\");\n this.protocol = n, this.host = r, this.port = o, this.path = e(c);\n }\n /**\n * Replaces creates a new URL with the specified properties replaced.\n * @param props - The properties to replace.\n * @returns a new URL.\n */\n replace(r) {\n return new s({\n host: r.host ?? this.host,\n port: r.port ?? this.port,\n protocol: r.protocol ?? this.protocol,\n pathPrefix: r.pathPrefix ?? this.path\n });\n }\n /**\n * Creates a new url with the given path appended to the current path.\n * @param path - the path to append to the URL.\n * @returns a new URL.\n */\n child(r) {\n return new s({\n ...this,\n pathPrefix: p(this.path, r)\n });\n }\n /** @returns a string representation of the url */\n toString() {\n return u(\n `${this.protocol}://${this.host}:${this.port}/${this.path}`\n );\n }\n};\ni(s, \"UNKNOWN\", new s({ host: \"unknown\", port: 0 }));\nlet h = s;\nexport {\n h as URL,\n $ as buildQueryString\n};\n//# sourceMappingURL=url.js.map\n","var d = Object.defineProperty;\nvar s = (n, e, t) => e in n ? d(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar o = (n, e, t) => (s(n, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nimport { t as u, a } from \"./index-GKyuv4Un.js\";\nimport { isObject as f } from \"./identity.js\";\nclass i {\n constructor() {\n o(this, \"contentType\", \"application/json\");\n o(this, \"decoder\");\n o(this, \"encoder\");\n this.decoder = new TextDecoder(), this.encoder = new TextEncoder();\n }\n encode(e) {\n return this.encoder.encode(this.encodeString(e)).buffer;\n }\n decode(e, t) {\n return this.decodeString(this.decoder.decode(e), t);\n }\n decodeString(e, t) {\n const r = u(JSON.parse(e));\n return t != null ? t.parse(r) : r;\n }\n encodeString(e) {\n return JSON.stringify(a(e), (t, r) => ArrayBuffer.isView(r) ? Array.from(r) : f(r) && \"encode_value\" in r ? typeof r.value == \"bigint\" ? r.value.toString() : r.value : typeof r == \"bigint\" ? r.toString() : r);\n }\n static registerCustomType() {\n }\n}\nconst c = new i(), l = [c], y = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ENCODERS: l,\n JSONEncoderDecoder: i,\n JSON_ECD: c\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n y as binary\n};\n//# sourceMappingURL=binary.js.map\n","var h = Object.defineProperty;\nvar l = (s, e, r) => e in s ? h(s, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : s[e] = r;\nvar n = (s, e, r) => (l(s, typeof e != \"symbol\" ? e + \"\" : e, r), r);\nclass o {\n constructor(e, r) {\n n(this, \"handlers\");\n n(this, \"transform\");\n this.transform = e, this.handlers = r ?? /* @__PURE__ */ new Map();\n }\n onChange(e) {\n return this.handlers.set(e, null), () => this.handlers.delete(e);\n }\n notify(e) {\n let r = e;\n if (this.transform != null) {\n const [t, a] = this.transform(e);\n if (!a)\n return;\n r = t;\n }\n this.handlers.forEach((t, a) => a(r));\n }\n}\nclass i {\n constructor(e) {\n n(this, \"handlers\");\n this.handlers = e ?? /* @__PURE__ */ new Map();\n }\n onChange(e) {\n return this.handlers.set(e, null), () => this.handlers.delete(e);\n }\n notify(e) {\n this.handlers.forEach((r, t) => t(e));\n }\n}\nconst d = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n BaseObserver: i,\n Observer: o\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n d as observe\n};\n//# sourceMappingURL=observe.js.map\n","import { DataType as w, Density as A, MultiSeries as R, Rate as V, Series as O, Size as _, TimeRange as j, TimeSpan as Z, TimeStamp as z, addSamples as D, convertDataType as N, isCrudeSeries as P, isTelemValue as W, typedArrayZ as C } from \"./telem.js\";\nimport { i as u } from \"./index-Bcm6lEr8.js\";\nimport { c as L, a as q, p as B } from \"./index-Bcm6lEr8.js\";\nimport { getEntries as I, unknownRecordZ as Q } from \"./record.js\";\nimport { isObject as $ } from \"./identity.js\";\nimport { runtime as H } from \"./runtime.js\";\nimport { deep as K } from \"./deep.js\";\nimport { debounce as Y, throttle as rr } from \"./debounce.js\";\nimport { c as or, s as tr } from \"./index-Cx2GASyR.js\";\nimport { unique as sr } from \"./unique.js\";\nimport { kv as ar } from \"./kv.js\";\nimport { b as pr, m as cr } from \"./index-j0nI5Ulm.js\";\nimport { b as xr } from \"./index-DCtHmiqr.js\";\nimport { dimensions as dr } from \"./dimensions.js\";\nimport { d as yr } from \"./index-8RT6Cy8l.js\";\nimport { l as gr } from \"./index-ClwaLrxu.js\";\nimport { x as hr } from \"./index-DDN3mTB_.js\";\nimport { position as Tr } from \"./position.js\";\nimport { spatial as Mr } from \"./spatial.js\";\nimport { URL as Ar, buildQueryString as Rr } from \"./url.js\";\nimport { nullToArr as Or, toArray as _r } from \"./toArray.js\";\nimport { c as Zr } from \"./index-GKyuv4Un.js\";\nimport { Search as Dr } from \"./search.js\";\nimport { RoutedWorker as Pr, TypedWorker as Wr, createMockWorkers as Cr } from \"./worker.js\";\nimport { binary as Lr } from \"./binary.js\";\nimport { observe as Br } from \"./observe.js\";\nimport { change as Ir } from \"./change.js\";\nimport { z as c } from \"./index-DGl1HeGK.js\";\nconst S = (r) => {\n if (r === void 0 || typeof r == \"string\" || typeof r == \"number\")\n return r;\n if (r.toString === void 0)\n throw new Error(\"invalid renderer\");\n return r.toString();\n}, h = (r) => Array.isArray(r) ? [...r] : typeof r == \"object\" && r !== null ? { ...r } : r, v = (r) => r ? -1 : 1, i = c.string().regex(/^\\d+\\.\\d+\\.\\d+$/), f = (r, o) => {\n const a = i.parse(r), t = i.parse(o), [e, n, m] = a.split(\".\").map(Number), [s, p, x] = t.split(\".\").map(Number);\n return e !== s ? e - s : n !== p ? n - p : m - x;\n}, d = (r, o) => u(f(r, o)), l = c.object({\n version: i\n}), y = (r) => {\n const o = Object.keys(r).sort(f).pop() ?? \"\", a = Object.keys(r).length, t = (e) => {\n if (a === 0 || d(e.version, o))\n return e;\n const n = e.version, m = r[n], s = m(e);\n return t(s);\n };\n return t;\n}, T = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n migratable: l,\n migrator: y,\n semVerZ: i\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n w as DataType,\n A as Density,\n R as MultiSeries,\n V as Rate,\n Pr as RoutedWorker,\n Dr as Search,\n O as Series,\n _ as Size,\n j as TimeRange,\n Z as TimeSpan,\n z as TimeStamp,\n Wr as TypedWorker,\n Ar as URL,\n D as addSamples,\n Lr as binary,\n pr as bounds,\n xr as box,\n Rr as buildQueryString,\n Zr as caseconv,\n Ir as change,\n or as clamp,\n L as compare,\n N as convertDataType,\n S as convertRenderV,\n Cr as createMockWorkers,\n Y as debounce,\n K as deep,\n dr as dimensions,\n yr as direction,\n I as getEntries,\n v as invert,\n P as isCrudeSeries,\n $ as isObject,\n q as isStringer,\n W as isTelemValue,\n ar as kv,\n gr as location,\n cr as math,\n T as migrate,\n Or as nullToArr,\n Br as observe,\n Tr as position,\n B as primitiveIsZero,\n H as runtime,\n tr as scale,\n h as shallowCopy,\n Mr as spatial,\n rr as throttle,\n _r as toArray,\n C as typedArrayZ,\n sr as unique,\n Q as unknownRecordZ,\n hr as xy\n};\n//# sourceMappingURL=index.js.map\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { toArray, type Primitive } from \"@synnaxlabs/x\";\n\nimport { MultipleFoundError, NotFoundError } from \"@/errors\";\n\nexport type SingleParamAnalysisResult<\n T extends Primitive,\n K extends PartialTypeNameRecord<T>,\n> = T extends any\n ? {\n single: true;\n variant: K[keyof K];\n normalized: T[];\n actual: T;\n }\n : never;\n\nexport type MultiParamAnalysisResult<\n T extends Primitive,\n K extends PartialTypeNameRecord<T>,\n> = T extends any\n ? {\n single: false;\n variant: K[keyof K];\n normalized: T[];\n actual: T[];\n }\n : never;\n\ntype TypeName<T> = T extends string\n ? \"string\"\n : T extends number\n ? \"number\"\n : T extends boolean\n ? \"boolean\"\n : T extends undefined\n ? \"undefined\"\n : T extends Function\n ? \"function\"\n : \"object\";\n\nexport type PartialTypeNameRecord<T extends Primitive> = Partial<\n Record<TypeName<T>, string>\n>;\n\nexport type ParamAnalysisResult<\n T extends Primitive,\n K extends PartialTypeNameRecord<T> = PartialTypeNameRecord<T>,\n> = SingleParamAnalysisResult<T, K> | MultiParamAnalysisResult<T, K>;\n\nexport interface AnalyzeParamsOptions {\n convertNumericStrings?: boolean;\n}\n\nexport const analyzeParams = <\n T extends Primitive = Primitive,\n K extends PartialTypeNameRecord<T> = PartialTypeNameRecord<T>,\n>(\n args: T extends any ? T | T[] : never,\n variantMap: K,\n { convertNumericStrings = true }: AnalyzeParamsOptions = {},\n): ParamAnalysisResult<T, K> => {\n const isSingle = !Array.isArray(args);\n let normal = toArray(args);\n const first = normal[0];\n const t = typeof first;\n let variant: K[keyof K];\n if (t === \"string\" && convertNumericStrings)\n if (!isNaN(parseInt(first as string)) && \"number\" in variantMap) {\n variant = variantMap.number as K[keyof K];\n normal = normal.map((n) => parseInt(n as string));\n } else variant = variantMap[t as TypeName<T>];\n else variant = variantMap[t as TypeName<T>];\n return {\n single: isSingle,\n variant,\n normalized: normal,\n actual: args,\n } as unknown as ParamAnalysisResult<T, K>;\n};\n\nexport const checkForMultipleOrNoResults = <T, R>(\n name: string,\n params: T | T[],\n results: R[],\n isSingle: boolean,\n): void => {\n if (!isSingle) return;\n if (results.length === 0)\n throw new NotFoundError(`${name} not found matching ${JSON.stringify(params)}`);\n if (results.length > 1)\n throw new MultipleFoundError(\n `Expected one ${name} matching ${JSON.stringify(params)}, but found ${results.length}`,\n );\n};\n","import { z } from \"zod\";\n\nexport const nullableArrayZ = <Z extends z.ZodTypeAny>(item: Z) =>\n z.union([z.null().transform(() => [] as z.output<Z>[]), item.array()]);\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\nimport type { UnaryClient } from \"@synnaxlabs/freighter\";\nimport { debounce } from \"@synnaxlabs/x/debounce\";\nimport { DataType } from \"@synnaxlabs/x/telem\";\nimport { Mutex } from \"async-mutex\";\nimport { z } from \"zod\";\n\nimport {\n type Key,\n type KeyOrName,\n type Keys,\n type KeysOrNames,\n type Params,\n type Payload,\n payload,\n} from \"@/channel/payload\";\nimport { QueryError } from \"@/errors\";\nimport { type ParamAnalysisResult, analyzeParams } from \"@/util/retrieve\";\nimport { nullableArrayZ } from \"@/util/zod\";\n\nconst reqZ = z.object({\n leaseholder: z.number().optional(),\n keys: z.number().array().optional(),\n names: z.string().array().optional(),\n search: z.string().optional(),\n rangeKey: z.string().optional(),\n limit: z.number().optional(),\n offset: z.number().optional(),\n dataTypes: DataType.z.array().optional(),\n notDataTypes: DataType.z.array().optional(),\n virtual: z.boolean().optional(),\n isIndex: z.boolean().optional(),\n internal: z.boolean().optional(),\n});\n\ntype Request = z.input<typeof reqZ>;\n\nexport type RetrieveOptions = Omit<Request, \"keys\" | \"names\" | \"search\">;\nexport type PageOptions = Omit<RetrieveOptions, \"offset\" | \"limit\">;\n\nconst resZ = z.object({\n channels: nullableArrayZ(payload),\n});\n\nexport const analyzeChannelParams = (\n channels: Params,\n): ParamAnalysisResult<KeyOrName, { number: \"keys\"; string: \"names\" }> =>\n analyzeParams(channels, {\n number: \"keys\",\n string: \"names\",\n });\n\nexport interface Retriever {\n retrieve: (channels: Params, opts?: RetrieveOptions) => Promise<Payload[]>;\n search: (term: string, opts?: RetrieveOptions) => Promise<Payload[]>;\n page: (offset: number, limit: number, opts?: PageOptions) => Promise<Payload[]>;\n}\n\nexport class ClusterRetriever implements Retriever {\n private static readonly ENDPOINT = \"/channel/retrieve\";\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async search(term: string, options?: RetrieveOptions): Promise<Payload[]> {\n return await this.execute({ search: term, ...options });\n }\n\n async retrieve(channels: Params, options?: RetrieveOptions): Promise<Payload[]> {\n let { variant, normalized } = analyzeChannelParams(channels);\n if (variant === \"keys\" && (normalized as Key[]).indexOf(0) !== -1)\n normalized = (normalized as Key[]).filter((k) => k !== 0);\n if (normalized.length === 0) return [];\n return await this.execute({ [variant]: normalized, ...options });\n }\n\n async page(offset: number, limit: number, options?: PageOptions): Promise<Payload[]> {\n return await this.execute({ offset, limit, ...options });\n }\n\n private async execute(request: Request): Promise<Payload[]> {\n const [res, err] = await this.client.send(\n ClusterRetriever.ENDPOINT,\n request,\n reqZ,\n resZ,\n );\n if (err != null) throw err;\n return res.channels;\n }\n}\n\nexport class CacheRetriever implements Retriever {\n private readonly cache: Map<number, Payload>;\n private readonly namesToKeys: Map<string, number>;\n private readonly wrapped: Retriever;\n\n constructor(wrapped: Retriever) {\n this.cache = new Map();\n this.namesToKeys = new Map();\n this.wrapped = wrapped;\n }\n\n async search(term: string, options?: RetrieveOptions): Promise<Payload[]> {\n return await this.wrapped.search(term, options);\n }\n\n async page(offset: number, limit: number, options?: PageOptions): Promise<Payload[]> {\n return await this.wrapped.page(offset, limit, options);\n }\n\n async retrieve(channels: Params, options?: RetrieveOptions): Promise<Payload[]> {\n const { normalized } = analyzeParams<string | number>(channels, {\n string: \"names\",\n number: \"keys\",\n });\n const results: Payload[] = [];\n const toFetch: KeysOrNames = [];\n normalized.forEach((keyOrName) => {\n const c = this.getFromCache(keyOrName);\n if (c != null) results.push(c);\n else toFetch.push(keyOrName as never);\n });\n if (toFetch.length === 0) return results;\n const fetched = await this.wrapped.retrieve(toFetch, options);\n this.updateCache(fetched);\n return results.concat(fetched);\n }\n\n private updateCache(channels: Payload[]): void {\n channels.forEach((channel) => {\n this.cache.set(channel.key, channel);\n this.namesToKeys.set(channel.name, channel.key);\n });\n }\n\n private getFromCache(channel: KeyOrName): Payload | undefined {\n const key = typeof channel === \"number\" ? channel : this.namesToKeys.get(channel);\n if (key == null) return undefined;\n return this.cache.get(key);\n }\n}\n\nexport interface PromiseFns<T> {\n resolve: (value: T) => void;\n reject: (reason?: any) => void;\n}\n\n// no interval\nexport class DebouncedBatchRetriever implements Retriever {\n private readonly mu = new Mutex();\n private readonly requests = new Map<Keys, PromiseFns<Payload[]>>();\n private readonly wrapped: Retriever;\n private readonly debouncedRun: () => void;\n\n constructor(wrapped: Retriever, deb: number) {\n this.wrapped = wrapped;\n this.debouncedRun = debounce(() => {\n void this.run();\n }, deb);\n }\n\n async search(term: string, options?: RetrieveOptions): Promise<Payload[]> {\n return await this.wrapped.search(term, options);\n }\n\n async page(\n offset: number,\n limit: number,\n options?: RetrieveOptions,\n ): Promise<Payload[]> {\n return await this.wrapped.page(offset, limit, options);\n }\n\n async retrieve(channels: Params): Promise<Payload[]> {\n const { normalized, variant } = analyzeChannelParams(channels);\n // Bypass on name fetches for now.\n if (variant === \"names\") return await this.wrapped.retrieve(normalized);\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n const a = new Promise<Payload[]>((resolve, reject) => {\n void this.mu.runExclusive(() => {\n this.requests.set(normalized as Key[], { resolve, reject });\n this.debouncedRun();\n });\n });\n return await a;\n }\n\n async run(): Promise<void> {\n await this.mu.runExclusive(async () => {\n const allKeys = new Set<Key>();\n this.requests.forEach((_, keys) => keys.forEach((k) => allKeys.add(k)));\n try {\n const channels = await this.wrapped.retrieve(Array.from(allKeys));\n this.requests.forEach((fns, keys) =>\n fns.resolve(channels.filter((c) => keys.includes(c.key))),\n );\n } catch (e) {\n this.requests.forEach((fns) => fns.reject(e));\n } finally {\n this.requests.clear();\n }\n });\n }\n}\n\nexport const retrieveRequired = async (\n r: Retriever,\n params: Params,\n): Promise<Payload[]> => {\n const { normalized } = analyzeChannelParams(params);\n const results = await r.retrieve(normalized);\n const notFound: KeyOrName[] = [];\n normalized.forEach((v) => {\n if (results.find((c) => c.name === v || c.key === v) == null) notFound.push(v);\n });\n if (notFound.length > 0)\n throw new QueryError(`Could not find channels: ${JSON.stringify(notFound)}`);\n return results;\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\nimport {\n DataType,\n Rate,\n type TypedArray,\n type CrudeDensity,\n type TimeRange,\n type CrudeTimeStamp,\n type MultiSeries,\n} from \"@synnaxlabs/x/telem\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\n\nimport {\n type Key,\n type KeyOrName,\n type Params,\n type Payload,\n payload,\n type NewPayload,\n} from \"@/channel/payload\";\nimport {\n analyzeChannelParams,\n CacheRetriever,\n ClusterRetriever,\n DebouncedBatchRetriever,\n type Retriever,\n type PageOptions,\n type RetrieveOptions,\n} from \"@/channel/retriever\";\nimport { type Writer } from \"@/channel/writer\";\nimport { MultipleFoundError, ValidationError } from \"@/errors\";\nimport { type framer } from \"@/framer\";\nimport { checkForMultipleOrNoResults } from \"@/util/retrieve\";\n\ninterface CreateOptions {\n retrieveIfNameExists?: boolean;\n}\n\n/**\n * Represents a Channel in a Synnax database. Typically, channels should not be\n * instantiated directly, but instead created via the `.channels.create` or retrieved\n * via the `.channels.retrieve` method on a Synnax client.\n *\n * Please refer to the [Synnax documentation](https://docs.synnaxlabs.com) for detailed\n * information on what channels are and how to use them.\n */\nexport class Channel {\n private readonly _frameClient: framer.Client | null;\n /**\n * A unique key identifying the channel in the Synnax database. This key is\n * automatically assigned by Synnax.\n */\n readonly key: Key;\n /**\n * A human-readable name for the channel. This name is not guaranteed to be\n * unique.\n */\n readonly name: string;\n /**\n * The rate at which the channel samples telemetry. This only applies to fixed rate\n * channels, and will be 0 if the channel is indexed.\n */\n readonly rate: Rate;\n /**\n * The data type of the channel.\n */\n readonly dataType: DataType;\n /**\n * The key of the node in the Synnax cluster that holds the 'lease' over the channel\n * i.e. it's the only node in the cluster allowed to accept writes to the channel. This\n * property is mostly for internal use.\n */\n readonly leaseholder: number;\n /**\n * The key of the index channel that this channel is associated with i.e. the channel\n * that stores its timestamps.\n */\n readonly index: Key;\n /**\n * This is set to true if the channel is an index channel, and false otherwise.\n */\n readonly isIndex: boolean;\n /**\n * An alias for the channel under a specific range. This parameter is unstable and\n * should not be relied upon in the current version of Synnax.\n */\n readonly alias: string | undefined;\n\n constructor({\n dataType,\n rate,\n name,\n leaseholder = 0,\n key = 0,\n isIndex = false,\n index = 0,\n frameClient,\n alias,\n }: NewPayload & {\n frameClient?: framer.Client;\n density?: CrudeDensity;\n }) {\n this.key = key;\n this.name = name;\n this.rate = new Rate(rate ?? 0);\n this.dataType = new DataType(dataType);\n this.leaseholder = leaseholder;\n this.index = index;\n this.isIndex = isIndex;\n this.alias = alias;\n this._frameClient = frameClient ?? null;\n }\n\n private get framer(): framer.Client {\n if (this._frameClient == null)\n throw new ValidationError(\"cannot read from a channel that has not been created\");\n return this._frameClient;\n }\n\n /**\n * Returns the payload representation of this channel i.e. a pure JS object with\n * all of the channel fields but without any methods. This is used internally for\n * network transportation, but also provided to you as a convenience.\n */\n get payload(): Payload {\n return payload.parse({\n key: this.key,\n name: this.name,\n rate: this.rate.valueOf(),\n dataType: this.dataType.valueOf(),\n leaseholder: this.leaseholder,\n index: this.index,\n isIndex: this.isIndex,\n });\n }\n\n /**\n * Reads telemetry from the channel between the two timestamps.\n *\n * @param start - The starting timestamp of the range to read from.\n * @param end - The ending timestamp of the range to read from.\n * @returns A typed array containing the retrieved\n */\n async read(tr: TimeRange): Promise<MultiSeries> {\n return await this.framer.read(tr, this.key);\n }\n\n /**\n * Writes telemetry to the channel starting at the given timestamp.\n *\n * @param start - The starting timestamp of the first sample in data.\n * @param data - THe telemetry to write to the channel.\n */\n async write(start: CrudeTimeStamp, data: TypedArray): Promise<void> {\n return await this.framer.write(start, this.key, data);\n }\n}\n\n/**\n * The core client class for executing channel operations against a Synnax\n * cluster. This class should not be instantiated directly, and instead should be used\n * through the `channels` property of an {@link Synnax} client.\n */\nexport class Client implements AsyncTermSearcher<string, Key, Channel> {\n readonly type = \"channel\";\n private readonly frameClient: framer.Client;\n private readonly client: UnaryClient;\n readonly retriever: Retriever;\n readonly writer: Writer;\n\n constructor(\n frameClient: framer.Client,\n retriever: Retriever,\n client: UnaryClient,\n writer: Writer,\n ) {\n this.frameClient = frameClient;\n this.retriever = retriever;\n this.client = client;\n this.writer = writer;\n }\n\n /**\n * Creates a single channel with the given properties.\n *\n * @param name - A human-readable name for the channel.\n * @param rate - The rate of the channel. This only applies to fixed rate channels.\n * @param dataType - The data type for the samples stored in the channel.\n * @param index - The key of the index channel that this channel should be associated\n * with. An 'index' channel is a channel that stores timestamps for other channels. Refer\n * to the Synnax documentation (https://docs.synnaxlabs.com) for more information. The\n * index channel must have already been created. This field does not need to be specified\n * if the channel is an index channel, or the channel is a fixed rate channel. If this\n * value is specified, the 'rate' parameter will be ignored.\n * @param isIndex - Set to true if the channel is an index channel, and false otherwise.\n * Index channels must have a data type of `DataType.TIMESTAMP`.\n * @returns the created channel. {@see Channel}\n * @throws {ValidationError} if any of the parameters for creating the channel are\n * invalid.\n *\n * @example\n * ```typescript\n * const indexChannel = await client.channels.create({\n * name: \"time\",\n * dataType: DataType.TIMESTAMP,\n * isIndex: true,\n * })\n *\n *\n * const dataChannel = await client.channels.create({\n * name: \"temperature\",\n * dataType: DataType.FLOAT,\n * index: indexChannel.key,\n * });\n * ```\n */\n async create(channel: NewPayload, options?: CreateOptions): Promise<Channel>;\n\n /**\n * Creates multiple channels with the given properties. The order of the channels\n * returned is guaranteed to match the order of the channels passed in.\n *\n * @param channels - An array of channel properties to create.\n * For each channel, the following properties should be considered:\n *\n * @param name - A human-readable name for the channel.\n * @param rate - The rate of the channel. This only applies to fixed rate channels. If\n * the 'index' parameter is specified or 'isIndex' is set to true, this parameter will\n * be ignored.\n * @param dataType - The data type for the samples stored in the channel.\n * @param index - The key of the index channel that this channel should be associated\n * with. An 'index' channel is a channel that stores timestamps for other channels. Refer\n * to the Synnax documentation (https://docs.synnaxlabs.com) for more information. The\n * index channel must have already been created. This field does not need to be specified\n * if the channel is an index channel, or the channel is a fixed rate channel. If this\n * value is specified, the 'rate' parameter will be ignored.\n * @param isIndex - Set to true if the channel is an index channel, and false otherwise.\n * Index channels must have a data type of `DataType.TIMESTAMP`.\n *\n * @param channels\n */\n async create(channels: NewPayload[], options?: CreateOptions): Promise<Channel[]>;\n\n async create(\n channels: NewPayload | NewPayload[],\n options: CreateOptions = {},\n ): Promise<Channel | Channel[]> {\n const { retrieveIfNameExists = false } = options;\n const single = !Array.isArray(channels);\n let toCreate = toArray(channels);\n let created: Channel[] = [];\n if (retrieveIfNameExists) {\n const res = await this.retriever.retrieve(toCreate.map((c) => c.name));\n const existingNames = new Set(res.map((c) => c.name));\n toCreate = toCreate.filter((c) => !existingNames.has(c.name));\n created = this.sugar(res);\n }\n created = created.concat(this.sugar(await this.writer.create(toCreate)));\n return single ? created[0] : created;\n }\n\n /**\n * Retrieves a channel from the database using the given key or name.\n *\n * @param channel - The key or name of the channel to retrieve.\n * @param options - Optional parameters to control the retrieval process.\n * @param options.dataTypes - Limits the query to only channels with the specified data\n * type.\n * @param options.notDataTypes - Limits the query to only channels without the specified\n * data type.\n *\n * @returns The retrieved channel.\n * @throws {NotFoundError} if the channel does not exist in the cluster.\n * @throws {MultipleFoundError} is only thrown if the channel is retrieved by name,\n * and multiple channels with the same name exist in the cluster.\n *\n * @example\n *\n * ```typescript\n * const channel = await client.channels.retrieve(\"temperature\");\n * const channel = await client.channels.retrieve(1);\n * ```\n */\n async retrieve(channel: KeyOrName, options?: RetrieveOptions): Promise<Channel>;\n\n /**\n * Retrieves multiple channels from the database using the provided keys or the\n * provided names.\n *\n * @param channels - The keys or the names of the channels to retrieve. Note that\n * this method does not support mixing keys and names in the same call.\n * @param options - Optional parameters to control the retrieval process.\n * @param options.dataTypes - Limits the query to only channels with the specified data\n * type.\n * @param options.notDataTypes - Limits the query to only channels without the specified\n *\n */\n async retrieve(channels: Params, options?: RetrieveOptions): Promise<Channel[]>;\n\n /**\n * Retrieves a channel from the database using the given parameters.\n *\n * this will be ignored.\n * @returns The retrieved channel.\n * @raises {QueryError} If the channel does not exist or if multiple results are returned.\n */\n async retrieve(\n channels: Params,\n options?: RetrieveOptions,\n ): Promise<Channel | Channel[]> {\n const isSingle = !Array.isArray(channels);\n const res = this.sugar(await this.retriever.retrieve(channels, options));\n checkForMultipleOrNoResults(\"channel\", channels, res, isSingle);\n return isSingle ? res[0] : res;\n }\n\n async search(term: string, options?: RetrieveOptions): Promise<Channel[]> {\n return this.sugar(await this.retriever.search(term, options));\n }\n\n async delete(channels: Params): Promise<void> {\n const { normalized, variant } = analyzeChannelParams(channels);\n if (variant === \"keys\")\n return await this.writer.delete({ keys: normalized as Key[] });\n return await this.writer.delete({ names: normalized as string[] });\n }\n\n newSearcherWithOptions(\n options: RetrieveOptions,\n ): AsyncTermSearcher<string, Key, Channel> {\n return {\n type: this.type,\n search: async (term: string) => await this.search(term, options),\n retrieve: async (keys: Key[]) => await this.retrieve(keys, options),\n page: async (offset: number, limit: number) =>\n await this.page(offset, limit, options),\n };\n }\n\n async page(\n offset: number,\n limit: number,\n options?: Omit<RetrieveOptions, \"limit\" | \"offset\">,\n ): Promise<Channel[]> {\n return this.sugar(await this.retriever.page(offset, limit, options));\n }\n\n createDebouncedBatchRetriever(deb: number = 10): Retriever {\n return new CacheRetriever(\n new DebouncedBatchRetriever(new ClusterRetriever(this.client), deb),\n );\n }\n\n private sugar(payloads: Payload[]): Channel[] {\n const { frameClient } = this;\n return payloads.map((p) => new Channel({ ...p, frameClient }));\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { z } from \"zod\";\n\nexport const payloadZ = z.object({\n key: z.string(),\n username: z.string(),\n});\n\nexport type Payload = z.infer<typeof payloadZ>;\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport type { Middleware, UnaryClient } from \"@synnaxlabs/freighter\";\nimport { z } from \"zod\";\n\nimport { InvalidTokenError } from \"@/errors\";\nimport { user } from \"@/user\";\n\nexport const insecureCredentialsZ = z.object({\n username: z.string(),\n password: z.string(),\n});\nexport type InsecureCredentials = z.infer<typeof insecureCredentialsZ>;\n\nexport const tokenResponseZ = z.object({\n token: z.string(),\n user: user.payloadZ,\n});\n\nexport type TokenResponse = z.infer<typeof tokenResponseZ>;\n\nconst LOGIN_ENDPOINT = \"/auth/login\";\n\nconst MAX_RETRIES = 3;\n\nexport class Client {\n token: string | undefined;\n private readonly client: UnaryClient;\n private readonly credentials: InsecureCredentials;\n private authenticating: Promise<Error | null> | undefined;\n authenticated: boolean;\n user: user.Payload | undefined;\n private retryCount: number;\n\n constructor(client: UnaryClient, credentials: InsecureCredentials) {\n this.client = client;\n this.authenticated = false;\n this.credentials = credentials;\n this.retryCount = 0;\n }\n\n middleware(): Middleware {\n const mw: Middleware = async (reqCtx, next) => {\n if (!this.authenticated && !reqCtx.target.endsWith(LOGIN_ENDPOINT)) {\n if (this.authenticating == null)\n this.authenticating = new Promise(async (resolve) => {\n const [res, err] = await this.client.send(\n LOGIN_ENDPOINT,\n\n this.credentials,\n insecureCredentialsZ,\n tokenResponseZ,\n );\n if (err != null) return resolve(err);\n this.token = res?.token;\n this.user = res?.user;\n this.authenticated = true;\n resolve(null);\n });\n const err = await this.authenticating;\n if (err != null) return [reqCtx, err];\n }\n reqCtx.params.Authorization = `Bearer ${this.token}`;\n const [resCtx, err] = await next(reqCtx);\n if (err instanceof InvalidTokenError && this.retryCount < MAX_RETRIES) {\n this.authenticated = false;\n this.authenticating = undefined;\n this.retryCount += 1;\n return mw(reqCtx, next);\n }\n this.retryCount = 0;\n return [resCtx, err];\n };\n return mw;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport type { UnaryClient } from \"@synnaxlabs/freighter\";\nimport { TimeSpan } from \"@synnaxlabs/x/telem\";\nimport { z } from \"zod\";\n\nconst STATUSES = [\"disconnected\", \"connecting\", \"connected\", \"failed\"] as const;\nexport const status = z.enum(STATUSES);\nexport type Status = z.infer<typeof status>;\n\nexport const state = z.object({\n status,\n error: z.instanceof(Error).optional(),\n message: z.string().optional(),\n clusterKey: z.string(),\n});\n\nexport type State = z.infer<typeof state>;\n\nconst responseZ = z.object({\n clusterKey: z.string(),\n});\n\nconst DEFAULT: State = {\n clusterKey: \"\",\n status: \"disconnected\",\n error: undefined,\n message: \"Disconnected\",\n};\n\n/** Polls a synnax cluster for connectivity information. */\nexport class Checker {\n private static readonly ENDPOINT = \"/connectivity/check\";\n static readonly DEFAULT: State = DEFAULT;\n private readonly _state: State;\n private readonly pollFrequency = TimeSpan.seconds(30);\n private readonly client: UnaryClient;\n private readonly name?: string;\n private interval?: NodeJS.Timeout;\n private readonly onChangeHandlers: Array<(state: State) => void> = [];\n static readonly connectionStateZ = state;\n\n /**\n * @param client - The transport client to use for connectivity checks.\n * @param pollFreq - The frequency at which to poll the cluster for\n * connectivity information.\n */\n constructor(\n client: UnaryClient,\n pollFreq: TimeSpan = TimeSpan.seconds(30),\n name?: string,\n ) {\n this._state = { ...DEFAULT };\n this.client = client;\n this.pollFrequency = pollFreq;\n this.name = name;\n void this.check();\n this.startChecking();\n }\n\n /** Stops the connectivity client from polling the cluster for connectivity */\n stopChecking(): void {\n if (this.interval != null) clearInterval(this.interval);\n }\n\n /**\n * Executes a connectivity check and updates the client status and error, as\n * well as calling any registered change handlers.\n */\n async check(): Promise<State> {\n const prevStatus = this._state.status;\n try {\n const [res, err] = await this.client.send(Checker.ENDPOINT, {}, z.object({}), responseZ);\n if (err != null) throw err;\n this._state.status = \"connected\";\n this._state.message = `Connected to ${this.name ?? \"cluster\"}`;\n this._state.clusterKey = res.clusterKey;\n } catch (err) {\n this._state.status = \"failed\";\n this._state.error = err as Error;\n this._state.message = this.state.error?.message;\n }\n if (this.onChangeHandlers.length > 0 && prevStatus !== this._state.status)\n this.onChangeHandlers.forEach((handler) => handler(this.state));\n return this.state;\n }\n\n /** @returns a copy of the current client state. */\n get state(): State {\n return { ...this._state };\n }\n\n /** @param callback - The function to call when the client status changes. */\n onChange(callback: (state: State) => void): void {\n this.onChangeHandlers.push(callback);\n }\n\n private startChecking(): void {\n this.interval = setInterval(() => {\n void this.check();\n }, this.pollFrequency.milliseconds);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n Size,\n Series,\n TimeRange,\n DataType,\n TimeStamp,\n type TelemValue,\n MultiSeries,\n} from \"@synnaxlabs/x/telem\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { unique } from \"@synnaxlabs/x/unique\";\nimport { z } from \"zod\";\n\nimport {\n type Key,\n type KeyOrName,\n type Keys,\n type Names,\n type Params,\n} from \"@/channel/payload\";\nimport { UnexpectedError, ValidationError } from \"@/errors\";\n\ntype ColumnType = \"key\" | \"name\" | null;\n\nconst columnType = (columns: Params): ColumnType => {\n const arrKeys = toArray(columns);\n if (arrKeys.length === 0) return null;\n if (typeof arrKeys[0] === \"number\") return \"key\";\n if (!isNaN(parseInt(arrKeys[0]))) return \"key\";\n return \"name\";\n};\n\nconst validateMatchedColsAndArrays = (columns: Params, arrays: Series[]): void => {\n const colsArr = toArray(columns);\n if (colsArr.length === arrays.length) return;\n const colType = columnType(columns);\n if (columnType === null)\n throw new ValidationError(\n \"[Frame] - channel keys or names must be provided when constructing a frame.\",\n );\n throw new ValidationError(\n `[Frame] - ${colType as string}s and arrays must be the same length.\n Got ${colsArr.length} ${colType as string}s and ${arrays.length} arrays.`,\n );\n};\n\nexport type CrudeFrame =\n | Frame\n | FramePayload\n | Map<KeyOrName, Series[] | Series>\n | Record<KeyOrName, Series[] | Series>;\n\n/**\n * A frame is a collection of related typed arrays keyed to a particular channel. Frames\n * can be keyed by channel name or channel key, but not both.\n *\n * Frames have two important characteristics: alignment and orientation.\n *\n * A frame's alignment defines how correlated the arrays for different channels in the\n * frame are:\n *\n * - A frame is weakly aligned if it meets the time range occupied by all arrays of a\n * particular channel is the same for all channels in the frame. This means that the\n * arrays for a particular channel can have gaps between them.\n *\n * - A strongly aligned frame means that all channels share the same rate/index and\n * there are no gaps in time between arrays. Strongly aligned frames are natural\n * to interpret, as the values in a particular 'row' of the frame share the same\n * timestamp. All frames written to Synnax must be strongly aligned.\n *\n * - Unaligned frames don't meet the requirements for weakly or strongly aligned frames.\n * Unaligned frames are common when reading from channels that don't have the same\n * index/rate and are continuous in different periods of time.\n *\n * Frames also have an orientation: horizontal, vertical, or square.\n *\n * - Horizontal frames have a single channel, and are strongly aligned by default.\n * A horizontal frame typically has a single array (in which case, it's also 'square'),\n * although it can have multiple arrays if all the arrays are continuous in time.\n *\n * - Vertical frames are strongly aligned and have on or more channels, but ONLY a single\n * array per channel. Synnax requires that all frames written to the database are\n * vertical.\n *\n * - Square frames are both horizontal and vertical. Only a frame with a single channel\n * and array can be square.\n */\nexport class Frame {\n readonly columns: Keys | Names = [];\n readonly series: Series[] = [];\n\n constructor(columnsOrData: Params | CrudeFrame = [], arrays: Series | Series[] = []) {\n if (columnsOrData instanceof Frame) {\n this.columns = columnsOrData.columns;\n this.series = columnsOrData.series;\n return;\n }\n\n // Construction from a map.\n if (columnsOrData instanceof Map) {\n columnsOrData.forEach((v, k) => this.push(k, ...toArray(v)));\n return;\n }\n\n const isObject = typeof columnsOrData === \"object\" && !Array.isArray(columnsOrData);\n\n // Construction from a payload.\n if (isObject) {\n if (\"keys\" in columnsOrData && \"series\" in columnsOrData) {\n const data_ = columnsOrData as FramePayload;\n const arrays = data_.series.map((a) => seriesFromPayload(a));\n validateMatchedColsAndArrays(data_.keys, arrays);\n data_.keys.forEach((key, i) => this.push(key, arrays[i]));\n } else\n Object.entries(columnsOrData).forEach(([k, v]) => {\n const key = parseInt(k);\n if (!isNaN(key)) return this.push(key, ...toArray(v));\n else this.push(k, ...toArray(v));\n });\n return;\n }\n\n // Construction from a set of arrays and columns.\n if (\n Array.isArray(columnsOrData) ||\n [\"string\", \"number\"].includes(typeof columnsOrData)\n ) {\n const data_ = toArray(arrays);\n const cols = toArray(columnsOrData) as Keys | Names;\n validateMatchedColsAndArrays(cols, data_);\n data_.forEach((d, i) => this.push(cols[i], d));\n return;\n }\n\n throw new ValidationError(\n `[Frame] - invalid frame construction parameters. data parameter ust be a frame\n payload, a list of lazy arrays, a lazy array, a map, or a record keyed by channel\n name. keys parameter must be a set of channel keys or channel names.`,\n );\n }\n\n /**\n * @returns \"key\" if the frame columns are channel keys, \"name\" if the columns are\n * channel names, and null if the frame has no columns.\n */\n get colType(): ColumnType {\n if (this.columns.length === 0) return null;\n const firstKey = this.columns[0];\n return typeof firstKey === \"string\" ? \"name\" : \"key\";\n }\n\n /**\n * @returns the channel keys if the frame is keyed by channel key, and throws an error\n * otherwise.\n */\n get keys(): Keys {\n if (this.colType === \"name\") throw new UnexpectedError(\"colType is not key\");\n return (this.columns as Keys) ?? [];\n }\n\n /**\n * @returns the unique channel keys if the frame is keyed by channel key, and throws an\n * error otherwise.\n */\n get uniqueKeys(): Keys {\n return unique(this.keys);\n }\n\n /**\n * @returns the channel names if the frame is keyed by channel name, and throws an error\n * otherwise.\n */\n get names(): Names {\n if (this.colType === \"key\") throw new UnexpectedError(\"colType is not name\");\n return (this.columns as Names) ?? [];\n }\n\n /**\n * @returns the unique channel names if the frame is keyed by channel name, and throws an\n * otherwise.\n */\n get uniqueNames(): Names {\n return unique(this.names);\n }\n\n /**\n * @returns the unique columns in the frame.\n */\n get uniqueColumns(): Keys | Names {\n return this.colType === \"key\" ? this.uniqueKeys : this.uniqueNames;\n }\n\n toPayload(): FramePayload {\n return {\n series: this.series.map((a) => seriesToPayload(a)),\n keys: this.keys,\n };\n }\n\n /**\n * @returns true if the frame is vertical. Vertical frames are strongly aligned and\n * have on or more channels, but ONLY a single array per channel. Synnax requires\n * that all frames written to the database are vertical.\n */\n get isVertical(): boolean {\n return this.uniqueColumns.length === this.columns.length;\n }\n\n /**\n * @returns true if the frame is horizontal. Horizontal frames have a single channel,\n * and are strongly aligned by default.A horizontal frame typically has a single array\n * (in which case, it's also 'square'), although it can have multiple arrays if all\n * the arrays are continuous in time.\n */\n get isHorizontal(): boolean {\n return this.uniqueColumns.length === 1;\n }\n\n /**\n * @returns true if the frame is square. Square frames are both horizontal and vertical.\n * Only a frame with a single channel and array can be square.\n */\n get isSquare(): boolean {\n return this.isHorizontal && this.isVertical;\n }\n\n /**\n * @returns true if the frame is weakly aligned. A frame is weakly aligned if it meets\n * the time range occupied by all arrays of a particular channel is the same for all\n * channels in the frame. This means that the arrays for a particular channel can have\n * gaps between them.\n */\n get isWeaklyAligned(): boolean {\n if (this.columns.length <= 1) return true;\n const ranges = this.timeRanges;\n return ranges.every((tr) => tr.equals(ranges[0]));\n }\n\n timeRange(col?: KeyOrName): TimeRange {\n if (col == null) {\n if (this.columns.length === 0) return TimeRange.ZERO;\n const start = TimeStamp.min(...this.series.map((a) => a.timeRange.start));\n const end = TimeStamp.max(...this.series.map((a) => a.timeRange.end));\n return new TimeRange(start, end);\n }\n const group = this.get(col);\n if (group == null) return TimeRange.ZERO;\n return group.timeRange;\n }\n\n latest(): Record<string, TelemValue | undefined> {\n return this.at(-1);\n }\n\n get timeRanges(): TimeRange[] {\n return this.uniqueColumns.map((col) => this.timeRange(col));\n }\n\n /**\n * @returns lazy arrays matching the given channel key or name.\n * @param key the channel key or name.\n */\n get(key: KeyOrName): MultiSeries;\n\n /**\n * @returns a frame with the given channel keys or names.\n * @param keys the channel keys or names.\n */\n get(keys: Keys | Names): Frame;\n\n get(key: KeyOrName | Keys | Names): MultiSeries | Frame {\n if (Array.isArray(key)) return this.filter((k) => (key as Keys).includes(k as Key));\n return new MultiSeries(this.series.filter((_, i) => this.columns[i] === key));\n }\n\n /**\n * Pushes a set of typed arrays for the given channel onto the frame.\n *\n * @param key the channel key or name;\n * @param v the typed arrays to push.\n */\n push(key: KeyOrName, ...v: Series[]): void;\n\n /**\n * Pushes the frame onto the current frame.\n *\n * @param frame - the frame to push.\n */\n push(frame: Frame): void;\n\n push(keyOrFrame: KeyOrName | Frame, ...v: Series[]): void {\n if (keyOrFrame instanceof Frame) {\n if (this.colType !== null && keyOrFrame.colType !== this.colType)\n throw new ValidationError(\"keyVariant must match\");\n this.series.push(...keyOrFrame.series);\n (this.columns as Keys).push(...(keyOrFrame.columns as Keys));\n } else {\n this.series.push(...v);\n if (typeof keyOrFrame === \"string\" && this.colType === \"key\")\n throw new ValidationError(\"keyVariant must match\");\n else if (typeof keyOrFrame !== \"string\" && this.colType === \"name\")\n throw new ValidationError(\"keyVariant must match\");\n (this.columns as Keys).push(\n ...(Array.from({ length: v.length }, () => keyOrFrame) as Keys),\n );\n }\n }\n\n /**\n * @returns a shallow copy of this frame containing all typed arrays in the current frame and the\n * provided frame.\n */\n concat(frame: Frame): Frame {\n return new Frame([...this.columns, ...frame.columns] as Keys, [\n ...this.series,\n ...frame.series,\n ]);\n }\n\n /**\n * @returns true if the frame contains the provided channel key or name.\n * @param channel the channel key or name to check.\n */\n has(channel: KeyOrName): boolean {\n if (typeof channel === \"string\" && this.colType === \"key\") return false;\n else if (typeof channel === \"number\" && this.colType === \"name\") return false;\n return (this.columns as Keys).includes(channel as Key);\n }\n\n /**\n * @returns a new frame containing the mapped output of the provided function.\n * @param fn a function that takes a channel key and typed array and returns a\n * boolean.\n */\n map(fn: (k: KeyOrName, arr: Series, i: number) => [KeyOrName, Series]): Frame {\n const frame = new Frame();\n this.forEach((k, arr, i) => frame.push(...fn(k, arr, i)));\n return frame;\n }\n\n /**\n * Iterates over all typed arrays in the current frame.\n *\n * @param fn a function that takes a channel key and typed array.\n */\n forEach(fn: (k: KeyOrName, arr: Series, i: number) => void): void {\n this.columns.forEach((k, i) => {\n const a = this.series[i];\n fn(k, a, i);\n });\n }\n\n at(index: number, required: true): Record<KeyOrName, TelemValue>;\n\n at(index: number, required?: false): Record<KeyOrName, TelemValue | undefined>;\n\n at(index: number, required = false): Record<KeyOrName, TelemValue | undefined> {\n const res: Record<KeyOrName, TelemValue> = {};\n this.uniqueColumns.forEach((k) => {\n res[k] = this.get(k).at(index, required as true);\n });\n return res;\n }\n\n /**\n * @returns a new frame containing all typed arrays in the current frame that pass\n * the provided filter function.\n * @param fn a function that takes a channel key and typed array and returns a boolean.\n */\n filter(fn: (k: KeyOrName, arr: Series, i: number) => boolean): Frame {\n const frame = new Frame();\n this.columns.forEach((k, i) => {\n const a = this.series[i];\n if (fn(k, a, i)) frame.push(k, a);\n });\n return frame;\n }\n\n /** @returns the total number of bytes in the frame. */\n get byteLength(): Size {\n return new Size(this.series.reduce((acc, v) => acc.add(v.byteLength), Size.ZERO));\n }\n\n /** @returns the total number of samples in the frame. */\n get length(): number {\n return this.series.reduce((acc, v) => acc + v.length, 0);\n }\n}\n\nexport const series = z.object({\n timeRange: TimeRange.z.optional(),\n alignment: z\n .bigint()\n .or(z.string().transform((s) => BigInt(s)))\n .optional(),\n dataType: DataType.z,\n data: z.string().transform(\n (s) =>\n new Uint8Array(\n atob(s)\n .split(\"\")\n .map((c) => c.charCodeAt(0)),\n ).buffer,\n ),\n});\n\nexport type SeriesPayload = z.infer<typeof series>;\n\nexport const frameZ = z.object({\n keys: z.union([\n z.null().transform(() => [] as number[]),\n z.number().array().optional().default([]),\n ]),\n series: z.union([\n z.null().transform(() => [] as Array<z.infer<typeof series>>),\n series.array().optional().default([]),\n ]),\n});\n\nexport type FramePayload = z.infer<typeof frameZ>;\n\nexport const seriesFromPayload = (series: SeriesPayload): Series => {\n const { dataType, data, timeRange, alignment } = series;\n return new Series({ data, dataType, timeRange, glBufferUsage: \"static\", alignment });\n};\n\nexport const seriesToPayload = (series: Series): SeriesPayload => {\n return {\n timeRange: series._timeRange,\n dataType: series.dataType,\n data: new Uint8Array(series.data.buffer),\n alignment: series.alignment,\n };\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type CrudeSeries, Series } from \"@synnaxlabs/x/telem\";\n\nimport {\n type Key,\n type Name,\n type Params,\n type KeyOrName,\n type Payload,\n} from \"@/channel/payload\";\nimport {\n type Retriever,\n analyzeChannelParams,\n retrieveRequired,\n} from \"@/channel/retriever\";\nimport { ValidationError } from \"@/errors\";\nimport { type CrudeFrame, Frame } from \"@/framer/frame\";\n\nexport class ReadFrameAdapter {\n private adapter: Map<Key, Name> | null;\n retriever: Retriever;\n keys: Key[];\n\n private constructor(retriever: Retriever) {\n this.retriever = retriever;\n this.adapter = null;\n this.keys = [];\n }\n\n static async open(retriever: Retriever, channels: Params): Promise<ReadFrameAdapter> {\n const adapter = new ReadFrameAdapter(retriever);\n await adapter.update(channels);\n return adapter;\n }\n\n async update(channels: Params): Promise<void> {\n const { variant, normalized } = analyzeChannelParams(channels);\n if (variant === \"keys\") {\n this.adapter = null;\n this.keys = normalized as Key[];\n return;\n }\n const fetched = await this.retriever.retrieve(normalized);\n const a = new Map<Key, Name>();\n this.adapter = a;\n normalized.forEach((name) => {\n const channel = fetched.find((channel) => channel.name === name);\n if (channel == null) throw new Error(`Channel ${name} not found`);\n a.set(channel.key, channel.name);\n });\n this.keys = Array.from(this.adapter.keys());\n }\n\n adapt(columnsOrData: Frame): Frame {\n if (this.adapter == null) return columnsOrData;\n const a = this.adapter;\n return columnsOrData.map((k, arr) => {\n if (typeof k === \"number\") {\n const name = a.get(k);\n if (name == null) throw new Error(`Channel ${k} not found`);\n return [name, arr];\n }\n return [k, arr];\n });\n }\n}\n\nexport class WriteFrameAdapter {\n private adapter: Map<Name, Key> | null;\n retriever: Retriever;\n keys: Key[];\n\n private constructor(retriever: Retriever) {\n this.retriever = retriever;\n this.adapter = null;\n this.keys = [];\n }\n\n static async open(\n retriever: Retriever,\n channels: Params,\n ): Promise<WriteFrameAdapter> {\n const adapter = new WriteFrameAdapter(retriever);\n await adapter.update(channels);\n return adapter;\n }\n\n async update(channels: Params): Promise<void> {\n const results = await retrieveRequired(this.retriever, channels);\n this.adapter = new Map<Name, Key>(results.map((c) => [c.name, c.key]));\n this.keys = results.map((c) => c.key);\n }\n\n private async fetchChannel(ch: Key | Name): Promise<Payload> {\n const res = await this.retriever.retrieve(ch);\n if (res.length === 0) throw new Error(`Channel ${ch} not found`);\n return res[0];\n }\n\n async adapt(\n columnsOrData: Params | Record<KeyOrName, CrudeSeries> | CrudeFrame,\n series?: CrudeSeries | CrudeSeries[],\n ): Promise<Frame> {\n if (typeof columnsOrData === \"string\" || typeof columnsOrData === \"number\") {\n if (series == null)\n throw new ValidationError(`\n Received a single channel name or key but no series.\n `);\n if (Array.isArray(series)) {\n if (series.some((s) => s instanceof Series || Array.isArray(s))) {\n throw new ValidationError(`\n Received a single channel name or key but multiple series.\n `);\n }\n series = series as CrudeSeries;\n }\n const pld = await this.fetchChannel(columnsOrData);\n const s = new Series({ data: series as CrudeSeries, dataType: pld.dataType });\n return new Frame(pld.key, s);\n }\n\n if (Array.isArray(columnsOrData)) {\n if (series == null)\n throw new ValidationError(`\n Received an array of channel names or keys but no series.\n `);\n if (!Array.isArray(series))\n throw new ValidationError(`\n Received an array of channel names or keys but no array of series.\n `);\n const cols = [];\n const data = [];\n for (let i = 0; i < columnsOrData.length; i++) {\n const pld = await this.fetchChannel(columnsOrData[i]);\n if (i >= series.length) {\n throw new ValidationError(`\n Received an array of channel names or keys but not enough series.\n `);\n }\n const s = new Series({\n data: series[i] as CrudeSeries,\n dataType: pld.dataType,\n });\n cols.push(pld.key);\n data.push(s);\n }\n return new Frame(cols, data);\n }\n\n if (columnsOrData instanceof Frame || columnsOrData instanceof Map) {\n const fr = new Frame(columnsOrData);\n if (this.adapter == null) return fr;\n let cols: Key[] = [];\n cols = fr.columns.map((col_) => {\n const col = typeof col_ === \"string\" ? this.adapter?.get(col_) : col_;\n if (col == null)\n throw new ValidationError(`\n Channel ${col_} was not provided in the list of channels when opening the writer\n `);\n return col;\n });\n return new Frame(cols, fr.series);\n }\n\n const cols = [];\n const data = [];\n const kvs = Object.entries(columnsOrData);\n for (let i = 0; i < kvs.length; i++) {\n const [k, v] = kvs[i];\n const pld = await this.fetchChannel(k);\n const s = new Series({ data: v, dataType: pld.dataType });\n cols.push(pld.key);\n data.push(s);\n }\n\n return new Frame(cols, data);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type Stream, EOF } from \"@synnaxlabs/freighter\";\nimport { type z } from \"zod\";\n\nimport { UnexpectedError } from \"@/errors\";\n\nexport class StreamProxy<RQ extends z.ZodTypeAny, RS extends z.ZodTypeAny> {\n readonly name: string;\n private readonly stream: Stream<RQ, RS>;\n\n constructor(name: string, stream: Stream<RQ, RS>) {\n this.stream = stream;\n this.name = name;\n }\n\n async receive(): Promise<z.output<RS>> {\n const [res, err] = await this.stream.receive();\n if (err != null) throw err;\n return res;\n }\n\n received(): boolean {\n return this.stream.received();\n }\n\n async closeAndAck(): Promise<void> {\n this.stream.closeSend();\n while (true) {\n const [res, err] = await this.stream.receive();\n if (res != null)\n console.warn(\n `${this.name} received unexpected response on closure. \n Please report this error to the Synnax team. ${JSON.stringify(res)}`,\n );\n if (err != null) {\n if (err instanceof EOF) return;\n throw err;\n }\n }\n }\n\n closeSend(): void {\n this.stream.closeSend();\n }\n\n send(req: z.input<RQ>): void {\n const err = this.stream.send(req);\n if (err != null) throw err;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { errorZ, type Stream, type StreamClient } from \"@synnaxlabs/freighter\";\nimport {\n type CrudeTimeSpan,\n type CrudeTimeStamp,\n TimeRange,\n TimeSpan,\n TimeStamp,\n type CrudeTimeRange,\n} from \"@synnaxlabs/x/telem\";\nimport { z } from \"zod\";\n\nimport { type Params } from \"@/channel/payload\";\nimport { type Retriever } from \"@/channel/retriever\";\nimport { ReadFrameAdapter } from \"@/framer/adapter\";\nimport { Frame, frameZ } from \"@/framer/frame\";\nimport { StreamProxy } from \"@/framer/streamProxy\";\n\nexport const AUTO_SPAN = new TimeSpan(-1);\n\nenum Command {\n Open = 0,\n Next = 1,\n Prev = 2,\n SeekFirst = 3,\n SeekLast = 4,\n SeekLE = 5,\n SeekGE = 6,\n Valid = 7,\n Error = 8,\n}\n\nenum ResponseVariant {\n None = 0,\n Ack = 1,\n Data = 2,\n}\n\nconst reqZ = z.object({\n command: z.nativeEnum(Command),\n span: TimeSpan.z.optional(),\n bounds: TimeRange.z.optional(),\n stamp: TimeStamp.z.optional(),\n keys: z.number().array().optional(),\n});\n\ntype Request = z.infer<typeof reqZ>;\n\nconst resZ = z.object({\n variant: z.nativeEnum(ResponseVariant),\n ack: z.boolean(),\n command: z.nativeEnum(Command),\n error: errorZ.optional().nullable(),\n frame: frameZ.optional(),\n});\n\n/**\n * Used to iterate over a clusters telemetry in time-order. It should not be\n * instantiated directly, and should instead be instantiated via the SegmentClient.\n *\n * Using an iterator is ideal when querying/processing large ranges of data, but\n * is relatively complex and difficult to use. If you're looking to retrieve\n * telemetry between two timestamps, see the SegmentClient.read method.\n */\nexport class Iterator {\n private static readonly ENDPOINT = \"/frame/iterate\";\n private readonly stream: StreamProxy<typeof reqZ, typeof resZ>;\n private readonly adapter: ReadFrameAdapter;\n value: Frame;\n\n private constructor(\n stream: Stream<typeof reqZ, typeof resZ>,\n adapter: ReadFrameAdapter,\n ) {\n this.stream = new StreamProxy(\"Iterator\", stream);\n this.value = new Frame();\n this.adapter = adapter;\n }\n\n /**\n * Opens the iterator, configuring it to iterate over the telemetry in the\n * channels with the given keys within the provided time range.\n *\n * @param tr - The time range to iterate over.\n * @param keys - The keys of the channels to iterate over.\n */\n static async _open(\n tr: CrudeTimeRange,\n channels: Params,\n retriever: Retriever,\n client: StreamClient,\n ): Promise<Iterator> {\n const adapter = await ReadFrameAdapter.open(retriever, channels);\n const stream = await client.stream(Iterator.ENDPOINT, reqZ, resZ);\n const iter = new Iterator(stream, adapter);\n await iter.execute({\n command: Command.Open,\n keys: adapter.keys,\n bounds: new TimeRange(tr),\n });\n return iter;\n }\n\n /**\n * Reads the next time span of telemetry for each channel in the iterator.\n *\n * @param span - The time span to read. A negative span is equivalent\n * to calling prev with the absolute value of the span. If the span is\n * AUTO_SPAN, the iterator will automatically determine the span to read.\n * This is useful for iterating over an entire range efficiently.\n *\n * @returns false if a segment satisfying the request can't be found for a\n * particular channel or the iterator has accumulated an error.\n */\n async next(span: CrudeTimeSpan = AUTO_SPAN): Promise<boolean> {\n return await this.execute({ command: Command.Next, span: new TimeSpan(span) });\n }\n\n /**\n * Reads the previous time span of telemetry for each channel in the iterator.\n *\n * @param span - The time span to read. A negative span is equivalent\n * to calling next with the absolute value of the span. If the span is\n * AUTO_SPAN, the iterator will automatically determine the span to read.\n * This is useful for iterating over an entire range efficiently.\n *\n * @returns false if a segment satisfying the request can't be found for a particular\n * channel or the iterator has accumulated an error.\n */\n async prev(span: CrudeTimeSpan = AUTO_SPAN): Promise<boolean> {\n return await this.execute({ command: Command.Prev, span: new TimeSpan(span) });\n }\n\n /**\n * Seeks the iterator to the first segment in the time range, but does not read\n * it. Also invalidates the iterator. The iterator will not be considered valid\n * until a call to next or prev.\n *\n * @returns false if the iterator is not pointing to a valid segment for a particular\n * channel or has accumulated an error.\n */\n async seekFirst(): Promise<boolean> {\n return await this.execute({ command: Command.SeekFirst });\n }\n\n /** Seeks the iterator to the last segment in the time range, but does not read it.\n * Also invalidates the iterator. The iterator will not be considered valid\n * until a call to next or prev.\n *\n * @returns false if the iterator is not pointing to a valid segment for a particular\n * channel or has accumulated an error.\n */\n async seekLast(): Promise<boolean> {\n return await this.execute({ command: Command.SeekLast });\n }\n\n /**\n * Seeks the iterator to the first segment whose start is less than or equal to\n * the provided timestamp. Also invalidates the iterator. The iterator will not be\n * considered valid until a call to next or prev.\n *\n * @returns false if the iterator is not pointing to a valid segment for a particular\n * channel or has accumulated an error.\n */\n async seekLE(stamp: CrudeTimeStamp): Promise<boolean> {\n return await this.execute({ command: Command.SeekLE, stamp: new TimeStamp(stamp) });\n }\n\n /**\n * Seeks the iterator to the first segment whose start is greater than or equal to\n * the provided timestamp. Also invalidates the iterator. The iterator will not be\n * considered valid until a call to next or prev.\n *\n * @returns false if the iterator is not pointing to a valid segment for a particular\n * channel or has accumulated an error.\n */\n async seekGE(stamp: CrudeTimeStamp): Promise<boolean> {\n return await this.execute({ command: Command.SeekGE, stamp: new TimeStamp(stamp) });\n }\n\n /**\n * @returns true if the iterator value contains a valid segment, and fale otherwise.\n * valid most commonly returns false when the iterator is exhausted or has\n * accumulated an error.\n */\n async valid(): Promise<boolean> {\n return await this.execute({ command: Command.Valid });\n }\n\n /**\n * Closes the iterator. An iterator MUST be closed after use, and this method\n * should probably be placed in a 'finally' block. If the iterator is not closed,\n * it may leak resources.\n */\n async close(): Promise<void> {\n await this.stream.closeAndAck();\n }\n\n [Symbol.asyncIterator](): AsyncIterator<Frame, any, undefined> {\n return new IteratorIterator(this);\n }\n\n private async execute(request: Request): Promise<boolean> {\n this.stream.send(request);\n this.value = new Frame();\n while (true) {\n const res = await this.stream.receive();\n if (res.variant === ResponseVariant.Ack) return res.ack;\n this.value.push(this.adapter.adapt(new Frame(res.frame)));\n }\n }\n}\n\nclass IteratorIterator implements AsyncIterator<Frame> {\n private readonly iter: Iterator;\n private open: boolean = false;\n\n constructor(iter: Iterator) {\n this.iter = iter;\n }\n\n async next(): Promise<IteratorResult<Frame, any>> {\n try {\n let ok = true;\n if (!this.open) {\n if (!(await this.iter.seekFirst())) ok = false;\n this.open = true;\n }\n if (!(await this.iter.next())) ok = false;\n if (!ok) await this.iter.close();\n return { done: !ok, value: this.iter.value };\n } catch (e) {\n await this.iter.close();\n throw e;\n }\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { errorZ, type Stream, type StreamClient } from \"@synnaxlabs/freighter\";\nimport { observe } from \"@synnaxlabs/x\";\nimport { TimeStamp, type CrudeTimeStamp } from \"@synnaxlabs/x/telem\";\nimport { z } from \"zod\";\n\nimport { type Key, type Params } from \"@/channel/payload\";\nimport { type Retriever } from \"@/channel/retriever\";\nimport { ReadFrameAdapter } from \"@/framer/adapter\";\nimport { Frame, frameZ } from \"@/framer/frame\";\nimport { StreamProxy } from \"@/framer/streamProxy\";\n\nconst reqZ = z.object({\n start: TimeStamp.z.optional(),\n keys: z.number().array(),\n});\n\nconst resZ = z.object({\n frame: frameZ,\n error: errorZ.optional().nullable(),\n});\n\nconst ENDPOINT = \"/frame/stream\";\n\nexport interface StreamerConfig {\n channels: Params;\n from?: CrudeTimeStamp;\n}\n\nexport class Streamer implements AsyncIterator<Frame>, AsyncIterable<Frame> {\n private readonly stream: StreamProxy<typeof reqZ, typeof resZ>;\n private readonly adapter: ReadFrameAdapter;\n\n private constructor(\n stream: Stream<typeof reqZ, typeof resZ>,\n adapter: ReadFrameAdapter,\n ) {\n this.stream = new StreamProxy(\"Streamer\", stream);\n this.adapter = adapter;\n }\n\n get keys(): Key[] {\n return this.adapter.keys;\n }\n\n static async _open(\n retriever: Retriever,\n client: StreamClient,\n { channels, from }: StreamerConfig,\n ): Promise<Streamer> {\n const adapter = await ReadFrameAdapter.open(retriever, channels);\n const stream = await client.stream(ENDPOINT, reqZ, resZ);\n const streamer = new Streamer(stream, adapter);\n stream.send({ start: new TimeStamp(from), keys: adapter.keys });\n return streamer;\n }\n\n async next(): Promise<IteratorResult<Frame, any>> {\n try {\n const frame = await this.read();\n return { done: false, value: frame };\n } catch (EOF) {\n return { done: true, value: undefined };\n }\n }\n\n async read(): Promise<Frame> {\n return this.adapter.adapt(new Frame((await this.stream.receive()).frame));\n }\n\n async update(params: Params): Promise<void> {\n await this.adapter.update(params);\n this.stream.send({ keys: this.adapter.keys });\n }\n\n close(): void {\n this.stream.closeSend();\n }\n\n [Symbol.asyncIterator](): AsyncIterator<Frame, any, undefined> {\n return this;\n }\n}\n\nexport class ObservableStreamer<V = Frame>\n extends observe.Observer<Frame, V>\n implements observe.ObservableAsyncCloseable<V>\n{\n private readonly streamer: Streamer;\n private readonly closePromise: Promise<void>;\n\n constructor(streamer: Streamer, transform?: observe.Transform<Frame, V>) {\n super(transform);\n this.streamer = streamer;\n this.closePromise = this.stream();\n }\n\n async close(): Promise<void> {\n this.streamer.close();\n await this.closePromise;\n }\n\n private async stream(): Promise<void> {\n for await (const frame of this.streamer) this.notify(frame);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { z } from \"zod\";\n\nexport class Authority extends Number {\n static readonly Absolute = 255;\n static readonly Default = 1;\n\n static readonly z = z.union([\n z.instanceof(Authority),\n z\n .number()\n .int()\n .min(0)\n .max(255)\n .transform((n) => new Authority(n)),\n z.instanceof(Number).transform((n) => new Authority(n)),\n ]);\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { binary } from \"@synnaxlabs/x/binary\";\nimport { type Destructor } from \"@synnaxlabs/x/destructor\";\nimport { observe } from \"@synnaxlabs/x/observe\";\nimport { z } from \"zod\";\n\nimport { type Key as ChannelKey } from \"@/channel/payload\";\nimport { Authority } from \"@/control/authority\";\nimport { type Client as FrameClient } from \"@/framer/client\";\nimport { type Streamer as FrameStreamer } from \"@/framer/streamer\";\n\nexport const subjectZ = z.object({\n name: z.string(),\n key: z.string(),\n});\n\nexport interface Subject {\n name: string;\n key: string;\n}\n\nexport const stateZ = z.object({\n subject: subjectZ,\n resource: z.number(),\n authority: Authority.z,\n});\n\nexport interface State {\n subject: Subject;\n resource: ChannelKey;\n authority: Authority;\n}\n\nexport const filterTransfersByChannelKey =\n (...resources: ChannelKey[]) =>\n (transfers: Transfer[]): Transfer[] =>\n transfers.filter((t) => {\n let ok = false;\n if (t.to != null) ok = resources.includes(t.to.resource);\n if (t.from != null && !ok) ok = resources.includes(t.from.resource);\n return ok;\n });\n\ninterface Release {\n from: State;\n to?: null;\n}\n\ninterface Acquire {\n from?: null;\n to: State;\n}\n\nexport type Transfer =\n | {\n from: State;\n to: State;\n }\n | Release\n | Acquire;\n\nexport const transferString = (t: Transfer): string => {\n if (t.to == null) return `${t.from?.resource} - ${t.from?.subject.name} -> released`;\n if (t.from == null)\n return `${t.to.resource} - released -> ${\n t.to.subject.name\n } (${t.to.authority.toString()})`;\n return `${t.to.resource} - ${t.from.subject.name} -> ${\n t.to.subject.name\n } (${t.to.authority.toString()})`;\n};\n\ninterface Update {\n transfers: Transfer[];\n}\n\nexport class StateTracker implements observe.Observable<Transfer[]> {\n readonly states: Map<ChannelKey, State>;\n private readonly streamer: FrameStreamer;\n private readonly ecd: binary.EncoderDecoder;\n private readonly observer: observe.Observer<Transfer[]>;\n private readonly closePromise: Promise<void>;\n\n private constructor(streamer: FrameStreamer) {\n this.states = new Map();\n this.ecd = new binary.JSONEncoderDecoder();\n this.observer = new observe.Observer<Transfer[]>();\n this.streamer = streamer;\n this.closePromise = this.stream();\n }\n\n subjects(): Subject[] {\n const subjects = new Map<string, Subject>();\n this.states.forEach((s) => subjects.set(s.subject.key, s.subject));\n return Array.from(subjects.values());\n }\n\n onChange(handler: observe.Handler<Transfer[]>): Destructor {\n return this.observer.onChange(handler);\n }\n\n async close(): Promise<void> {\n this.streamer.close();\n await this.closePromise;\n }\n\n static async open(client: FrameClient): Promise<StateTracker> {\n const streamer = await client.openStreamer(\"sy_node_1_control\");\n return new StateTracker(streamer);\n }\n\n private async stream(): Promise<void> {\n for await (const frame of this.streamer) {\n const update: Update = this.ecd.decode(frame.series[0].buffer);\n this.merge(update);\n this.observer.notify(update.transfers);\n }\n }\n\n private merge(update: Update): void {\n update.transfers.forEach((t) => {\n if (t.from == null && t.to == null) console.warn(\"Invalid transfer: \", t);\n if (t.to == null) this.states.delete(t.from.resource);\n else this.states.set(t.to.resource, t.to);\n });\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\n/* eslint-disable @typescript-eslint/no-throw-literal */\nimport type { Stream, StreamClient } from \"@synnaxlabs/freighter\";\nimport { decodeError, errorZ } from \"@synnaxlabs/freighter\";\nimport {\n TimeStamp,\n type CrudeTimeStamp,\n type CrudeSeries,\n TimeSpan,\n} from \"@synnaxlabs/x/telem\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport {\n type KeysOrNames,\n type Key,\n type KeyOrName,\n type Params,\n} from \"@/channel/payload\";\nimport { type Retriever } from \"@/channel/retriever\";\nimport { Authority } from \"@/control/authority\";\nimport {\n subjectZ as controlSubjectZ,\n type Subject as ControlSubject,\n} from \"@/control/state\";\nimport { WriteFrameAdapter } from \"@/framer/adapter\";\nimport { frameZ, type CrudeFrame } from \"@/framer/frame\";\nimport { StreamProxy } from \"@/framer/streamProxy\";\n\nenum Command {\n Open = 0,\n Write = 1,\n Commit = 2,\n Error = 3,\n SetAuthority = 4,\n SetMode = 5,\n}\n\nexport enum WriterMode {\n PersistStream = 1,\n PersistOnly = 2,\n StreamOnly = 3,\n}\n\nexport const ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT: TimeSpan = new TimeSpan(-1);\n\nconst netConfigZ = z.object({\n start: TimeStamp.z.optional(),\n controlSubject: controlSubjectZ.optional(),\n keys: z.number().array().optional(),\n authorities: Authority.z.array().optional(),\n mode: z.nativeEnum(WriterMode).optional(),\n enableAutoCommit: z.boolean().optional(),\n autoIndexPersistInterval: TimeSpan.z.optional(),\n});\n\nconst reqZ = z.object({\n command: z.nativeEnum(Command),\n config: netConfigZ.optional(),\n frame: frameZ.optional(),\n});\n\ntype Request = z.infer<typeof reqZ>;\n\nconst resZ = z.object({\n ack: z.boolean(),\n command: z.nativeEnum(Command),\n error: errorZ.optional().nullable(),\n});\n\ntype Response = z.infer<typeof resZ>;\n\nexport interface WriterConfig {\n // channels denote the channels to write to.\n channels: Params;\n // start sets the starting timestamp for the first sample in the writer.\n start?: CrudeTimeStamp;\n // controlSubject sets the control subject of the writer.\n controlSubject?: ControlSubject;\n // authorities set the control authority to set for each channel on the writer.\n // Defaults to absolute authority. If not working with concurrent control,\n // it's best to leave this as the default.\n authorities?: Authority | Authority[];\n // mode sets the persistence and streaming mode of the writer. The default\n // mode is WriterModePersistStream.\n mode?: WriterMode;\n // enableAutoCommit determines whether the writer will automatically commit.\n // If enableAutoCommit is true, then the writer will commit after each write, and\n // will flush that commit to index after the specified autoIndexPersistInterval.\n enableAutoCommit?: boolean;\n // autoIndexPersistInterval sets the interval at which commits to the index will be\n // persisted. To persist every commit to guarantee minimal loss of data, set\n // auto_index_persist_interval to AlwaysAutoIndexPersist.\n autoIndexPersistInterval?: TimeSpan;\n}\n\n/**\n * Writer is used to write telemetry to a set of channels in time order.\n * It should not be instantiated directly, and should instead be instantiated via the\n * FramerClient {@link FrameClient#openWriter}.\n *\n * The writer is a streaming protocol that is heavily optimized for performance. This\n * comes at the cost of increased complexity, and should only be used directly when\n * writing large volumes of data (such as recording telemetry from a sensor or ingesting\n * data from file). Simpler methods (such as the frame client's write method) should\n * be used for most use cases.\n *\n * The protocol is as follows:\n *\n * 1. The writer is opened with a starting timestamp and a list of channel keys. The\n * writer will fail to open if the starting timestamp overlaps with any existing telemetry\n * for any channels specified. If the writer opens successfully, the caller is then\n * free to write frames to the writer.\n *\n * 2. To write a frame, the caller can use the write method and follow the validation\n * rules described in its method's documentation. This process is asynchronous, meaning\n * that write calls may return before teh frame has been written to the cluster. This\n * also means that the writer can accumulate an error after write is called. If the writer\n * accumulates an error, all subsequent write and commit calls will return False. The\n * caller can check for errors by calling the error method, which returns the accumulated\n * error and resets the writer for future use. The caller can also check for errors by\n * closing the writer, which will throw any accumulated error.\n *\n * 3. To commit the written frames to the cluster, the caller can call the commit method.\n * Unlike write, commit is synchronous, meaning that it will not return until the frames\n * have been written to the cluster. If the writer has accumulated an error, commit will\n * return false. After the caller acknowledges the error, they can attempt to commit again.\n * Commit can be called several times throughout a writer's lifetime, and will only\n * commit the frames that have been written since the last commit.\n *\n * 4. A writer MUST be closed after use in order to prevent resource leaks. Close should\n * typically be called in a 'finally' block. If the writer has accumulated an error,\n * close will throw the error.\n */\nexport class Writer {\n private static readonly ENDPOINT = \"/frame/write\";\n private readonly stream: StreamProxy<typeof reqZ, typeof resZ>;\n private readonly adapter: WriteFrameAdapter;\n\n private constructor(\n stream: Stream<typeof reqZ, typeof resZ>,\n adapter: WriteFrameAdapter,\n ) {\n this.stream = new StreamProxy(\"Writer\", stream);\n this.adapter = adapter;\n }\n\n static async _open(\n retriever: Retriever,\n client: StreamClient,\n {\n channels,\n start = TimeStamp.now(),\n authorities = Authority.Absolute,\n controlSubject: subject,\n mode = WriterMode.PersistStream,\n enableAutoCommit = false,\n autoIndexPersistInterval = TimeSpan.SECOND,\n }: WriterConfig,\n ): Promise<Writer> {\n const adapter = await WriteFrameAdapter.open(retriever, channels);\n const stream = await client.stream(Writer.ENDPOINT, reqZ, resZ);\n const writer = new Writer(stream, adapter);\n await writer.execute({\n command: Command.Open,\n config: {\n start: new TimeStamp(start),\n keys: adapter.keys,\n controlSubject: subject,\n authorities: toArray(authorities),\n mode,\n enableAutoCommit,\n autoIndexPersistInterval,\n },\n });\n return writer;\n }\n\n async write(channel: KeyOrName, data: CrudeSeries): Promise<boolean>;\n\n async write(channel: KeysOrNames, data: CrudeSeries[]): Promise<boolean>;\n\n async write(frame: CrudeFrame | Record<KeyOrName, CrudeSeries>): Promise<boolean>;\n\n async write(\n channelsOrData: Params | Record<KeyOrName, CrudeSeries> | CrudeFrame,\n series?: CrudeSeries | CrudeSeries[],\n ): Promise<boolean>;\n\n /**\n * Writes the given frame to the database.\n *\n * @param frame - The frame to write to the database. The frame must:\n *\n * 1. Have exactly one array for each key in the list of keys provided to the\n * writer's open method.\n * 2. Have equal length arrays for each key.\n * 3. When writing to an index (i.e. TimeStamp) channel, the values must be\n * monotonically increasing.\n *\n * @returns false if the writer has accumulated an error. In this case, the caller\n * should acknowledge the error by calling the error method or closing the writer.\n */\n async write(\n channelsOrData: Params | Record<KeyOrName, CrudeSeries> | CrudeFrame,\n series?: CrudeSeries | CrudeSeries[],\n ): Promise<boolean> {\n const frame = await this.adapter.adapt(channelsOrData, series);\n // @ts-expect-error - zod issues\n this.stream.send({ command: Command.Write, frame: frame.toPayload() });\n return true;\n }\n\n async setAuthority(value: Record<Key, Authority>): Promise<boolean> {\n const res = await this.execute({\n command: Command.SetAuthority,\n config: {\n keys: Object.keys(value).map((k) => Number(k)),\n authorities: Object.values(value),\n },\n });\n return res.ack;\n }\n\n async setMode(mode: WriterMode): Promise<boolean> {\n const res = await this.execute({\n command: Command.SetMode,\n config: { mode },\n });\n return res.ack;\n }\n\n /**\n * Commits the written frames to the database. Commit is synchronous, meaning that it\n * will not return until all frames have been commited to the database.\n *\n * @returns false if the commit failed due to an error. In this case, the caller\n * should acknowledge the error by calling the error method or closing the writer.\n * After the caller acknowledges the error, they can attempt to commit again.\n */\n async commit(): Promise<boolean> {\n if (this.errorAccumulated) return false;\n const res = await this.execute({ command: Command.Commit });\n return res.ack;\n }\n\n /**\n * @returns The accumulated error, if any. This method will clear the writer's error\n * state, allowing the writer to be used again.\n */\n async error(): Promise<Error | null> {\n this.stream.send({ command: Command.Error });\n const res = await this.execute({ command: Command.Error });\n return res.error != null ? decodeError(res.error) : null;\n }\n\n /**\n * Closes the writer, raising any accumulated error encountered during operation.\n * A writer MUST be closed after use, and this method should probably be placed\n * in a 'finally' block.\n */\n async close(): Promise<void> {\n await this.stream.closeAndAck();\n }\n\n async execute(req: Request): Promise<Response> {\n // @ts-expect-error\n this.stream.send(req);\n while (true) {\n const res = await this.stream.receive();\n if (res.command === req.command) return res;\n console.warn(\"writer received unexpected response\", res);\n }\n }\n\n private get errorAccumulated(): boolean {\n return this.stream.received();\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type StreamClient } from \"@synnaxlabs/freighter\";\nimport {\n type CrudeTimeStamp,\n type CrudeSeries,\n type CrudeTimeRange,\n type MultiSeries,\n TimeSpan,\n} from \"@synnaxlabs/x\";\n\nimport { KeysOrNames, type KeyOrName, type Params } from \"@/channel/payload\";\nimport { type Retriever, analyzeChannelParams } from \"@/channel/retriever\";\nimport { Frame } from \"@/framer/frame\";\nimport { Iterator } from \"@/framer/iterator\";\nimport { Streamer, type StreamerConfig } from \"@/framer/streamer\";\nimport { Writer, WriterMode, type WriterConfig } from \"@/framer/writer\";\n\nexport class Client {\n private readonly stream: StreamClient;\n private readonly retriever: Retriever;\n\n constructor(stream: StreamClient, retriever: Retriever) {\n this.stream = stream;\n this.retriever = retriever;\n }\n\n /**\n * Opens a new iterator over the given channels within the provided time range.\n *\n * @param tr - A time range to iterate over.\n * @param keys - A list of channel keys to iterate over.\n * @returns a new {@link TypedIterator}.\n */\n async openIterator(tr: CrudeTimeRange, channels: Params): Promise<Iterator> {\n return await Iterator._open(tr, channels, this.retriever, this.stream);\n }\n\n /**\n * Opens a new writer on the given channels.\n *\n * @param config - The configuration for the created writer, see documentation for\n * writerConfig for more detail.\n * @returns a new {@link RecordWriter}.\n */\n async openWriter(config: WriterConfig | Params): Promise<Writer> {\n if (Array.isArray(config) || typeof config !== \"object\")\n config = { channels: config as Params };\n return await Writer._open(this.retriever, this.stream, config);\n }\n\n /***\n * Opens a new streamer on the given channels.\n *\n * @param channels - A key, name, list of keys, or list of names of the channels to\n * stream values from.\n * @throws a QueryError if any of the given channels do not exist.\n * @returns a new {@link Streamer} that must be closed when done streaming, otherwise\n * a network socket will remain open.\n */\n async openStreamer(channels: Params): Promise<Streamer>;\n\n /**\n * Opens a new streamer with the provided configuration.\n *\n * @param config - Configuration parameters for the streamer.\n * @param config.channels - The channels to stream values from. Can be a key, name,\n * list of keys, or list of names.\n * @param config.from - If this parameter is set and is before the current time,\n * the streamer will first read and receive historical data from before this point\n * and then will start reading new values.\n *\n */\n async openStreamer(config: StreamerConfig | Params): Promise<Streamer>;\n\n async openStreamer(config: StreamerConfig | Params): Promise<Streamer> {\n if (Array.isArray(config) || typeof config !== \"object\")\n config = { channels: config as Params };\n return await Streamer._open(this.retriever, this.stream, config);\n }\n\n async write(\n start: CrudeTimeStamp,\n channel: KeyOrName,\n data: CrudeSeries,\n ): Promise<void>;\n\n async write(\n start: CrudeTimeStamp,\n channels: KeysOrNames,\n data: CrudeSeries[],\n ): Promise<void>;\n\n async write(\n start: CrudeTimeStamp,\n data: Record<KeyOrName, CrudeSeries>,\n ): Promise<void>;\n\n /**\n * Writes telemetry to the given channel starting at the given timestamp.\n *\n * @param channels - The key of the channel to write to.\n * @param start - The starting timestamp of the first sample in data.\n * @param data - The telemetry to write. This telemetry must have the same\n * data type as the channel.\n * @throws if the channel does not exist.\n */\n async write(\n start: CrudeTimeStamp,\n channels: Params | Record<KeyOrName, CrudeSeries>,\n data?: CrudeSeries | CrudeSeries[],\n ): Promise<void> {\n if (data == null) {\n const data_ = channels as Record<KeyOrName, CrudeSeries>;\n const w = await this.openWriter({\n start,\n channels: Object.keys(data_),\n mode: WriterMode.PersistOnly,\n });\n try {\n await w.write(data_);\n await w.commit();\n } finally {\n await w.close();\n }\n return;\n }\n const w = await this.openWriter({\n start,\n channels: channels as Params,\n mode: WriterMode.PersistOnly,\n enableAutoCommit: true,\n autoIndexPersistInterval: TimeSpan.MAX,\n });\n try {\n await w.write(channels as Params, data);\n } finally {\n await w.close();\n }\n }\n\n async read(tr: CrudeTimeRange, channel: KeyOrName): Promise<MultiSeries>;\n\n async read(tr: CrudeTimeRange, channels: Params): Promise<Frame>;\n\n async read(tr: CrudeTimeRange, channels: Params): Promise<MultiSeries | Frame> {\n const { single } = analyzeChannelParams(channels);\n const fr = await this.readFrame(tr, channels);\n if (single) return fr.get(channels as KeyOrName);\n return fr;\n }\n\n private async readFrame(tr: CrudeTimeRange, params: Params): Promise<Frame> {\n const i = await this.openIterator(tr, params);\n const frame = new Frame();\n try {\n for await (const f of i) frame.push(f);\n } finally {\n await i.close();\n }\n return frame;\n }\n}\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type device } from \"@/hardware/device\";\nimport { type rack } from \"@/hardware/rack\";\nimport { type task } from \"@/hardware/task\";\n\nexport class Client {\n readonly tasks: task.Client;\n readonly racks: rack.Client;\n readonly devices: device.Client;\n\n constructor(tasks: task.Client, racks: rack.Client, devices: device.Client) {\n this.tasks = tasks;\n this.racks = racks;\n this.devices = devices;\n }\n}\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { type framer } from \"@/framer\";\nimport { type task } from \"@/hardware/task\";\nimport { analyzeParams, checkForMultipleOrNoResults } from \"@/util/retrieve\";\nimport { nullableArrayZ } from \"@/util/zod\";\n\nexport const rackKeyZ = z.number();\n\nexport type RackKey = z.infer<typeof rackKeyZ>;\n\nexport const rackZ = z.object({\n key: rackKeyZ,\n name: z.string(),\n});\n\nexport type RackPayload = z.infer<typeof rackZ>;\n\nexport const newRackZ = rackZ.partial({ key: true });\n\nexport type NewRack = z.input<typeof newRackZ>;\n\nconst RETRIEVE_ENDPOINT = \"/hardware/rack/retrieve\";\nconst CREATE_RACK_ENDPOINT = \"/hardware/rack/create\";\nconst DELETE_RACK_ENDPOINT = \"/hardware/rack/delete\";\n\nconst retrieveRackReqZ = z.object({\n keys: rackKeyZ.array().optional(),\n names: z.string().array().optional(),\n search: z.string().optional(),\n offset: z.number().optional(),\n limit: z.number().optional(),\n});\n\nconst retrieveRackResZ = z.object({\n racks: nullableArrayZ(rackZ),\n});\n\nconst createReqZ = z.object({\n racks: newRackZ.array(),\n});\n\nconst createResZ = z.object({\n racks: rackZ.array(),\n});\n\nconst deleteReqZ = z.object({\n keys: rackKeyZ.array(),\n});\n\nconst deleteResZ = z.object({});\n\nexport class Client implements AsyncTermSearcher<string, RackKey, Rack> {\n readonly type: string = \"rack\";\n private readonly client: UnaryClient;\n private readonly frameClient: framer.Client;\n private readonly tasks: task.Client;\n\n constructor(\n client: UnaryClient,\n frameClient: framer.Client,\n taskClient: task.Client,\n ) {\n this.client = client;\n this.frameClient = frameClient;\n this.tasks = taskClient;\n }\n\n async delete(keys: RackKey | RackKey[]): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_RACK_ENDPOINT,\n { keys: toArray(keys) },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async create(rack: NewRack): Promise<Rack>;\n\n async create(racks: NewRack[]): Promise<Rack[]>;\n\n async create(rack: NewRack | NewRack[]): Promise<Rack | Rack[]> {\n const isSingle = !Array.isArray(rack);\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_RACK_ENDPOINT,\n { racks: toArray(rack) },\n createReqZ,\n createResZ,\n );\n const sugared = this.sugar(res.racks);\n if (isSingle) return sugared[0];\n return sugared;\n }\n\n async search(term: string): Promise<Rack[]> {\n const res = await sendRequired<typeof retrieveRackReqZ, typeof retrieveRackResZ>(\n this.client,\n RETRIEVE_ENDPOINT,\n { search: term },\n retrieveRackReqZ,\n retrieveRackResZ,\n );\n return this.sugar(res.racks);\n }\n\n async page(offset: number, limit: number): Promise<Rack[]> {\n const res = await sendRequired<typeof retrieveRackReqZ, typeof retrieveRackResZ>(\n this.client,\n RETRIEVE_ENDPOINT,\n { offset, limit },\n retrieveRackReqZ,\n retrieveRackResZ,\n );\n return this.sugar(res.racks);\n }\n\n async retrieve(key: string | RackKey): Promise<Rack>;\n\n async retrieve(keys: number[] | RackKey[]): Promise<Rack[]>;\n\n async retrieve(\n params: string | RackKey | string[] | RackKey[],\n ): Promise<Rack | Rack[]> {\n const { variant, normalized, single } = analyzeParams(params, {\n string: \"names\",\n number: \"keys\",\n });\n const res = await sendRequired<typeof retrieveRackReqZ, typeof retrieveRackResZ>(\n this.client,\n RETRIEVE_ENDPOINT,\n { [variant]: normalized },\n retrieveRackReqZ,\n retrieveRackResZ,\n );\n const sugared = this.sugar(res.racks);\n checkForMultipleOrNoResults(\"Rack\", params, sugared, single);\n return single ? sugared[0] : sugared;\n }\n\n private sugar(payloads: RackPayload[]): Rack[] {\n return payloads.map(({ key, name }) => new Rack(key, name, this.tasks));\n }\n}\n\nexport class Rack {\n key: number;\n name: string;\n private readonly tasks: task.Client;\n\n constructor(key: number, name: string, client: task.Client) {\n this.key = key;\n this.name = name;\n this.tasks = client;\n }\n\n async listTasks(): Promise<task.Task[]> {\n return await this.tasks.retrieve(this.key);\n }\n\n async retrieveTaskByName(name: string): Promise<task.Task> {\n return await this.tasks.retrieveByName(name, this.key);\n }\n\n async createTask<\n C extends UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(task: task.NewTask<C, T>): Promise<task.Task<C, D, T>> {\n task.key = (\n (BigInt(this.key) << 32n) +\n (BigInt(task.key ?? 0) & 0xffffffffn)\n ).toString();\n return await this.tasks.create<C, D, T>(task);\n }\n\n async deleteTask(task: bigint): Promise<void> {\n await this.tasks.delete([task]);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type change } from \"@synnaxlabs/x/change\";\nimport { type observe } from \"@synnaxlabs/x/observe\";\nimport { type Series } from \"@synnaxlabs/x/telem\";\n\nimport { type channel } from \"@/channel\";\nimport { framer } from \"@/framer\";\n\nexport type Decoder<K, V> = (\n variant: change.Variant,\n data: Series,\n) => Array<change.Change<K, V>>;\n\nexport interface Observable<K, V>\n extends observe.ObservableAsyncCloseable<Array<change.Change<K, V>>> {}\n\nexport const openObservable = async <K, V>(\n client: framer.Client,\n setChannel: channel.Key | channel.Name,\n deleteChannel: channel.Key | channel.Name,\n ecd: Decoder<K, V>,\n): Promise<Observable<K, V>> => {\n const stream = await client.openStreamer([setChannel, deleteChannel] as channel.Keys);\n const transform = (frame: framer.Frame): [Array<change.Change<K, V>>, boolean] => {\n const changes: Array<change.Change<K, V>> = [];\n if (deleteChannel != null)\n changes.push(...frame.get(deleteChannel).series.flatMap((s) => ecd(\"delete\", s)));\n if (setChannel != null)\n changes.push(...frame.get(setChannel).series.flatMap((s) => ecd(\"set\", s)));\n return [changes, changes.length > 0];\n };\n return new framer.ObservableStreamer<Array<change.Change<K, V>>>(stream, transform);\n};\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient, sendRequired } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord, toArray } from \"@synnaxlabs/x\";\nimport { binary } from \"@synnaxlabs/x/binary\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\nimport { z } from \"zod\";\n\nimport { type framer } from \"@/framer\";\nimport { rackKeyZ } from \"@/hardware/rack/client\";\nimport { signals } from \"@/signals\";\nimport { checkForMultipleOrNoResults } from \"@/util/retrieve\";\nimport { nullableArrayZ } from \"@/util/zod\";\n\nconst DEVICE_SET_NAME = \"sy_device_set\";\nconst DEVICE_DELETE_NAME = \"sy_device_delete\";\n\nconst RETRIEVE_ENDPOINT = \"/hardware/device/retrieve\";\nconst CREATE_ENDPOINT = \"/hardware/device/create\";\nconst DELETE_ENDPOINT = \"/hardware/device/delete\";\n\nexport const deviceKeyZ = z.string();\n\nexport const deviceZ = z.object({\n key: deviceKeyZ,\n rack: rackKeyZ,\n name: z.string(),\n make: z.string(),\n model: z.string(),\n location: z.string(),\n configured: z.boolean().optional(),\n properties: z.record(z.unknown()).or(\n z.string().transform((c) => {\n if (c === \"\") return {};\n return binary.JSON_ECD.decodeString(c);\n }),\n ) as z.ZodType<UnknownRecord>,\n});\n\nexport type Device<P extends UnknownRecord = UnknownRecord> = Omit<\n z.output<typeof deviceZ>,\n \"properties\"\n> & { properties: P };\n\nexport type DeviceKey = z.infer<typeof deviceKeyZ>;\n\nexport const newDeviceZ = deviceZ.extend({\n properties: z.unknown().transform((c) => binary.JSON_ECD.encodeString(c)),\n});\n\nexport type NewDevice<P extends UnknownRecord = UnknownRecord> = Omit<\n z.input<typeof newDeviceZ>,\n \"properties\"\n> & { properties: P };\n\nconst createReqZ = z.object({ devices: newDeviceZ.array() });\n\nconst createResZ = z.object({ devices: deviceZ.array() });\n\nconst deleteReqZ = z.object({ keys: deviceKeyZ.array() });\n\nconst deleteResZ = z.object({});\n\nconst retrieveReqZ = z.object({\n search: z.string().optional(),\n limit: z.number().optional(),\n offset: z.number().optional(),\n keys: deviceKeyZ.array().optional(),\n names: z.string().array().optional(),\n makes: z.string().array().optional(),\n});\n\ntype RetrieveRequest = z.input<typeof retrieveReqZ>;\n\nexport type RetrieveOptions = Pick<RetrieveRequest, \"limit\" | \"offset\" | \"makes\">;\n\ntype PageOptions = Pick<RetrieveOptions, \"makes\">;\n\nconst retrieveResZ = z.object({ devices: nullableArrayZ(deviceZ) });\n\nexport class Client implements AsyncTermSearcher<string, DeviceKey, Device> {\n readonly type = \"device\";\n private readonly client: UnaryClient;\n private readonly frameClient: framer.Client;\n\n constructor(client: UnaryClient, frameClient: framer.Client) {\n this.client = client;\n this.frameClient = frameClient;\n }\n\n async retrieve<P extends UnknownRecord = UnknownRecord>(\n key: string,\n options?: RetrieveOptions,\n ): Promise<Device<P>>;\n\n async retrieve<P extends UnknownRecord = UnknownRecord>(\n keys: string[],\n options?: RetrieveOptions,\n ): Promise<Array<Device<P>>>;\n\n async retrieve<P extends UnknownRecord = UnknownRecord>(\n keys: string | string[],\n options?: RetrieveOptions,\n ): Promise<Device<P> | Array<Device<P>>> {\n const isSingle = !Array.isArray(keys);\n const res = await sendRequired(\n this.client,\n RETRIEVE_ENDPOINT,\n { keys: toArray(keys), ...options },\n retrieveReqZ,\n retrieveResZ,\n );\n checkForMultipleOrNoResults(\"Device\", keys, res.devices, isSingle);\n return (isSingle ? res.devices[0] : res.devices) as Device<P> | Array<Device<P>>;\n }\n\n async search(term: string, options?: RetrieveOptions): Promise<Device[]> {\n return (\n await sendRequired(\n this.client,\n RETRIEVE_ENDPOINT,\n { search: term, ...options },\n retrieveReqZ,\n retrieveResZ,\n )\n ).devices;\n }\n\n async page(offset: number, limit: number, options?: PageOptions): Promise<Device[]> {\n return (\n await sendRequired(\n this.client,\n RETRIEVE_ENDPOINT,\n { offset, limit, ...options },\n retrieveReqZ,\n retrieveResZ,\n )\n ).devices;\n }\n\n async create(device: NewDevice): Promise<Device>;\n\n async create(devices: NewDevice[]): Promise<Device[]>;\n\n async create(devices: NewDevice | NewDevice[]): Promise<Device | Device[]> {\n const isSingle = !Array.isArray(devices);\n const res = await sendRequired(\n this.client,\n CREATE_ENDPOINT,\n { devices: toArray(devices) },\n createReqZ,\n createResZ,\n );\n return isSingle ? res.devices[0] : res.devices;\n }\n\n async delete(keys: string | string[]): Promise<void> {\n await sendRequired(\n this.client,\n DELETE_ENDPOINT,\n { keys: toArray(keys) },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async openDeviceTracker(): Promise<signals.Observable<string, Device>> {\n return await signals.openObservable<string, Device>(\n this.frameClient,\n DEVICE_SET_NAME,\n DEVICE_DELETE_NAME,\n decodeDeviceChanges,\n );\n }\n\n newSearcherWithOptions(\n options: RetrieveOptions,\n ): AsyncTermSearcher<string, DeviceKey, Device> {\n return {\n type: this.type,\n search: async (term: string) => await this.search(term, options),\n retrieve: async (keys: string[]) => await this.retrieve(keys, options),\n page: async (offset: number, limit: number) =>\n await this.page(offset, limit, options),\n };\n }\n}\n\nconst decodeDeviceChanges: signals.Decoder<string, Device> = (variant, data) => {\n if (variant === \"delete\")\n return data.toStrings().map((k) => ({ variant, key: k, value: undefined }));\n return data.parseJSON(deviceZ).map((d) => ({ variant, key: d.key, value: d }));\n};\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient, sendRequired } from \"@synnaxlabs/freighter\";\nimport { binary, type observe } from \"@synnaxlabs/x\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\nimport { TimeSpan, type CrudeTimeSpan } from \"@synnaxlabs/x/telem\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { nanoid } from \"nanoid\";\nimport { z } from \"zod\";\n\nimport { framer } from \"@/framer\";\nimport { type Frame } from \"@/framer/frame\";\nimport { rack } from \"@/hardware/rack\";\nimport { analyzeParams, checkForMultipleOrNoResults } from \"@/util/retrieve\";\nimport { nullableArrayZ } from \"@/util/zod\";\n\nconst TASK_STATE_CHANNEL = \"sy_task_state\";\nconst TASK_CMD_CHANNEL = \"sy_task_cmd\";\n\nexport const taskKeyZ = z.union([\n z.string(),\n z.bigint().transform((k) => k.toString()),\n z.number().transform((k) => k.toString()),\n]);\n\nexport type TaskKey = z.infer<typeof taskKeyZ>;\n\nexport const stateZ = z.object({\n task: taskKeyZ,\n variant: z.string(),\n key: z.string().optional(),\n details: z\n .record(z.unknown())\n .or(\n z.string().transform((c) => {\n if (c === \"\") return {};\n return JSON.parse(c);\n }),\n )\n .or(z.array(z.unknown()))\n .or(z.null()),\n});\n\nexport type State<D extends {} = UnknownRecord> = Omit<\n z.infer<typeof stateZ>,\n \"details\"\n> & {\n details?: D;\n};\n\nexport const taskZ = z.object({\n key: taskKeyZ,\n name: z.string(),\n type: z.string(),\n config: z.record(z.unknown()).or(\n z.string().transform((c) => {\n if (c === \"\") return {};\n return binary.JSON_ECD.decodeString(c);\n }),\n ) as z.ZodType<UnknownRecord>,\n state: stateZ.optional().nullable(),\n});\n\nexport const newTaskZ = taskZ.omit({ key: true }).extend({\n key: taskKeyZ.transform((k) => k.toString()).optional(),\n config: z.unknown().transform((c) => binary.JSON_ECD.encodeString(c)),\n});\n\nexport type NewTask<\n C extends UnknownRecord = UnknownRecord,\n T extends string = string,\n> = Omit<z.input<typeof newTaskZ>, \"config\" | \"state\"> & {\n type: T;\n config: C;\n};\n\nexport type Payload<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n> = Omit<z.output<typeof taskZ>, \"config\" | \"type\" | \"state\"> & {\n type: T;\n config: C;\n state?: State<D> | null;\n};\n\nexport const commandZ = z.object({\n task: taskKeyZ,\n type: z.string(),\n key: z.string(),\n args: z.record(z.unknown()).or(\n z.string().transform((c) => {\n if (c === \"\") return {};\n return JSON.parse(c);\n }),\n ) as z.ZodType<UnknownRecord>,\n});\n\nexport type StateObservable<D extends UnknownRecord = UnknownRecord> =\n observe.ObservableAsyncCloseable<State<D>>;\n\nexport class Task<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n> {\n readonly key: TaskKey;\n readonly name: string;\n readonly type: T;\n readonly config: C;\n readonly state?: State<D>;\n private readonly frameClient: framer.Client;\n\n constructor(\n key: TaskKey,\n name: string,\n type: T,\n config: C,\n frameClient: framer.Client,\n state?: State<D> | null,\n ) {\n this.key = key;\n this.name = name;\n this.type = type;\n this.config = config;\n if (state !== null) this.state = state;\n this.frameClient = frameClient;\n }\n\n get payload(): Payload<C, D> {\n return {\n key: this.key,\n name: this.name,\n type: this.type,\n config: this.config,\n state: this.state,\n };\n }\n\n async executeCommand(type: string, args?: UnknownRecord): Promise<string> {\n const writer = await this.frameClient.openWriter(TASK_CMD_CHANNEL);\n const key = nanoid();\n await writer.write(TASK_CMD_CHANNEL, [{ task: this.key, type, key, args }]);\n await writer.close();\n return key;\n }\n\n async executeCommandSync<D extends UnknownRecord = UnknownRecord>(\n type: string,\n args: UnknownRecord,\n timeout: CrudeTimeSpan,\n ): Promise<State<D>> {\n const streamer = await this.frameClient.openStreamer(TASK_STATE_CHANNEL);\n const cmdKey = await this.executeCommand(type, args);\n let res: State<D>;\n const to = new Promise((resolve) =>\n setTimeout(() => resolve(false), new TimeSpan(timeout).milliseconds),\n );\n while (true) {\n const frame = (await Promise.any([streamer.read(), to])) as Frame | false;\n if (frame === false) throw new Error(\"Command timed out\");\n const parsed = stateZ.safeParse(frame.at(-1).sy_task_state);\n if (parsed.success) {\n res = parsed.data as State<D>;\n if (res.key === cmdKey) break;\n } else {\n console.error(parsed.error);\n }\n }\n streamer.close();\n return res;\n }\n\n async openStateObserver<D extends UnknownRecord = UnknownRecord>(): Promise<\n StateObservable<D>\n > {\n return new framer.ObservableStreamer<State<D>>(\n await this.frameClient.openStreamer(TASK_STATE_CHANNEL),\n (frame) => {\n const s = frame.get(TASK_STATE_CHANNEL);\n if (s.length === 0) return [null, false];\n const parse = stateZ.safeParse(s.at(-1));\n if (!parse.success) return [null, false];\n const state = parse.data as State<D>;\n if (state.task !== this.key) return [null, false];\n return [state, true];\n },\n );\n }\n}\n\nconst retrieveReqZ = z.object({\n rack: rack.rackKeyZ.optional(),\n keys: z.string().array().optional(),\n names: z.string().array().optional(),\n offset: z.number().optional(),\n limit: z.number().optional(),\n includeState: z.boolean().optional(),\n});\n\nconst retrieveResZ = z.object({\n tasks: nullableArrayZ(taskZ),\n});\n\nexport type RetrieveRequest = z.infer<typeof retrieveReqZ>;\n\nexport type RetrieveOptions = Pick<\n RetrieveRequest,\n \"rack\" | \"offset\" | \"limit\" | \"includeState\"\n>;\n\nconst RETRIEVE_ENDPOINT = \"/hardware/task/retrieve\";\nconst CREATE_ENDPOINT = \"/hardware/task/create\";\nconst DELETE_ENDPOINT = \"/hardware/task/delete\";\n\nconst createReqZ = z.object({ tasks: newTaskZ.array() });\nconst createResZ = z.object({ tasks: taskZ.array() });\nconst deleteReqZ = z.object({ keys: taskKeyZ.array() });\nconst deleteResZ = z.object({});\n\nexport class Client implements AsyncTermSearcher<string, TaskKey, Payload> {\n readonly type: string = \"task\";\n private readonly client: UnaryClient;\n private readonly frameClient: framer.Client;\n\n constructor(client: UnaryClient, frameClient: framer.Client) {\n this.client = client;\n this.frameClient = frameClient;\n }\n\n async create<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(task: NewTask<C, T>): Promise<Task<C, D, T>>;\n\n async create<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(tasks: NewTask<C, T>[]): Promise<Task<C, D, T>[]>;\n\n async create<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(\n task: NewTask<C, T> | Array<NewTask<C, T>>,\n ): Promise<Task<C, D, T> | Array<Task<C, D, T>>> {\n const isSingle = !Array.isArray(task);\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { tasks: toArray(task) },\n createReqZ,\n createResZ,\n );\n const sugared = this.sugar(res.tasks) as Array<Task<C, D, T>>;\n return isSingle ? sugared[0] : sugared;\n }\n\n async delete(keys: bigint | bigint[]): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_ENDPOINT,\n { keys: toArray(keys) },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async search(term: string): Promise<Payload[]> {\n return await this.execRetrieve({ keys: [term] });\n }\n\n async page(offset: number, limit: number): Promise<Payload[]> {\n return this.execRetrieve({ offset, limit });\n }\n\n async retrieve<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(rack: number, options?: RetrieveOptions): Promise<Task<C, D, T>[]>;\n\n async retrieve<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(keys: string[], options?: RetrieveOptions): Promise<Task<C, D, T>[]>;\n\n async retrieve<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(key: string, options?: RetrieveOptions): Promise<Task<C, D, T>>;\n\n async retrieve<\n C extends UnknownRecord = UnknownRecord,\n D extends {} = UnknownRecord,\n T extends string = string,\n >(\n rack: number | string | string[],\n options?: RetrieveOptions,\n ): Promise<Task<C, D, T> | Task<C, D, T>[]> {\n const { single, normalized, variant } = analyzeParams(\n rack,\n { number: \"rack\", string: \"keys\" },\n { convertNumericStrings: false },\n );\n let req: RetrieveRequest = { ...options };\n if (variant === \"rack\") req.rack = rack as number;\n else req.keys = normalized as string[];\n const tasks = await this.execRetrieve(req);\n const sugared = this.sugar(tasks) as Array<Task<C, D, T>>;\n return single && variant !== \"rack\" ? sugared[0] : sugared;\n }\n\n async retrieveByName(name: string, rack?: number): Promise<Task> {\n const tasks = await this.execRetrieve({ names: [name], rack });\n checkForMultipleOrNoResults(\"Task\", name, tasks, true);\n return this.sugar(tasks)[0];\n }\n\n private async execRetrieve(req: RetrieveRequest): Promise<Payload[]> {\n const res = await sendRequired(\n this.client,\n RETRIEVE_ENDPOINT,\n req,\n retrieveReqZ,\n retrieveResZ,\n );\n return res.tasks;\n }\n\n private sugar(payloads: Payload[]): Task[] {\n return payloads.map(\n ({ key, name, type, config, state }) =>\n new Task(key, name, type, config, this.frameClient, state),\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { ontology } from \"@/ontology\";\n\nexport class Group {\n key: string;\n name: string;\n\n constructor(name: string, key: string) {\n this.key = key;\n this.name = name;\n }\n\n get ontologyID(): ontology.ID {\n return new ontology.ID({\n type: \"group\",\n key: this.key,\n });\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nexport const keyZ = z.string().uuid();\nexport type Key = z.infer<typeof keyZ>;\nexport type Name = string;\nexport type Keys = Key[];\nexport type Names = Name[];\nexport type Params = Key | Name | Keys | Names;\n\nexport const payloadZ = z.object({\n key: keyZ,\n name: z.string(),\n});\n\nexport type Payload = z.infer<typeof payloadZ>;\n\nexport type ParamAnalysisResult =\n | {\n single: true;\n variant: \"keys\";\n normalized: Keys;\n actual: Key;\n }\n | {\n single: true;\n variant: \"names\";\n normalized: Names;\n actual: Name;\n }\n | {\n single: false;\n variant: \"keys\";\n normalized: Keys;\n actual: Keys;\n }\n | {\n single: false;\n variant: \"names\";\n normalized: Names;\n actual: Names;\n };\n\nexport const analyzeParams = (params: Params): ParamAnalysisResult => {\n const normal = toArray(params) as Keys | Names;\n if (normal.length === 0) {\n throw new Error(\"No groups specified\");\n }\n const isKey = keyZ.safeParse(normal[0]).success;\n return {\n single: !Array.isArray(params),\n variant: isKey ? \"keys\" : \"names\",\n normalized: normal,\n actual: params,\n } as const as ParamAnalysisResult;\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { change } from \"@synnaxlabs/x\";\nimport { z } from \"zod\";\n\nexport type ResourceChange = change.Change<ID, Resource>;\nexport type ResourceSet = change.Set<ID, Resource>;\nexport type ResourceDelete = change.Delete<ID, Resource>;\nexport type RelationshipChange = change.Change<Relationship, undefined>;\nexport type RelationshipSet = change.Set<Relationship, undefined>;\nexport type RelationshipDelete = change.Delete<Relationship, undefined>;\n\nconst resourceTypeZ = z.union([\n z.literal(\"label\"),\n z.literal(\"builtin\"),\n z.literal(\"cluster\"),\n z.literal(\"channel\"),\n z.literal(\"node\"),\n z.literal(\"group\"),\n z.literal(\"range\"),\n z.literal(\"range-alias\"),\n z.literal(\"user\"),\n z.literal(\"workspace\"),\n z.literal(\"schematic\"),\n z.literal(\"lineplot\"),\n z.literal(\"rack\"),\n z.literal(\"device\"),\n z.literal(\"task\"),\n]);\n\nexport type ResourceType = z.infer<typeof resourceTypeZ>;\n\nexport const idZ = z.object({ type: resourceTypeZ, key: z.string() });\n\nexport type IDPayload = z.infer<typeof idZ>;\n\nexport const stringIDZ = z.string().transform((v) => {\n const [type, key] = v.split(\":\");\n return { type: type as ResourceType, key };\n});\n\nexport const crudeIDZ = z.union([stringIDZ, idZ]);\n\nexport class ID {\n type: ResourceType;\n key: string;\n\n constructor(args: z.input<typeof crudeIDZ> | ID) {\n if (args instanceof ID) {\n this.type = args.type;\n this.key = args.key;\n } else if (typeof args === \"string\") {\n const [type, key] = args.split(\":\");\n this.type = type as ResourceType;\n this.key = key;\n } else {\n this.type = args.type;\n this.key = args.key;\n }\n }\n\n toString(): string {\n return `${this.type}:${this.key}`;\n }\n\n get payload(): z.infer<typeof idZ> {\n return {\n type: this.type,\n key: this.key,\n };\n }\n\n static readonly z = z.union([crudeIDZ, z.instanceof(ID)]).transform((v) => new ID(v));\n}\n\nexport const Root = new ID({ type: \"builtin\", key: \"root\" });\n\nexport const schemaFieldZ = z.object({\n type: z.number(),\n});\n\nexport type SchemaField = z.infer<typeof schemaFieldZ>;\n\nexport const schemaZ = z.object({\n type: resourceTypeZ,\n fields: z.record(schemaFieldZ),\n});\n\nexport type Schema = z.infer<typeof schemaZ>;\n\nexport const resourceSchemaZ = z\n .object({\n id: ID.z,\n name: z.string(),\n schema: schemaZ.optional().nullable(),\n data: z.record(z.unknown()).optional().nullable(),\n })\n .transform((resource) => {\n return {\n key: resource.id.toString(),\n ...resource,\n };\n });\n\nexport type Resource<T extends {} = {}> = Omit<\n z.output<typeof resourceSchemaZ>,\n \"data\"\n> & { data?: T | null };\n\nexport const relationshipSchemaZ = z.object({\n from: ID.z,\n type: z.string(),\n to: ID.z,\n});\n\nexport type Relationship = z.infer<typeof relationshipSchemaZ>;\n\nexport const parseRelationship = (str: string): Relationship => {\n const [from, type, to] = str.split(\"->\");\n return { from: new ID(from), type, to: new ID(to) };\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { z } from \"zod\";\n\nimport { type Payload, payloadZ } from \"@/ontology/group/payload\";\nimport { idZ, type ID } from \"@/ontology/payload\";\n\nconst resZ = z.object({\n group: payloadZ,\n});\n\nconst createReqZ = z.object({\n parent: idZ,\n name: z.string(),\n});\n\nconst renameReqZ = z.object({\n key: z.string(),\n name: z.string(),\n});\n\nconst deleteReqZ = z.object({\n keys: z.array(z.string()),\n});\n\nexport class Writer {\n private static readonly ENDPOINT = \"/ontology/create-group\";\n private static readonly ENDPOINT_RENAME = \"/ontology/rename-group\";\n private static readonly ENDPOINT_DELETE = \"/ontology/delete-group\";\n client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async create(parent: ID, name: string): Promise<Payload> {\n const [res, err] = await this.client.send(Writer.ENDPOINT, {parent, name},createReqZ, resZ);\n if (err != null) throw err;\n return res.group;\n }\n\n async rename(key: string, name: string): Promise<void> {\n const req = { key, name };\n const [, err] = await this.client.send(Writer.ENDPOINT_RENAME, req, renameReqZ, z.object({}));\n if (err != null) throw err;\n }\n\n async delete(keys: string[]): Promise<void> {\n const req = { keys };\n const [, err] = await this.client.send(Writer.ENDPOINT_DELETE, req, deleteReqZ, z.object({}));\n if (err != null) throw err;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\n\nimport { Group } from \"@/ontology/group/group\";\nimport { type Payload } from \"@/ontology/group/payload\";\nimport { Writer } from \"@/ontology/group/writer\";\nimport { type ID } from \"@/ontology/payload\";\n\nexport class Client {\n private readonly creator: Writer;\n\n constructor(unary: UnaryClient) {\n this.creator = new Writer(unary);\n }\n\n async create(parent: ID, name: string): Promise<Group> {\n return this.sugar(await this.creator.create(parent, name));\n }\n\n async rename(key: string, name: string): Promise<void> {\n return await this.creator.rename(key, name);\n }\n\n async delete(...keys: string[]): Promise<void> {\n return await this.creator.delete(keys);\n }\n\n private sugar(payload: Payload): Group {\n return new Group(payload.name, payload.key);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { z } from \"zod\";\n\nimport { idZ, type ID } from \"@/ontology/payload\";\n\nconst ENDPOINTS = {\n ADD_CHILDREN: \"/ontology/add-children\",\n REMOVE_CHILDREN: \"/ontology/remove-children\",\n MOVE_CHILDREN: \"/ontology/move-children\",\n};\n\nconst addRemoveChildrenReqZ = z.object({\n id: idZ,\n children: idZ.array(),\n});\n\nconst moveChildrenReqZ = z.object({\n from: idZ,\n to: idZ,\n children: idZ.array(),\n});\n\nexport class Writer {\n client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async addChildren(id: ID, ...children: ID[]): Promise<void> {\n await sendRequired<typeof addRemoveChildrenReqZ, z.ZodTypeAny>(\n this.client, \n ENDPOINTS.ADD_CHILDREN, \n { id, children },\n addRemoveChildrenReqZ, \n z.object({})\n );\n }\n\n async removeChildren(id: ID, ...children: ID[]): Promise<void> {\n await sendRequired<typeof addRemoveChildrenReqZ, z.ZodTypeAny>(\n this.client,\n ENDPOINTS.REMOVE_CHILDREN,\n { id, children },\n addRemoveChildrenReqZ,\n z.object({}),\n );\n }\n\n async moveChildren(from: ID, to: ID, ...children: ID[]): Promise<void> {\n const req = { from, to, children };\n await sendRequired(this.client, ENDPOINTS.MOVE_CHILDREN, req, moveChildrenReqZ, z.object({}));\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\n\nimport { QueryError } from \"@/errors\";\nimport { framer } from \"@/framer\";\nimport { group } from \"@/ontology/group\";\nimport {\n ID,\n IDPayload,\n RelationshipChange,\n ResourceChange,\n idZ,\n parseRelationship,\n resourceSchemaZ,\n type Resource,\n} from \"@/ontology/payload\";\nimport { Writer } from \"@/ontology/writer\";\nimport { z } from \"zod\";\nimport { observe, toArray } from \"@synnaxlabs/x\";\nimport { Frame } from \"@/framer/frame\";\n\nconst RETRIEVE_ENDPOINT = \"/ontology/retrieve\";\n\nconst retrieveReqZ = z.object({\n ids: idZ.array().optional(),\n children: z.boolean().optional(),\n parents: z.boolean().optional(),\n includeSchema: z.boolean().optional(),\n excludeFieldData: z.boolean().optional(),\n term: z.string().optional(),\n limit: z.number().optional(),\n offset: z.number().optional(),\n});\n\ntype RetrieveRequest = z.infer<typeof retrieveReqZ>;\n\nexport type RetrieveOptions = Pick<\n RetrieveRequest,\n \"includeSchema\" | \"excludeFieldData\"\n>;\n\nconst retrieveResZ = z.object({\n resources: resourceSchemaZ.array(),\n});\n\nconst parseIDs = (ids: ID | ID[] | string | string[]): IDPayload[] =>\n toArray(ids).map((id) => new ID(id).payload);\n\n/** The core client class for executing queries against a Synnax cluster ontology */\nexport class Client implements AsyncTermSearcher<string, string, Resource> {\n readonly type: string = \"ontology\";\n groups: group.Client;\n private readonly client: UnaryClient;\n private readonly writer: Writer;\n private readonly framer: framer.Client;\n\n constructor(unary: UnaryClient, framer: framer.Client) {\n this.client = unary;\n this.writer = new Writer(unary);\n this.groups = new group.Client(unary);\n this.framer = framer;\n }\n\n async search(term: string, options?: RetrieveOptions): Promise<Resource[]> {\n return await this.execRetrieve({ term, ...options });\n }\n\n async retrieve(id: ID | string, options?: RetrieveOptions): Promise<Resource>;\n\n async retrieve(ids: ID[] | string[], options?: RetrieveOptions): Promise<Resource[]>;\n\n async retrieve(\n ids: ID | ID[] | string | string[],\n options?: RetrieveOptions,\n ): Promise<Resource | Resource[]> {\n const resources = await this.execRetrieve({ ids: parseIDs(ids), ...options });\n if (Array.isArray(ids)) return resources;\n if (resources.length === 0)\n throw new QueryError(`No resource found with ID ${ids.toString()}`);\n return resources[0];\n }\n\n async page(\n offset: number,\n limit: number,\n options?: RetrieveOptions,\n ): Promise<Resource[]> {\n return await this.execRetrieve({ offset, limit, ...options });\n }\n\n async retrieveChildren(\n ids: ID | ID[],\n options?: RetrieveOptions,\n ): Promise<Resource[]> {\n return await this.execRetrieve({ ids: parseIDs(ids), children: true, ...options });\n }\n\n async retrieveParents(\n ids: ID | ID[],\n options?: RetrieveOptions,\n ): Promise<Resource[]> {\n return await this.execRetrieve({ ids: parseIDs(ids), parents: true, ...options });\n }\n\n async addChildren(id: ID, ...children: ID[]): Promise<void> {\n return await this.writer.addChildren(id, ...children);\n }\n\n async removeChildren(id: ID, ...children: ID[]): Promise<void> {\n return await this.writer.removeChildren(id, ...children);\n }\n\n async moveChildren(from: ID, to: ID, ...children: ID[]): Promise<void> {\n return await this.writer.moveChildren(from, to, ...children);\n }\n\n async openChangeTracker(): Promise<ChangeTracker> {\n return await ChangeTracker.open(this.framer, this);\n }\n\n newSearcherWithOptions(\n options: RetrieveOptions,\n ): AsyncTermSearcher<string, string, Resource> {\n return {\n type: this.type,\n search: (term: string) => this.search(term, options),\n retrieve: (ids: string[]) => this.retrieve(ids, options),\n page: (offset: number, limit: number) => this.page(offset, limit, options),\n };\n }\n\n private async execRetrieve(request: RetrieveRequest): Promise<Resource[]> {\n const { resources } = await sendRequired(\n this.client,\n RETRIEVE_ENDPOINT,\n request,\n retrieveReqZ,\n retrieveResZ,\n );\n return resources;\n }\n}\n\nconst RESOURCE_SET_NAME = \"sy_ontology_resource_set\";\nconst RESOURCE_DELETE_NAME = \"sy_ontology_resource_delete\";\nconst RELATIONSHIP_SET_NAME = \"sy_ontology_relationship_set\";\nconst RELATIONSHIP_DELETE_NAME = \"sy_ontology_relationship_delete\";\n\nexport class ChangeTracker {\n private readonly resourceObs: observe.Observer<ResourceChange[]>;\n private readonly relationshipObs: observe.Observer<RelationshipChange[]>;\n\n readonly relationships: observe.Observable<RelationshipChange[]>;\n readonly resources: observe.Observable<ResourceChange[]>;\n\n private readonly streamer: framer.Streamer;\n private readonly client: Client;\n private readonly closePromise: Promise<void>;\n\n constructor(streamer: framer.Streamer, client: Client) {\n this.relationshipObs = new observe.Observer<RelationshipChange[]>();\n this.relationships = this.relationshipObs;\n this.resourceObs = new observe.Observer<ResourceChange[]>();\n this.resources = this.resourceObs;\n this.client = client;\n this.streamer = streamer;\n this.closePromise = this.start();\n }\n\n async close(): Promise<void> {\n this.streamer.close();\n await this.closePromise;\n }\n\n private async start(): Promise<void> {\n for await (const frame of this.streamer) {\n await this.update(frame);\n }\n }\n\n private async update(frame: Frame): Promise<void> {\n const resSets = await this.parseResourceSets(frame);\n const resDeletes = this.parseResourceDeletes(frame);\n const allResources = resSets.concat(resDeletes);\n if (allResources.length > 0) this.resourceObs.notify(resSets.concat(resDeletes));\n const relSets = this.parseRelationshipSets(frame);\n const relDeletes = this.parseRelationshipDeletes(frame);\n const allRelationships = relSets.concat(relDeletes);\n if (allRelationships.length > 0)\n this.relationshipObs.notify(relSets.concat(relDeletes));\n }\n\n private parseRelationshipSets(frame: Frame): RelationshipChange[] {\n const relationships = frame.get(RELATIONSHIP_SET_NAME);\n if (relationships.length === 0) return [];\n return Array.from(relationships.as(\"string\")).map((rel) => ({\n variant: \"set\",\n key: parseRelationship(rel),\n value: undefined,\n }));\n }\n\n private parseRelationshipDeletes(frame: Frame): RelationshipChange[] {\n const relationships = frame.get(RELATIONSHIP_DELETE_NAME);\n if (relationships.length === 0) return [];\n return Array.from(relationships.as(\"string\")).map((rel) => ({\n variant: \"delete\",\n key: parseRelationship(rel),\n }));\n }\n\n private async parseResourceSets(frame: Frame): Promise<ResourceChange[]> {\n const sets = frame.get(RESOURCE_SET_NAME);\n if (sets.length === 0) return [];\n // We should only ever get one series of sets\n const ids = Array.from(sets.as(\"string\")).map((id: string) => new ID(id));\n try {\n const resources = await this.client.retrieve(ids);\n return resources.map((resource) => ({\n variant: \"set\",\n key: resource.id,\n value: resource,\n }));\n } catch (e) {\n if (e instanceof QueryError) return [];\n throw e;\n }\n }\n\n private parseResourceDeletes(frame: Frame): ResourceChange[] {\n const deletes = frame.get(RESOURCE_DELETE_NAME);\n if (deletes.length === 0) return [];\n // We should only ever get one series of deletes\n return Array.from(deletes.as(\"string\")).map((str) => ({\n variant: \"delete\",\n key: new ID(str),\n }));\n }\n\n static async open(client: framer.Client, retriever: Client): Promise<ChangeTracker> {\n const streamer = await client.openStreamer([\n RESOURCE_SET_NAME,\n RESOURCE_DELETE_NAME,\n RELATIONSHIP_SET_NAME,\n RELATIONSHIP_DELETE_NAME,\n ]);\n return new ChangeTracker(streamer, retriever);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { z } from \"zod\";\n\nimport { ontology } from \"@/ontology\";\n\nexport const keyZ = z.string().uuid();\n\nexport type Key = z.infer<typeof keyZ>;\n\nexport type Params = Key | Key[];\n\nexport const labelZ = z.object({\n key: keyZ,\n name: z.string().min(1),\n color: z.string(),\n});\n\nexport type Label = z.infer<typeof labelZ>;\n\nexport const ontologyID = (key: Key): ontology.ID =>\n new ontology.ID({ type: \"label\", key });\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { keyZ, type Label, labelZ, type Params } from \"@/label/payload\";\nimport { ontology } from \"@/ontology\";\n\nconst reqZ = z.object({\n keys: keyZ.array().optional(),\n for: ontology.idZ.optional(),\n search: z.string().optional(),\n offset: z.number().optional(),\n limit: z.number().optional(),\n});\n\ntype Request = z.infer<typeof reqZ>;\n\nconst resZ = z.object({\n labels: labelZ.array().optional().default([]),\n});\n\nexport class Retriever {\n private static readonly ENDPOINT = \"/label/retrieve\";\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async retrieve(params: Params): Promise<Label[]> {\n const normalized = toArray(params);\n return await this.execute({ keys: normalized });\n }\n\n async retrieveFor(id: ontology.ID): Promise<Label[]> {\n return await this.execute({ for: id });\n }\n\n async search(term: string): Promise<Label[]> {\n return await this.execute({ search: term });\n }\n\n async page(offset: number, limit: number): Promise<Label[]> {\n return await this.execute({ offset, limit });\n }\n\n private async execute(req: Request): Promise<Label[]> {\n const [res, err] = await this.client.send<typeof reqZ, typeof resZ>(\n Retriever.ENDPOINT,\n req,\n reqZ,\n resZ,\n );\n if (err != null) throw err;\n return res.labels;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { type Key, keyZ, type Label, labelZ } from \"@/label/payload\";\nimport { ontology } from \"@/ontology\";\n\nexport const newLabelPayloadZ = labelZ.extend({ key: keyZ.optional() });\n\nexport type NewLabelPayload = z.infer<typeof newLabelPayloadZ>;\n\nconst createReqZ = z.object({\n labels: newLabelPayloadZ.array(),\n});\n\nconst createResZ = z.object({\n labels: labelZ.array(),\n});\n\nconst deleteReqZ = z.object({\n keys: keyZ.array(),\n});\n\nconst setReqZ = z.object({\n id: ontology.idZ,\n labels: keyZ.array(),\n});\n\nconst removeReqZ = setReqZ;\n\nconst emptyResZ = z.object({});\n\nconst CREATE_ENDPOINT = \"/label/create\";\nconst DELETE_ENDPOINT = \"/label/delete\";\nconst SET_ENDPOINT = \"/label/set\";\nconst REMOVE_ENDPOINT = \"/label/remove\";\n\nexport class Writer {\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async create(labels: NewLabelPayload | NewLabelPayload[]): Promise<Label[]> {\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { labels: toArray(labels) },\n createReqZ,\n createResZ,\n );\n return res.labels;\n }\n\n async delete(keys: Key | Key[]): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof emptyResZ>(\n this.client,\n DELETE_ENDPOINT,\n { keys: toArray(keys) },\n deleteReqZ,\n emptyResZ,\n );\n }\n\n async set(id: ontology.ID, labels: Key[]): Promise<void> {\n await sendRequired<typeof setReqZ, typeof emptyResZ>(\n this.client,\n SET_ENDPOINT,\n { id, labels },\n setReqZ,\n emptyResZ,\n );\n }\n\n async remove(id: ontology.ID, labels: Key[]): Promise<void> {\n await sendRequired<typeof removeReqZ, typeof emptyResZ>(\n this.client,\n REMOVE_ENDPOINT,\n { id, labels },\n removeReqZ,\n emptyResZ,\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\n\nimport { type framer } from \"@/framer\";\nimport { type Key, type Label, labelZ } from \"@/label/payload\";\nimport { Retriever } from \"@/label/retriever\";\nimport { Writer, type NewLabelPayload } from \"@/label/writer\";\nimport { type ontology } from \"@/ontology\";\nimport { signals } from \"@/signals\";\n\nconst LABEL_SET_NAME = \"sy_label_set\";\nconst LABEL_DELETE_NAME = \"sy_label_delete\";\n\nexport class Client implements AsyncTermSearcher<string, Key, Label> {\n readonly type: string = \"label\";\n private readonly retriever: Retriever;\n private readonly writer: Writer;\n private readonly frameClient: framer.Client;\n\n constructor(client: UnaryClient, frameClient: framer.Client) {\n this.writer = new Writer(client);\n this.retriever = new Retriever(client);\n this.frameClient = frameClient;\n }\n\n async search(term: string): Promise<Label[]> {\n return await this.retriever.search(term);\n }\n\n async retrieve(key: Key): Promise<Label>;\n\n async retrieve(keys: Key[]): Promise<Label[]>;\n\n async retrieve(keys: Key | Key[]): Promise<Label | Label[]> {\n const isMany = Array.isArray(keys);\n const res = await this.retriever.retrieve(keys);\n return isMany ? res : res[0];\n }\n\n async retrieveFor(id: ontology.ID): Promise<Label[]> {\n return await this.retriever.retrieveFor(id);\n }\n\n async label(id: ontology.ID, labels: Key[]): Promise<void> {\n await this.writer.set(id, labels);\n }\n\n async removeLabels(id: ontology.ID, labels: Key[]): Promise<void> {\n await this.writer.remove(id, labels);\n }\n\n async page(offset: number, limit: number): Promise<Label[]> {\n return await this.retriever.page(offset, limit);\n }\n\n async create(label: NewLabelPayload): Promise<Label>;\n\n async create(labels: NewLabelPayload[]): Promise<Label[]>;\n\n async create(labels: NewLabelPayload | NewLabelPayload[]): Promise<Label | Label[]> {\n const isMany = Array.isArray(labels);\n const res = await this.writer.create(labels);\n return isMany ? res : res[0];\n }\n\n async delete(key: Key): Promise<void>;\n\n async delete(keys: Key[]): Promise<void>;\n\n async delete(keys: Key | Key[]): Promise<void> {\n await this.writer.delete(keys);\n }\n\n async openChangeTracker(): Promise<signals.Observable<string, Label>> {\n return await signals.openObservable<string, Label>(\n this.frameClient,\n LABEL_SET_NAME,\n LABEL_DELETE_NAME,\n decodeChanges,\n );\n }\n}\n\nconst decodeChanges: signals.Decoder<string, Label> = (variant, data) => {\n if (variant === \"delete\")\n return data.toUUIDs().map((v) => ({\n variant,\n key: v,\n }));\n return data.parseJSON(labelZ).map((l) => ({\n variant,\n key: l.key,\n value: l,\n }));\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { TimeRange } from \"@synnaxlabs/x/telem\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nexport const keyZ = z.string().uuid();\nexport type Key = z.infer<typeof keyZ>;\nexport type Name = string;\nexport type Keys = Key[];\nexport type Names = Name[];\nexport type Params = Key | Name | Keys | Names;\n\nexport const payloadZ = z.object({\n key: keyZ,\n name: z.string().min(1),\n timeRange: TimeRange.z,\n color: z.string().optional(),\n});\nexport type Payload = z.infer<typeof payloadZ>;\n\nexport const newPayloadZ = payloadZ.extend({\n key: z.string().uuid().optional(),\n});\nexport type NewPayload = z.infer<typeof newPayloadZ>;\n\nexport type ParamAnalysisResult =\n | {\n single: true;\n variant: \"keys\";\n normalized: Keys;\n actual: Key;\n }\n | {\n single: true;\n variant: \"names\";\n normalized: Names;\n actual: Name;\n }\n | {\n single: false;\n variant: \"keys\";\n normalized: Keys;\n actual: Keys;\n }\n | {\n single: false;\n variant: \"names\";\n normalized: Names;\n actual: Names;\n };\n\nexport const analyzeParams = (params: Params): ParamAnalysisResult => {\n const normal = toArray(params) as Keys | Names;\n if (normal.length === 0) {\n throw new Error(\"Range params must not be empty\");\n }\n const isKey = keyZ.safeParse(normal[0]).success;\n return {\n single: !Array.isArray(params),\n variant: isKey ? \"keys\" : \"names\",\n normalized: normal,\n actual: params,\n } as const as ParamAnalysisResult;\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { z } from \"zod\";\n\nimport { QueryError } from \"@/errors\";\nimport { type Payload, payloadZ, type Key, keyZ } from \"@/ranger/payload\";\n\nconst setActiveResZ = z.object({});\n\nconst retrieveActiveResZ = z.object({\n range: payloadZ,\n});\n\nconst setActiveReqZ = z.object({\n range: keyZ,\n});\n\nconst clearActiveReqZ = z.object({\n range: keyZ,\n});\n\nconst clearActiveResZ = z.object({});\n\nconst SET_ENDPOINT = \"/range/set-active\";\nconst RETRIEVE_ENDPOINT = \"/range/retrieve-active\";\nconst CLEAR_ENDPOINT = \"/range/clear-active\";\n\nexport class Active {\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async setActive(range: Key): Promise<void> {\n await sendRequired<typeof setActiveReqZ, typeof setActiveResZ>(\n this.client,\n SET_ENDPOINT,\n { range },\n setActiveReqZ,\n setActiveResZ,\n );\n }\n\n async retrieveActive(): Promise<Payload | null> {\n const [res, err] = await this.client.send(\n RETRIEVE_ENDPOINT,\n {},\n z.object({}),\n retrieveActiveResZ,\n );\n if (err instanceof QueryError) return null;\n if (err != null) throw err;\n return res.range;\n }\n\n async clearActive(range: Key): Promise<void> {\n await sendRequired<typeof clearActiveReqZ, typeof clearActiveResZ>(\n this.client,\n CLEAR_ENDPOINT,\n { range },\n clearActiveReqZ,\n clearActiveResZ,\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type change } from \"@synnaxlabs/x/change\";\nimport { z } from \"zod\";\n\nimport { type channel } from \"@/channel\";\nimport { keyZ as channelKeyZ, type Key as ChannelKey } from \"@/channel/payload\";\nimport { type Client as FrameClient } from \"@/framer/client\";\nimport { type Key, keyZ } from \"@/ranger/payload\";\nimport { signals } from \"@/signals\";\n\nexport const ALIAS_SET_NAME = \"sy_range_alias_set\";\nexport const ALIAS_DELETE_NAME = \"sy_range_alias_delete\";\n\nconst resolveReqZ = z.object({\n range: keyZ,\n aliases: z.string().array(),\n});\n\nconst resolveResZ = z.object({\n aliases: z.record(z.string(), channelKeyZ),\n});\n\nconst setReqZ = z.object({\n range: keyZ,\n aliases: z.record(channelKeyZ.or(z.string()), z.string()),\n});\n\nconst setResZ = z.unknown();\n\nconst deleteReqZ = z.object({\n range: keyZ,\n channels: channelKeyZ.array(),\n});\n\nconst deleteResZ = z.unknown();\n\nconst listReqZ = z.object({\n range: keyZ,\n});\n\nconst listResZ = z.object({\n aliases: z.record(z.string(), z.string()),\n});\n\nexport class Aliaser {\n private static readonly SET_ENDPOINT = \"/range/alias/set\";\n private static readonly RESOLVE_ENDPOINT = \"/range/alias/resolve\";\n private static readonly LIST_ENDPOINT = \"/range/alias/list\";\n private static readonly DELETE_ENDPOINT = \"/range/alias/delete\";\n private readonly frameClient: FrameClient;\n private readonly cache = new Map<string, ChannelKey>();\n private readonly client: UnaryClient;\n private readonly rangeKey: Key;\n\n constructor(rangeKey: Key, frameClient: FrameClient, client: UnaryClient) {\n this.rangeKey = rangeKey;\n this.cache = new Map();\n this.client = client;\n this.frameClient = frameClient;\n }\n\n resolve(aliases: string): Promise<ChannelKey>;\n\n resolve(aliases: string[]): Promise<Record<string, ChannelKey>>;\n\n async resolve(\n aliases: string | string[],\n ): Promise<ChannelKey | Record<string, ChannelKey>> {\n const toFetch: string[] = [];\n const isSingle = typeof aliases === \"string\";\n const cached: Record<string, ChannelKey> = {};\n if (isSingle) {\n const c = this.cache.get(aliases);\n if (c != null) return c;\n toFetch.push(aliases);\n } else\n aliases.forEach((alias) => {\n const c = this.cache.get(alias);\n if (c != null) cached[alias] = c;\n else toFetch.push(alias);\n });\n if (toFetch.length === 0) return cached;\n const res = await sendRequired<typeof resolveReqZ, typeof resolveResZ>(\n this.client,\n Aliaser.RESOLVE_ENDPOINT,\n { range: this.rangeKey, aliases: toFetch },\n resolveReqZ,\n resolveResZ,\n );\n Object.entries(res.aliases).forEach(([alias, key]) => this.cache.set(alias, key));\n return isSingle ? res.aliases[toFetch[0]] : { ...cached, ...res.aliases };\n }\n\n async set(aliases: Record<ChannelKey, string>): Promise<void> {\n await sendRequired<typeof setReqZ, typeof setResZ>(\n this.client,\n Aliaser.SET_ENDPOINT,\n { range: this.rangeKey, aliases },\n setReqZ,\n setResZ,\n );\n }\n\n async list(): Promise<Record<ChannelKey, string>> {\n return (\n await sendRequired<typeof listReqZ, typeof listResZ>(\n this.client,\n Aliaser.LIST_ENDPOINT,\n { range: this.rangeKey },\n listReqZ,\n listResZ,\n )\n ).aliases;\n }\n\n async delete(aliases: ChannelKey[]): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n Aliaser.DELETE_ENDPOINT,\n { range: this.rangeKey, channels: aliases },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async openChangeTracker(): Promise<signals.Observable<string, Alias>> {\n return await signals.openObservable<string, Alias>(\n this.frameClient,\n ALIAS_SET_NAME,\n ALIAS_DELETE_NAME,\n decodeAliasChanges(this.rangeKey),\n );\n }\n}\n\nexport interface Alias {\n range: Key;\n channel: channel.Key;\n alias: string;\n}\n\nexport type AliasChange = change.Change<string, Alias>;\n\nconst aliasZ = z.object({\n range: keyZ,\n channel: channelKeyZ,\n alias: z.string(),\n});\n\nconst aliasSeparator = \"---\";\n\nconst decodeAliasChanges =\n (rangeKey: Key): signals.Decoder<string, Alias> =>\n (variant, data) => {\n if (variant === \"delete\") {\n return data\n .toStrings()\n .filter((k) => k.split(aliasSeparator)[0] === rangeKey)\n .map((alias) => ({\n variant,\n key: alias,\n value: undefined,\n }));\n }\n return data.parseJSON(aliasZ).map((alias) => ({\n variant,\n key: alias.alias,\n value: alias,\n }));\n };\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient, sendRequired } from \"@synnaxlabs/freighter\";\nimport { isObject } from \"@synnaxlabs/x/identity\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { type Key, keyZ } from \"@/ranger/payload\";\n\nconst getReqZ = z.object({\n range: keyZ,\n keys: z.string().array(),\n});\n\nconst getResZ = z.object({\n pairs: z.record(z.string(), z.string()),\n});\n\nexport type GetRequest = z.infer<typeof getReqZ>;\n\nconst setReqZ = z.object({\n range: keyZ,\n pairs: z.record(z.string(), z.string()),\n});\n\nexport type SetRequest = z.infer<typeof setReqZ>;\n\nconst deleteReqZ = z.object({\n range: keyZ,\n keys: z.string().array(),\n});\n\nexport type DeleteRequest = z.infer<typeof deleteReqZ>;\n\nexport class KV {\n private static readonly GET_ENDPOINT = \"/range/kv/get\";\n private static readonly SET_ENDPOINT = \"/range/kv/set\";\n private static readonly DELETE_ENDPOINT = \"/range/kv/delete\";\n private readonly rangeKey: Key;\n private readonly client: UnaryClient;\n\n constructor(rng: Key, client: UnaryClient) {\n this.rangeKey = rng;\n this.client = client;\n }\n\n async get(key: string): Promise<string>;\n\n async get(keys: string[]): Promise<Record<string, string>>;\n\n async get(keys: string | string[]): Promise<string | Record<string, string>> {\n const [res, err] = await this.client.send(\n KV.GET_ENDPOINT,\n { range: this.rangeKey, keys: toArray(keys) },\n getReqZ,\n getResZ,\n );\n if (err != null) throw err;\n return Array.isArray(keys) ? res.pairs : res.pairs[keys];\n }\n\n async list(): Promise<Record<string, string>> {\n return this.get([]);\n }\n\n async set(key: string, value: string): Promise<void>;\n\n async set(kv: Record<string, string>): Promise<void>;\n\n async set(key: string | Record<string, string>, value: string = \"\"): Promise<void> {\n await sendRequired(\n this.client,\n KV.SET_ENDPOINT,\n {\n range: this.rangeKey,\n pairs: isObject(key) ? key : { [key]: value },\n },\n setReqZ,\n z.unknown(),\n );\n }\n\n async delete(key: string | string[]): Promise<void> {\n await sendRequired(\n this.client,\n KV.DELETE_ENDPOINT,\n { range: this.rangeKey, keys: toArray(key) },\n deleteReqZ,\n z.unknown(),\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type Series, TimeRange } from \"@synnaxlabs/x/telem\";\n\nimport { type Key, type Params, type Name } from \"@/channel/payload\";\nimport { type Retriever as ChannelRetriever } from \"@/channel/retriever\";\nimport { QueryError } from \"@/errors\";\nimport { type framer } from \"@/framer\";\nimport { type label } from \"@/label\";\nimport { type Label } from \"@/label/payload\";\nimport { ontology } from \"@/ontology\";\nimport { type Alias, type Aliaser } from \"@/ranger/alias\";\nimport { type KV } from \"@/ranger/kv\";\nimport { type signals } from \"@/signals\";\n\nconst ontologyID = (key: string): ontology.ID =>\n new ontology.ID({ type: \"range\", key });\n\nexport class Range {\n key: string;\n name: string;\n readonly kv: KV;\n readonly timeRange: TimeRange;\n readonly color: string | undefined;\n readonly channels: ChannelRetriever;\n private readonly aliaser: Aliaser;\n private readonly frameClient: framer.Client;\n private readonly labelClient: label.Client;\n\n constructor(\n name: string,\n timeRange: TimeRange = TimeRange.ZERO,\n key: string,\n color: string | undefined,\n _frameClient: framer.Client,\n _kv: KV,\n _aliaser: Aliaser,\n _channels: ChannelRetriever,\n _labelClient: label.Client,\n ) {\n this.key = key;\n this.name = name;\n this.timeRange = timeRange;\n this.frameClient = _frameClient;\n this.color = color;\n this.kv = _kv;\n this.aliaser = _aliaser;\n this.channels = _channels;\n this.labelClient = _labelClient;\n }\n\n async setAlias(channel: Key | Name, alias: string): Promise<void> {\n const ch = await this.channels.retrieve(channel);\n if (ch.length === 0) {\n throw new QueryError(`Channel ${channel} does not exist`);\n }\n await this.aliaser.set({ [ch[0].key]: alias });\n }\n\n async deleteAlias(...channels: Key[]): Promise<void> {\n await this.aliaser.delete(channels);\n }\n\n async listAliases(): Promise<Record<Key, string>> {\n return await this.aliaser.list();\n }\n\n async openAliasTracker(): Promise<signals.Observable<string, Alias>> {\n return await this.aliaser.openChangeTracker();\n }\n\n async read(channel: Key | Name): Promise<Series>;\n\n async read(channels: Params): Promise<framer.Frame>;\n\n async read(channels: Params): Promise<Series | framer.Frame> {\n return await this.frameClient.read(this.timeRange, channels);\n }\n\n async labels(): Promise<Label[]> {\n return await this.labelClient.retrieveFor(ontologyID(this.key));\n }\n\n async addLabel(...labels: label.Key[]): Promise<void> {\n await this.labelClient.label(ontologyID(this.key), labels);\n }\n\n async removeLabel(...labels: label.Key[]): Promise<void> {\n await this.labelClient.removeLabels(ontologyID(this.key), labels);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\n\nimport { type Retriever as ChannelRetriever } from \"@/channel/retriever\";\nimport { MultipleFoundError, NotFoundError, QueryError } from \"@/errors\";\nimport { type framer } from \"@/framer\";\nimport { type label } from \"@/label\";\nimport { Active } from \"@/ranger/active\";\nimport { Aliaser } from \"@/ranger/alias\";\nimport { KV } from \"@/ranger/kv\";\nimport {\n type NewPayload,\n type Key,\n type Keys,\n type Name,\n type Names,\n type Params,\n type Payload,\n analyzeParams,\n payloadZ,\n keyZ,\n} from \"@/ranger/payload\";\nimport { Range } from \"@/ranger/range\";\nimport { type Writer } from \"@/ranger/writer\";\nimport { signals } from \"@/signals\";\nimport { z } from \"zod\";\nimport { CrudeTimeRange, TimeRange } from \"@synnaxlabs/x\";\nimport { nullableArrayZ } from \"@/util/zod\";\n\nconst retrieveReqZ = z.object({\n keys: keyZ.array().optional(),\n names: z.array(z.string()).optional(),\n term: z.string().optional(),\n overlapsWith: TimeRange.z.optional(),\n});\n\nexport type RetrieveRequest = z.infer<typeof retrieveReqZ>;\n\nconst RETRIEVE_ENDPOINT = \"/range/retrieve\";\n\nconst retrieveResZ = z.object({\n ranges: nullableArrayZ(payloadZ),\n});\n\nexport class Client implements AsyncTermSearcher<string, Key, Range> {\n readonly type: string = \"range\";\n private readonly frameClient: framer.Client;\n private readonly writer: Writer;\n private readonly unaryClient: UnaryClient;\n private readonly channels: ChannelRetriever;\n private readonly active: Active;\n private readonly labelClient: label.Client;\n\n constructor(\n frameClient: framer.Client,\n writer: Writer,\n unary: UnaryClient,\n channels: ChannelRetriever,\n labelClient: label.Client,\n ) {\n this.frameClient = frameClient;\n this.writer = writer;\n this.unaryClient = unary;\n this.channels = channels;\n this.active = new Active(unary);\n this.labelClient = labelClient;\n }\n\n async create(range: NewPayload): Promise<Range>;\n\n async create(ranges: NewPayload[]): Promise<Range[]>;\n\n async create(ranges: NewPayload | NewPayload[]): Promise<Range | Range[]> {\n const single = !Array.isArray(ranges);\n const res = this.sugar(await this.writer.create(toArray(ranges)));\n return single ? res[0] : res;\n }\n\n async rename(key: Key, name: Name): Promise<void> {\n await this.writer.rename(key, name);\n }\n\n async delete(key: Key | Keys): Promise<void> {\n await this.writer.delete(toArray(key));\n }\n\n async search(term: string): Promise<Range[]> {\n return this.sugar(await this.execRetrieve({ term }));\n }\n\n async page(offset: number, limit: number): Promise<Range[]> {\n return [];\n }\n\n async retrieve(range: CrudeTimeRange): Promise<Range[]>;\n\n async retrieve(range: Key | Name): Promise<Range>;\n\n async retrieve(range: Keys | Names): Promise<Range[]>;\n\n async retrieve(params: Params | CrudeTimeRange): Promise<Range | Range[]> {\n if (typeof params === \"object\" && \"start\" in params)\n return await this.execRetrieve({ overlapsWith: new TimeRange(params) });\n const { single, actual, variant, normalized } = analyzeParams(params);\n const ranges = await this.execRetrieve({ [variant]: normalized });\n if (!single) return ranges;\n if (ranges.length === 0)\n throw new NotFoundError(`range matching ${actual} not found`);\n if (ranges.length > 1)\n throw new MultipleFoundError(`multiple ranges matching ${actual} found`);\n return ranges[0];\n }\n\n private async execRetrieve(req: RetrieveRequest): Promise<Range[]> {\n return this.sugar(\n await sendRequired<typeof retrieveReqZ, typeof retrieveResZ>(\n this.unaryClient,\n RETRIEVE_ENDPOINT,\n req,\n retrieveReqZ,\n retrieveResZ,\n ).then((res) => res.ranges),\n );\n }\n\n async setActive(range: Key): Promise<void> {\n await this.active.setActive(range);\n }\n\n async retrieveActive(): Promise<Range | null> {\n const res = await this.active.retrieveActive();\n if (res == null) return null;\n return this.sugar([res])[0];\n }\n\n async clearActive(range: Key): Promise<void> {\n await this.active.clearActive(range);\n }\n\n private sugar(payloads: Payload[]): Range[] {\n return payloads.map((payload) => {\n return new Range(\n payload.name,\n payload.timeRange,\n payload.key,\n payload.color,\n this.frameClient,\n new KV(payload.key, this.unaryClient),\n new Aliaser(payload.key, this.frameClient, this.unaryClient),\n this.channels,\n this.labelClient,\n );\n });\n }\n\n async openTracker(): Promise<signals.Observable<string, Range>> {\n return await signals.openObservable<string, Range>(\n this.frameClient,\n \"sy_range_set\",\n \"sy_range_delete\",\n (variant, data) => {\n if (variant === \"delete\")\n return data.toStrings().map((k) => ({ variant, key: k, value: undefined }));\n const sugared = this.sugar(data.parseJSON(payloadZ));\n return sugared.map((r) => ({ variant, key: r.key, value: r }));\n },\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { z } from \"zod\";\n\nimport {\n type NewPayload,\n type Payload,\n payloadZ,\n keyZ,\n newPayloadZ,\n} from \"@/ranger/payload\";\n\nconst createResZ = z.object({\n ranges: payloadZ.array(),\n});\n\nconst createReqZ = z.object({\n ranges: newPayloadZ.array(),\n});\n\nconst deleteReqZ = z.object({\n keys: keyZ.array(),\n});\n\nconst deleteResZ = z.object({});\n\nconst renameReqZ = z.object({\n key: keyZ,\n name: z.string(),\n});\n\nconst renameResZ = z.object({});\n\nconst CREATE_ENDPOINT = \"/range/create\";\nconst DELETE_ENDPOINT = \"/range/delete\";\nconst RENAME_ENDPOINT = \"/range/rename\";\n\nexport class Writer {\n client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async rename(key: string, name: string): Promise<void> {\n await sendRequired<typeof renameReqZ, typeof renameResZ>(\n this.client,\n RENAME_ENDPOINT,\n { key, name },\n renameReqZ,\n renameResZ,\n );\n }\n\n async create(ranges: NewPayload[]): Promise<Payload[]> {\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { ranges },\n createReqZ,\n createResZ,\n );\n return res.ranges;\n }\n\n async delete(keys: string[]): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_ENDPOINT,\n { keys },\n deleteReqZ,\n deleteResZ,\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n HTTPClient,\n WebSocketClient,\n type Middleware,\n type StreamClient,\n type UnaryClient,\n} from \"@synnaxlabs/freighter\";\nimport { binary } from \"@synnaxlabs/x/binary\";\nimport { type URL } from \"@synnaxlabs/x/url\";\n\nconst baseAPIEndpoint = \"/api/v1/\";\n\nexport class Transport {\n readonly url: URL;\n readonly unary: UnaryClient;\n readonly stream: StreamClient;\n readonly secure: boolean;\n\n constructor(url: URL, secure: boolean = false) {\n this.secure = secure;\n this.url = url.child(baseAPIEndpoint);\n const ecd = new binary.JSONEncoderDecoder();\n this.unary = new HTTPClient(this.url, ecd, this.secure);\n this.stream = new WebSocketClient(this.url, ecd, this.secure);\n }\n\n use(...middleware: Middleware[]): void {\n this.unary.use(...middleware);\n this.stream.use(...middleware);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { binary } from \"@synnaxlabs/x/binary\";\nimport { type UnknownRecord, unknownRecordZ } from \"@synnaxlabs/x/record\";\nimport { z } from \"zod\";\n\nexport const keyZ = z.string().uuid();\n\nexport type Key = z.infer<typeof keyZ>;\n\nexport type Params = Key | Key[];\n\n// --- VERY IMPORTANT ---\n// Synnax's encoders (in the binary package inside x) automatically convert the case\n// of keys in objects to snake_case and back to camelCase when encoding and decoding\n// respectively. This is done to ensure that the keys are consistent across all\n// languages and platforms. Sometimes workspaces have keys that are uuids, which have\n// dashes, and those get messed up. So we just use regular JSON for workspaces.\nconst parse = (s: string): UnknownRecord => JSON.parse(s) as UnknownRecord;\n\nexport const workspaceZ = z.object({\n name: z.string(),\n key: keyZ,\n layout: unknownRecordZ.or(\n z.string().transform((s) => JSON.parse(s) as UnknownRecord),\n ),\n});\n\nexport const workspaceRemoteZ = workspaceZ.omit({ layout: true }).extend({\n layout: z.string().transform((s) => JSON.parse(s) as UnknownRecord),\n});\n\nexport type Workspace = z.infer<typeof workspaceZ>;\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnknownRecord, unknownRecordZ } from \"@synnaxlabs/x/record\";\nimport { z } from \"zod\";\n\nexport const keyZ = z.string().uuid();\nexport type Key = z.infer<typeof keyZ>;\nexport type Params = Key | Key[];\n\nexport const linePlotZ = z.object({\n key: z.string(),\n name: z.string(),\n data: unknownRecordZ.or(z.string().transform((s) => JSON.parse(s) as UnknownRecord)),\n});\n\nexport type LinePlot = z.infer<typeof linePlotZ>;\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { type LinePlot, type Params, linePlotZ } from \"@/workspace/lineplot/payload\";\n\nconst reqZ = z.object({\n keys: z.string().array(),\n});\n\ntype Request = z.infer<typeof reqZ>;\n\nconst resZ = z.object({\n linePlots: linePlotZ.array(),\n});\n\nexport class Retriever {\n private readonly ENDPOINT = \"/workspace/lineplot/retrieve\";\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async retrieve(params: Params): Promise<LinePlot[]> {\n const normalized = toArray(params);\n return (\n await sendRequired(this.client, this.ENDPOINT, { keys: normalized }, reqZ, resZ)\n ).linePlots;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport {\n linePlotZ,\n type LinePlot,\n type Params,\n keyZ,\n type Key,\n} from \"@/workspace/lineplot/payload\";\nimport { keyZ as workspaceKeyZ } from \"@/workspace/payload\";\n\nexport const newLinePlotZ = linePlotZ.partial({ key: true }).transform((p) => ({\n ...p,\n data: JSON.stringify(p.data),\n}));\n\nexport type NewLinePlot = z.input<typeof newLinePlotZ>;\n\nconst createReqZ = z.object({\n workspace: workspaceKeyZ,\n linePlots: newLinePlotZ.array(),\n});\n\nconst createResZ = z.object({\n linePlots: linePlotZ.array(),\n});\n\nconst deleteReqZ = z.object({\n keys: keyZ.array(),\n});\n\nconst deleteResZ = z.object({});\n\nconst renameReqZ = z.object({\n key: keyZ,\n name: z.string(),\n});\n\nconst renameResZ = z.object({});\n\nconst setDataReqZ = z.object({\n key: keyZ,\n data: z.string(),\n});\n\nconst setDataResZ = z.object({});\n\nconst CREATE_ENDPOINT = \"/workspace/lineplot/create\";\nconst DELETE_ENDPOINT = \"/workspace/lineplot/delete\";\nconst RENAME_ENDPOINT = \"/workspace/lineplot/rename\";\nconst SET_DATA_ENDPOINT = \"/workspace/lineplot/set-data\";\n\nexport class Writer {\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async create(workspace: string, plot: NewLinePlot): Promise<LinePlot> {\n const schematic_ = { ...plot, data: JSON.stringify(plot.data) };\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { workspace, linePlots: [schematic_] },\n createReqZ,\n createResZ,\n );\n\n return res.linePlots[0];\n }\n\n async delete(params: Params): Promise<void> {\n const normalized = toArray(params);\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_ENDPOINT,\n { keys: normalized },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async rename(schematic: Key, name: string): Promise<void> {\n await sendRequired<typeof renameReqZ, typeof renameResZ>(\n this.client,\n RENAME_ENDPOINT,\n { key: schematic, name },\n renameReqZ,\n renameResZ,\n );\n }\n\n async setData(schematic: Key, data: UnknownRecord): Promise<void> {\n await sendRequired<typeof setDataReqZ, typeof setDataResZ>(\n this.client,\n SET_DATA_ENDPOINT,\n { key: schematic, data: JSON.stringify(data) },\n setDataReqZ,\n setDataResZ,\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\n\nimport { type LinePlot, type Key, type Params } from \"@/workspace/lineplot/payload\";\nimport { Retriever } from \"@/workspace/lineplot/retriever\";\nimport { type NewLinePlot, Writer } from \"@/workspace/lineplot/writer\";\n\nexport class Client {\n private readonly writer: Writer;\n private readonly retriever: Retriever;\n\n constructor(client: UnaryClient) {\n this.writer = new Writer(client);\n this.retriever = new Retriever(client);\n }\n\n async create(workspace: string, schematic: NewLinePlot): Promise<LinePlot> {\n return await this.writer.create(workspace, schematic);\n }\n\n async rename(key: Key, name: string): Promise<void> {\n await this.writer.rename(key, name);\n }\n\n async setData(key: Key, data: UnknownRecord): Promise<void> {\n await this.writer.setData(key, data);\n }\n\n async retrieve(key: Key): Promise<LinePlot>;\n\n async retrieve(keys: Key[]): Promise<LinePlot[]>;\n\n async retrieve(keys: Params): Promise<LinePlot | LinePlot[]> {\n const isMany = Array.isArray(keys);\n const res = await this.retriever.retrieve(keys);\n return isMany ? res : res[0];\n }\n\n async delete(keys: Params): Promise<void> {\n await this.writer.delete(keys);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnknownRecord, unknownRecordZ } from \"@synnaxlabs/x/record\";\nimport { z } from \"zod\";\n\nexport const keyZ = z.string().uuid();\nexport type Key = z.infer<typeof keyZ>;\nexport type Params = Key | Key[];\n\nexport const schematicZ = z.object({\n key: z.string(),\n name: z.string(),\n data: unknownRecordZ.or(z.string().transform((s) => JSON.parse(s) as UnknownRecord)),\n snapshot: z.boolean(),\n});\n\nexport const schematicRemoteZ = z.object({\n key: z.string(),\n name: z.string(),\n snapshot: z.boolean(),\n data: z.string().transform((s) => JSON.parse(s) as UnknownRecord),\n});\n\nexport type Schematic = z.infer<typeof schematicZ>;\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { type Schematic, type Params, schematicRemoteZ } from \"@/workspace/schematic/payload\";\n\nconst reqZ = z.object({\n keys: z.string().array(),\n});\n\ntype Request = z.infer<typeof reqZ>;\n\nconst resZ = z.object({\n schematics: schematicRemoteZ.array(),\n});\n\nexport class Retriever {\n private readonly ENDPOINT = \"/workspace/schematic/retrieve\";\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async retrieve(params: Params): Promise<Schematic[]> {\n return (await sendRequired(\n this.client,\n this.ENDPOINT,\n { keys: toArray(params) },\n reqZ,\n resZ,\n )).schematics;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport { keyZ as workspaceKeyZ } from \"@/workspace/payload\";\nimport {\n schematicZ,\n type Schematic,\n type Params,\n keyZ,\n type Key,\n schematicRemoteZ,\n} from \"@/workspace/schematic/payload\";\n\nexport const newSchematicZ = schematicZ.partial({ key: true, snapshot: true }).transform((p) => ({\n ...p,\n data: JSON.stringify(p.data),\n}));\n\nexport type NewSchematic = z.input<typeof newSchematicZ>;\n\nconst createReqZ = z.object({\n workspace: workspaceKeyZ,\n schematics: newSchematicZ.array(),\n});\n\nconst createResZ = z.object({\n schematics: schematicRemoteZ.array(),\n});\n\nconst deleteReqZ = z.object({\n keys: keyZ.array(),\n});\n\nconst deleteResZ = z.object({});\n\nconst renameReqZ = z.object({\n key: keyZ,\n name: z.string(),\n});\n\nconst renameResZ = z.object({});\n\nconst setDataReqZ = z.object({\n key: keyZ,\n data: z.string(),\n});\n\nconst setDataResZ = z.object({});\n\nconst copyReqZ = z.object({\n key: keyZ,\n name: z.string(),\n snapshot: z.boolean(),\n});\n\nconst copyResZ = z.object({\n schematic: schematicRemoteZ,\n});\n\nconst CREATE_ENDPOINT = \"/workspace/schematic/create\";\nconst DELETE_ENDPOINT = \"/workspace/schematic/delete\";\nconst RENAME_ENDPOINT = \"/workspace/schematic/rename\";\nconst SET_DATA_ENDPOINT = \"/workspace/schematic/set-data\";\nconst COPY_ENDPOINT = \"/workspace/schematic/copy\";\n\nexport class Writer {\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async create(workspace: string, schematic: NewSchematic): Promise<Schematic> {\n const schematic_ = { ...schematic, data: JSON.stringify(schematic.data) };\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { workspace, schematics: [schematic_] },\n createReqZ,\n createResZ,\n );\n\n return res.schematics[0];\n }\n\n async copy(key: Key, name: string, snapshot: boolean): Promise<Schematic> {\n const res = await sendRequired<typeof copyReqZ, typeof copyResZ>(\n this.client,\n COPY_ENDPOINT,\n { key, name, snapshot },\n copyReqZ,\n copyResZ,\n );\n return res.schematic;\n }\n\n async delete(params: Params): Promise<void> {\n const normalized = toArray(params);\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_ENDPOINT,\n { keys: normalized },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async rename(schematic: Key, name: string): Promise<void> {\n await sendRequired<typeof renameReqZ, typeof renameResZ>(\n this.client,\n RENAME_ENDPOINT,\n { key: schematic, name },\n renameReqZ,\n renameResZ,\n );\n }\n\n async setData(schematic: Key, data: UnknownRecord): Promise<void> {\n await sendRequired<typeof setDataReqZ, typeof setDataResZ>(\n this.client,\n SET_DATA_ENDPOINT,\n { key: schematic, data: JSON.stringify(data) },\n setDataReqZ,\n renameResZ,\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\n\nimport { type Key, type Params, type Schematic } from \"@/workspace/schematic/payload\";\nimport { Retriever } from \"@/workspace/schematic/retriever\";\nimport { Writer, type NewSchematic } from \"@/workspace/schematic/writer\";\n\nexport class Client {\n private readonly writer: Writer;\n private readonly retriever: Retriever;\n\n constructor(client: UnaryClient) {\n this.writer = new Writer(client);\n this.retriever = new Retriever(client);\n }\n\n async create(workspace: string, schematic: NewSchematic): Promise<Schematic> {\n return await this.writer.create(workspace, schematic);\n }\n\n async rename(key: Key, name: string): Promise<void> {\n await this.writer.rename(key, name);\n }\n\n async setData(key: Key, data: UnknownRecord): Promise<void> {\n await this.writer.setData(key, data);\n }\n\n async retrieve(key: Key): Promise<Schematic>;\n\n async retrieve(keys: Key[]): Promise<Schematic[]>;\n\n async retrieve(keys: Params): Promise<Schematic | Schematic[]> {\n const isMany = Array.isArray(keys);\n const res = await this.retriever.retrieve(keys);\n return isMany ? res : res[0];\n }\n\n async delete(keys: Params): Promise<void> {\n await this.writer.delete(keys);\n }\n\n async copy(key: Key, name: string, snapshot: boolean): Promise<Schematic> {\n return await this.writer.copy(key, name, snapshot);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport {\n type Params,\n type Workspace,\n keyZ,\n workspaceRemoteZ,\n} from \"@/workspace/payload\";\nimport { nullableArrayZ } from \"@/util/zod\";\n\nconst reqZ = z.object({\n keys: keyZ.array().optional(),\n search: z.string().optional(),\n author: z.string().uuid().optional(),\n offset: z.number().optional(),\n limit: z.number().optional(),\n});\n\ntype Request = z.infer<typeof reqZ>;\n\nconst resZ = z.object({\n workspaces: nullableArrayZ(workspaceRemoteZ),\n});\n\ntype Response = z.infer<typeof resZ>;\n\nexport class Retriever {\n private static readonly ENDPOINT = \"/workspace/retrieve\";\n\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async retrieve(params: Params): Promise<Workspace[]> {\n const normalized = toArray(params);\n return await this.execute({ keys: normalized });\n }\n\n async retrieveByAuthor(author: string): Promise<Workspace[]> {\n return await this.execute({ author });\n }\n\n async search(term: string): Promise<Workspace[]> {\n return await this.execute({ search: term });\n }\n\n async page(offset: number, limit: number): Promise<Workspace[]> {\n return await this.execute({ offset, limit });\n }\n\n private async execute(request: Request): Promise<Workspace[]> {\n const res = await sendRequired(\n this.client,\n Retriever.ENDPOINT,\n request,\n reqZ,\n resZ,\n );\n return res.workspaces;\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { sendRequired, type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\nimport { toArray } from \"@synnaxlabs/x/toArray\";\nimport { z } from \"zod\";\n\nimport {\n type Workspace,\n workspaceZ,\n keyZ,\n workspaceRemoteZ,\n} from \"@/workspace/payload\";\n\nconst newWorkspaceZ = workspaceZ.partial({ key: true }).transform((w) => ({\n ...w,\n layout: JSON.stringify(w.layout),\n}));\n\nexport type NewWorkspace = z.input<typeof newWorkspaceZ>;\n\nconst createReqZ = z.object({\n workspaces: newWorkspaceZ.array(),\n});\n\nconst createResZ = z.object({\n workspaces: workspaceRemoteZ.array(),\n});\n\nconst deleteReqZ = z.object({\n keys: keyZ.array(),\n});\n\nconst deleteResZ = z.object({});\n\nconst renameReqZ = z.object({\n key: keyZ,\n name: z.string(),\n});\n\nconst renameResZ = z.object({});\n\nconst setLayoutReqZ = z.object({\n key: keyZ,\n layout: z.string(),\n});\n\nconst setLayoutResZ = z.object({});\n\nexport type CreateResponse = z.infer<typeof createResZ>;\n\nconst CREATE_ENDPOINT = \"/workspace/create\";\nconst DELETE_ENDPOINT = \"/workspace/delete\";\nconst RENAME_ENDPOINT = \"/workspace/rename\";\nconst SET_LAYOUT_ENDPOINT = \"/workspace/set-layout\";\n\nexport class Writer {\n private readonly client: UnaryClient;\n\n constructor(client: UnaryClient) {\n this.client = client;\n }\n\n async create(workspaces: NewWorkspace | NewWorkspace[]): Promise<Workspace[]> {\n const res = await sendRequired<typeof createReqZ, typeof createResZ>(\n this.client,\n CREATE_ENDPOINT,\n { workspaces: toArray(workspaces) },\n createReqZ,\n createResZ,\n );\n return res.workspaces;\n }\n\n async delete(keys: string | string[]): Promise<void> {\n await sendRequired<typeof deleteReqZ, typeof deleteResZ>(\n this.client,\n DELETE_ENDPOINT,\n { keys: toArray(keys) },\n deleteReqZ,\n deleteResZ,\n );\n }\n\n async rename(key: string, name: string): Promise<void> {\n await sendRequired<typeof renameReqZ, typeof renameResZ>(\n this.client,\n RENAME_ENDPOINT,\n { key, name },\n renameReqZ,\n renameResZ,\n );\n }\n\n async setLayout(key: string, layout: UnknownRecord): Promise<void> {\n await sendRequired<typeof setLayoutReqZ, typeof setLayoutResZ>(\n this.client,\n SET_LAYOUT_ENDPOINT,\n { key, layout: JSON.stringify(layout) },\n setLayoutReqZ,\n setLayoutResZ,\n );\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type UnaryClient } from \"@synnaxlabs/freighter\";\nimport { type UnknownRecord } from \"@synnaxlabs/x/record\";\nimport { type AsyncTermSearcher } from \"@synnaxlabs/x/search\";\n\nimport { linePlot } from \"@/workspace/lineplot\";\nimport { type Key, type Workspace } from \"@/workspace/payload\";\nimport { schematic } from \"@/workspace/schematic\";\nimport { Retriever } from \"@/workspace/retriever\";\nimport { type NewWorkspace, Writer } from \"@/workspace/writer\";\n\nexport class Client implements AsyncTermSearcher<string, Key, Workspace> {\n readonly type = \"workspace\";\n readonly schematic: schematic.Client;\n readonly linePlot: linePlot.Client;\n private readonly retriever: Retriever;\n private readonly writer: Writer;\n\n constructor(client: UnaryClient) {\n this.schematic = new schematic.Client(client);\n this.linePlot = new linePlot.Client(client);\n this.retriever = new Retriever(client);\n this.writer = new Writer(client);\n }\n\n async search(term: string): Promise<Workspace[]> {\n return await this.retriever.search(term);\n }\n\n async retrieveByAuthor(author: string): Promise<Workspace[]> {\n return await this.retriever.retrieveByAuthor(author);\n }\n\n async retrieve(key: Key): Promise<Workspace>;\n\n async retrieve(keys: Key[]): Promise<Workspace[]>;\n\n async retrieve(keys: Key | Key[]): Promise<Workspace | Workspace[]> {\n const isMany = Array.isArray(keys);\n const res = await this.retriever.retrieve(keys);\n return isMany ? res : res[0];\n }\n\n async page(offset: number, limit: number): Promise<Workspace[]> {\n return await this.retriever.page(offset, limit);\n }\n\n async create(workspace: NewWorkspace): Promise<Workspace>;\n\n async create(\n workspaces: NewWorkspace | NewWorkspace[],\n ): Promise<Workspace | Workspace[]> {\n const isMany = Array.isArray(workspaces);\n const res = await this.writer.create(workspaces);\n return isMany ? res : res[0];\n }\n\n async rename(key: Key, name: string): Promise<void> {\n await this.writer.rename(key, name);\n }\n\n async setLayout(key: Key, layout: UnknownRecord): Promise<void> {\n await this.writer.setLayout(key, layout);\n }\n\n async delete(...keys: Key[]): Promise<void> {\n await this.writer.delete(keys);\n }\n}\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { TimeSpan, TimeStamp } from \"@synnaxlabs/x/telem\";\nimport { URL } from \"@synnaxlabs/x/url\";\nimport { z } from \"zod\";\n\nimport { auth } from \"@/auth\";\nimport { channel } from \"@/channel\";\nimport { connection } from \"@/connection\";\nimport { errorsMiddleware } from \"@/errors\";\nimport { framer } from \"@/framer\";\nimport { hardware } from \"@/hardware\";\nimport { device } from \"@/hardware/device\";\nimport { rack } from \"@/hardware/rack\";\nimport { task } from \"@/hardware/task\";\nimport { label } from \"@/label\";\nimport { ontology } from \"@/ontology\";\nimport { ranger } from \"@/ranger\";\nimport { Transport } from \"@/transport\";\nimport { workspace } from \"@/workspace\";\n\nexport const synnaxPropsZ = z.object({\n host: z\n .string({\n required_error: \"Host is required\",\n })\n .min(1, \"Host is required\"),\n port: z\n .number({\n required_error: \"Port is required\",\n })\n .or(\n z.string({\n required_error: \"Port is required\",\n }),\n ),\n username: z.string().optional(),\n password: z.string().optional(),\n connectivityPollFrequency: TimeSpan.z.default(TimeSpan.seconds(30)),\n secure: z.boolean().optional().default(false),\n name: z.string().optional(),\n});\n\nexport type SynnaxProps = z.input<typeof synnaxPropsZ>;\nexport type ParsedSynnaxProps = z.output<typeof synnaxPropsZ>;\n\n/**\n * Client to perform operations against a Synnax cluster.\n *\n * @property channel - Channel client for creating and retrieving channels.\n * @property data - Data client for reading and writing telemetry.\n * @property connectivity - Client for retrieving connectivity information.\n * @property ontology - Client for querying the cluster's ontology.\n */\n// eslint-disable-next-line import/no-default-export\nexport default class Synnax extends framer.Client {\n readonly createdAt: TimeStamp;\n readonly props: ParsedSynnaxProps;\n readonly ranges: ranger.Client;\n readonly channels: channel.Client;\n readonly auth: auth.Client | undefined;\n readonly connectivity: connection.Checker;\n readonly ontology: ontology.Client;\n readonly workspaces: workspace.Client;\n readonly labels: label.Client;\n readonly hardware: hardware.Client;\n static readonly connectivity = connection.Checker;\n private readonly transport: Transport;\n\n /**\n * @param props.host - Hostname of a node in the cluster.\n * @param props.port - Port of the node in the cluster.\n * @param props.username - Username for authentication. Not required if the\n * cluster is insecure.\n * @param props.password - Password for authentication. Not required if the\n * cluster is insecure.\n * @param props.connectivityPollFrequency - Frequency at which to poll the\n * cluster for connectivity information. Defaults to 5 seconds.\n * @param props.secure - Whether to connect to the cluster using TLS. The cluster\n * must be configured to support TLS. Defaults to false.\n *\n * A Synnax client must be closed when it is no longer needed. This will stop\n * the client from polling the cluster for connectivity information.\n */\n constructor(props_: SynnaxProps) {\n const props = synnaxPropsZ.parse(props_);\n const { host, port, username, password, connectivityPollFrequency, secure } = props;\n const transport = new Transport(new URL({ host, port: Number(port) }), secure);\n transport.use(errorsMiddleware);\n let auth_: auth.Client | undefined;\n if (username != null && password != null) {\n const auth_ = new auth.Client(transport.unary, {\n username,\n password,\n });\n transport.use(auth_.middleware());\n }\n const chRetriever = new channel.CacheRetriever(\n new channel.ClusterRetriever(transport.unary),\n );\n const chCreator = new channel.Writer(transport.unary);\n super(transport.stream, chRetriever);\n this.createdAt = TimeStamp.now();\n this.props = props;\n this.auth = auth_;\n this.transport = transport;\n this.channels = new channel.Client(this, chRetriever, transport.unary, chCreator);\n this.connectivity = new connection.Checker(\n transport.unary,\n connectivityPollFrequency,\n props.name,\n );\n this.ontology = new ontology.Client(transport.unary, this);\n const rangeWriter = new ranger.Writer(this.transport.unary);\n this.labels = new label.Client(this.transport.unary, this);\n this.ranges = new ranger.Client(\n this,\n rangeWriter,\n this.transport.unary,\n chRetriever,\n this.labels,\n );\n this.workspaces = new workspace.Client(this.transport.unary);\n const devices = new device.Client(this.transport.unary, this);\n const tasks = new task.Client(this.transport.unary, this);\n const racks = new rack.Client(this.transport.unary, this, tasks);\n this.hardware = new hardware.Client(tasks, racks, devices);\n }\n\n get key(): string {\n return this.createdAt.valueOf().toString();\n }\n\n close(): void {\n this.connectivity.stopChecking();\n }\n}\n"],"names":["ps","ms","r","U","Q","A","lr","ys","hr","vs","fr","gs","zr","_s","Br","bs","Vr","ws","Yr","xs","s","Kr","Ts","pr","Os","Wr","Ke","ks","fe","At","qr","Ss","pe","$t","Fr","Ns","me","Is","jt","Gr","Zs","ye","Es","Rt","Hr","Cs","ve","As","Mt","Jr","$s","ge","js","Pt","mn","yn","vn","gn","_n","bn","wn","xn","Tn","On","kn","Sn","Nn","In","Zn","En","Cn","Rs","An","$n","Ms","Ps","$","Ir","y","Se","h","Us","c","te","st","jn","Ds","Yt","Kt","Ls","g","q$3","q","S","Rn","H","Zr","Er","at","Wt","b","ue","en","N","E","se","x","xe","De","Ue","Je","ct","dt","mt","Dn","Jt","It","Qt","zs","Bs","Vs","Ys","Ks","Ws","wr","qs","Fs","Gs","Hs","Ge","tt","Js","Ie","Ze","it","Pe","qt","ot","ut","He","Re","Oe","Ft","Ut","We","D","Ee","p","Un","Dt","ht","ft","Ce","pt","mr","Cr","Mn","lt","Gt","Ht","Ar","Pn","Lt","K","Z","Xt","Xs","Ln","Qs","ea","zn","Bn","ta","ra","Vn","na","sa","aa","ia","oa","ua","ca","da","la","ha","fa","pa","ma","ya","va","ga","_a","ba","wa","xa","Ta","Oa","ka","Sa","tn","Na","Ia","Za","Ea","Ca","Aa","$a","ja","Ra","d","yr","Yn","Ma","Pa","Ua","Da","er","La","za","Kn","Wn","Ba","qn","Va","Fn","Gn","rn","Ya","Hn","Ka","Wa","qa","xr","nn","Fa","Ga","Ha","sn","Ja","an","Et","Xr","Tr","Or","Xa","Qa","ei","ti","we","ri","ni","si","ai","ii","oi","ui","$r","rt","on","un","_e","ci","di","m","Jn","V","Y","M","k","li","P","R","le","he","X","Ct","zt","G","B","hi","ie","Bt","l","oe","W","z","fi","Xn","pi","Qn","mi","kr","yi","vi","es","gi","_i","nt","bi","ts","wi","xi","jr","Rr","Ti","Oi","ki","Sr","Si","e","t","n","Ni","j","Mr","v","Ne","f","Ii","re","yt","rs","Zi","tr","rr","Ei","_","F$3","F","O","ns","J","Pr","Ur","vt","nr","w","ce$2","cn","I","i","o","C$4","ae","T","Te","Be","ne","Qe","wt","xt","Nt","as","or","Zt","cr","Ci","Ai","$i","ji","Ri","Mi","Nr","Pi","Ui","Di","Li","ee","C","a","zi","Ae","$e","gt","Le","sr","_t","bt","Xe","Me","ke","ar","ce","qe","L","de","u","ss","Vt","Ot","kt","je","St","vr","Dr","Tt","ir","ze","Fe","ur","Bi","is","Vi","Yi","os","us","Ki","Wi","cs","qi","Fi","Gi","Hi","Ji","Xi","Qi","eo","to","ro","no","so","ao","io","oo","uo","co","lo","ho","fo","po","mo","yo","vo","dn","go","_o","bo","wo","xo","To","Oo","ko","So","be","gr","No","Lr","ln","_r","ds","Io","hn","Qr","Zo","ls","br","Ve","Ye","et","Eo","Co","hs","fs","fn","eu","tu","Ao","$o","jo","Do","Ro","Mo","Po","Uo","dr","pn","k$1","C$2","v$1","keyZ","payload","Rate","DataType","newPayload","createReqZ","createResZ","deleteReqZ","deleteResZ","CREATE_ENDPOINT","DELETE_ENDPOINT","Writer$8","client","__publicField","channels","sendRequired","props","E_CANCELED","__awaiter$2","thisArg","_arguments","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","Semaphore","_value","_cancelError","weight","priority","task","findIndexFromEnd","other","callback_1","callback","release","insertSorted","entry","item","previousValue","called","waiters","waiter","queuedPriority","predicate","__awaiter$1","Mutex","cancelError","releaser","_FREIGHTER_EXCEPTION_PREFIX","ValidationError","FieldError","field","message","AuthError","InvalidTokenError","UnexpectedError","QueryError","NotFoundError","MultipleFoundError","RouteError","path","ContiguityError","decode","values","encode","registerError","errorsMiddleware","ctx","next","res","err","Unreachable","i$2","i$1","analyzeParams","args","variantMap","convertNumericStrings","isSingle","normal","toArray","first","variant","checkForMultipleOrNoResults","name","params","results","nullableArrayZ","reqZ","resZ","analyzeChannelParams","_ClusterRetriever","term","options","normalized","offset","limit","request","ClusterRetriever","CacheRetriever","wrapped","toFetch","keyOrName","fetched","channel","key","DebouncedBatchRetriever","deb","debounce","allKeys","keys","fns","retrieveRequired","notFound","Channel","dataType","rate","leaseholder","isIndex","index","frameClient","alias","start","data","Client$d","retriever","writer","retrieveIfNameExists","single","toCreate","created","existingNames","payloads","payloadZ","insecureCredentialsZ","tokenResponseZ","user.payloadZ","LOGIN_ENDPOINT","MAX_RETRIES","Client$c","credentials","mw","reqCtx","resCtx","STATUSES","status","state","responseZ","DEFAULT","_Checker","pollFreq","TimeSpan","prevStatus","handler","Checker","columnType","columns","arrKeys","validateMatchedColsAndArrays","arrays","colsArr","colType","Frame","columnsOrData","data_","seriesFromPayload","cols","unique","seriesToPayload","ranges","col","TimeRange","TimeStamp","end","group","MultiSeries","keyOrFrame","frame","arr","required","Size","acc","series","frameZ","timeRange","alignment","Series","ReadFrameAdapter","adapter","WriteFrameAdapter","ch","pld","col_","kvs","StreamProxy","stream","EOF","req","AUTO_SPAN","Command","ResponseVariant","errorZ","_Iterator","iter","span","stamp","IteratorIterator","Iterator","ok","ENDPOINT","Streamer","from","streamer","ObservableStreamer","observe","transform","_Authority","Authority","subjectZ","stateZ","filterTransfersByChannelKey","resources","transfers","transferString","_b","StateTracker","binary","subjects","update","WriterMode","ALWAYS_INDEX_PERSIST_ON_AUTO_COMMIT","netConfigZ","controlSubjectZ","Writer$7","authorities","subject","mode","enableAutoCommit","autoIndexPersistInterval","channelsOrData","decodeError","Client$b","config","Writer","Client$a","tasks","racks","devices","rackKeyZ","rackZ","newRackZ","RETRIEVE_ENDPOINT","CREATE_RACK_ENDPOINT","DELETE_RACK_ENDPOINT","retrieveRackReqZ","retrieveRackResZ","Client$9","taskClient","rack","sugared","Rack","openObservable","setChannel","deleteChannel","ecd","changes","framer.ObservableStreamer","DEVICE_SET_NAME","DEVICE_DELETE_NAME","deviceKeyZ","deviceZ","newDeviceZ","retrieveReqZ","retrieveResZ","Client$8","signals.openObservable","decodeDeviceChanges","nanoid","size","id","byte","TASK_STATE_CHANNEL","TASK_CMD_CHANNEL","taskKeyZ","taskZ","newTaskZ","commandZ","Task","type","timeout","cmdKey","parsed","parse","rack.rackKeyZ","Client$7","Group","ontology.ID","resourceTypeZ","idZ","stringIDZ","crudeIDZ","_ID","ID","Root","schemaFieldZ","schemaZ","resourceSchemaZ","resource","relationshipSchemaZ","parseRelationship","str","renameReqZ","Writer$6","parent","Client$6","unary","ENDPOINTS","addRemoveChildrenReqZ","moveChildrenReqZ","Writer$5","children","parseIDs","ids","Client$5","framer","group.Client","ChangeTracker","RESOURCE_SET_NAME","RESOURCE_DELETE_NAME","RELATIONSHIP_SET_NAME","RELATIONSHIP_DELETE_NAME","resSets","resDeletes","relSets","relDeletes","relationships","rel","sets","deletes","labelZ","ontologyID","ontology.idZ","Retriever$3","newLabelPayloadZ","setReqZ","removeReqZ","emptyResZ","SET_ENDPOINT","REMOVE_ENDPOINT","Writer$4","labels","LABEL_SET_NAME","LABEL_DELETE_NAME","Client$4","Retriever","isMany","decodeChanges","newPayloadZ","isKey","setActiveResZ","retrieveActiveResZ","setActiveReqZ","clearActiveReqZ","clearActiveResZ","CLEAR_ENDPOINT","Active","range","ALIAS_SET_NAME","ALIAS_DELETE_NAME","resolveReqZ","resolveResZ","channelKeyZ","setResZ","listReqZ","listResZ","_Aliaser","rangeKey","aliases","cached","decodeAliasChanges","Aliaser","aliasZ","aliasSeparator","getReqZ","getResZ","_KV","rng","isObject","KV","Range","color","_frameClient","_kv","_aliaser","_channels","_labelClient","Client$3","labelClient","actual","renameResZ","RENAME_ENDPOINT","Writer$3","baseAPIEndpoint","Transport","url","secure","HTTPClient","WebSocketClient","middleware","workspaceZ","unknownRecordZ","workspaceRemoteZ","linePlotZ","Retriever$2","newLinePlotZ","workspaceKeyZ","setDataReqZ","setDataResZ","SET_DATA_ENDPOINT","Writer$2","workspace","plot","schematic_","schematic","Client$2","schematicZ","schematicRemoteZ","Retriever$1","newSchematicZ","copyReqZ","copyResZ","COPY_ENDPOINT","Writer$1","snapshot","Client$1","_Retriever","author","newWorkspaceZ","setLayoutReqZ","setLayoutResZ","SET_LAYOUT_ENDPOINT","workspaces","layout","Client","schematic.Client","linePlot.Client","synnaxPropsZ","Synnax","framer.Client","props_","host","port","username","password","connectivityPollFrequency","transport","URL","auth_","auth.Client","chRetriever","channel.CacheRetriever","channel.ClusterRetriever","chCreator","channel.Writer","channel.Client","connection.Checker","ontology.Client","rangeWriter","ranger.Writer","label.Client","ranger.Client","workspace.Client","device.Client","task.Client","rack.Client","hardware.Client"],"mappings":"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","x_google_ignoreList":[16,46]}
|