{
  "version": 3,
  "sources": ["../../../../../../node_modules/.pnpm/heap-js@2.5.0/node_modules/heap-js/dist/heap-js.umd.js", "../../../../../workflows-shared/src/engine.ts", "../../../../../workflows-shared/src/context.ts", "../../../../../../node_modules/.pnpm/itty-time@2.0.2/node_modules/itty-time/index.mjs", "../../../../../workflows-shared/src/instance.ts", "../../../../../workflows-shared/src/lib/cache.ts", "../../../../../workflows-shared/src/lib/retries.ts", "../../../../../workflows-shared/src/lib/delay.ts", "../../../../../workflows-shared/src/lib/errors.ts", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/index.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/index.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ar.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/az.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/be.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/bg.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ca.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/cs.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/da.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/de.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/el.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/en.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/eo.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/es.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fa.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fi.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/fr-CA.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/he.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hr.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hu.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/hy.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/id.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/is.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/it.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ja.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ka.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/km.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/kh.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ko.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/lt.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/mk.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ms.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/nl.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/no.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ota.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ps.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pl.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/pt.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ro.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ru.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sl.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/sv.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ta.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/th.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/tr.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uk.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ua.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/ur.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/uz.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/vi.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-CN.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/zh-TW.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/locales/yo.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-generator.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/checks.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/compat.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/from-json-schema.js", "../../../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/coerce.js", "../../../../../workflows-shared/src/lib/validators.ts", "../../../../../workflows-shared/src/lib/rollback.ts", "../../../../../workflows-shared/src/lib/streams.ts", "../../../../../workflows-shared/src/modifier.ts", "../../../../../workflows-shared/src/lib/gracePeriodSemaphore.ts", "../../../../../workflows-shared/src/lib/restart.ts", "../../../../../workflows-shared/src/lib/timePriorityQueue.ts", "../../../../../workflows-shared/src/binding.ts"],
  "sourcesContent": ["(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    typeof define === 'function' && define.amd ? define(['exports'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.heap = {}));\n})(this, (function (exports) { 'use strict';\n\n    var __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    };\n    var __generator$1 = (undefined && undefined.__generator) || function (thisArg, body) {\n        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n        return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n        function verb(n) { return function (v) { return step([n, v]); }; }\n        function step(op) {\n            if (f) throw new TypeError(\"Generator is already executing.\");\n            while (g && (g = 0, op[0] && (_ = 0)), _) try {\n                if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n                if (y = 0, t) op = [op[0] & 2, t.value];\n                switch (op[0]) {\n                    case 0: case 1: t = op; break;\n                    case 4: _.label++; return { value: op[1], done: false };\n                    case 5: _.label++; y = op[1]; op = [0]; continue;\n                    case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                    default:\n                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                        if (t[2]) _.ops.pop();\n                        _.trys.pop(); continue;\n                }\n                op = body.call(thisArg, _);\n            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n        }\n    };\n    var __read$1 = (undefined && undefined.__read) || function (o, n) {\n        var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n        if (!m) return o;\n        var i = m.call(o), r, ar = [], e;\n        try {\n            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n        }\n        catch (error) { e = { error: error }; }\n        finally {\n            try {\n                if (r && !r.done && (m = i[\"return\"])) m.call(i);\n            }\n            finally { if (e) throw e.error; }\n        }\n        return ar;\n    };\n    var __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n            if (ar || !(i in from)) {\n                if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n                ar[i] = from[i];\n            }\n        }\n        return to.concat(ar || Array.prototype.slice.call(from));\n    };\n    var __values = (undefined && undefined.__values) || function(o) {\n        var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n        if (m) return m.call(o);\n        if (o && typeof o.length === \"number\") return {\n            next: function () {\n                if (o && i >= o.length) o = void 0;\n                return { value: o && o[i++], done: !o };\n            }\n        };\n        throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n    };\n    /**\n     * Heap\n     * @type {Class}\n     */\n    var HeapAsync = /** @class */ (function () {\n        /**\n         * Heap instance constructor.\n         * @param  {Function} compare Optional comparison function, defaults to Heap.minComparator<number>\n         */\n        function HeapAsync(compare) {\n            if (compare === void 0) { compare = HeapAsync.minComparator; }\n            var _this = this;\n            this.compare = compare;\n            this.heapArray = [];\n            this._limit = 0;\n            /**\n             * Alias of add\n             */\n            this.offer = this.add;\n            /**\n             * Alias of peek\n             */\n            this.element = this.peek;\n            /**\n             * Alias of pop\n             */\n            this.poll = this.pop;\n            /**\n             * Returns the inverse to the comparison function.\n             * @return {Number}\n             */\n            this._invertedCompare = function (a, b) {\n                return _this.compare(a, b).then(function (res) { return -1 * res; });\n            };\n        }\n        /*\n                  Static methods\n         */\n        /**\n         * Gets children indices for given index.\n         * @param  {Number} idx     Parent index\n         * @return {Array(Number)}  Array of children indices\n         */\n        HeapAsync.getChildrenIndexOf = function (idx) {\n            return [idx * 2 + 1, idx * 2 + 2];\n        };\n        /**\n         * Gets parent index for given index.\n         * @param  {Number} idx  Children index\n         * @return {Number | undefined}      Parent index, -1 if idx is 0\n         */\n        HeapAsync.getParentIndexOf = function (idx) {\n            if (idx <= 0) {\n                return -1;\n            }\n            var whichChildren = idx % 2 ? 1 : 2;\n            return Math.floor((idx - whichChildren) / 2);\n        };\n        /**\n         * Gets sibling index for given index.\n         * @param  {Number} idx  Children index\n         * @return {Number | undefined}      Sibling index, -1 if idx is 0\n         */\n        HeapAsync.getSiblingIndexOf = function (idx) {\n            if (idx <= 0) {\n                return -1;\n            }\n            var whichChildren = idx % 2 ? 1 : -1;\n            return idx + whichChildren;\n        };\n        /**\n         * Min heap comparison function, default.\n         * @param  {any} a     First element\n         * @param  {any} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        HeapAsync.minComparator = function (a, b) {\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    if (a > b) {\n                        return [2 /*return*/, 1];\n                    }\n                    else if (a < b) {\n                        return [2 /*return*/, -1];\n                    }\n                    else {\n                        return [2 /*return*/, 0];\n                    }\n                });\n            });\n        };\n        /**\n         * Max heap comparison function.\n         * @param  {any} a     First element\n         * @param  {any} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        HeapAsync.maxComparator = function (a, b) {\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    if (b > a) {\n                        return [2 /*return*/, 1];\n                    }\n                    else if (b < a) {\n                        return [2 /*return*/, -1];\n                    }\n                    else {\n                        return [2 /*return*/, 0];\n                    }\n                });\n            });\n        };\n        /**\n         * Min number heap comparison function, default.\n         * @param  {Number} a     First element\n         * @param  {Number} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        HeapAsync.minComparatorNumber = function (a, b) {\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    return [2 /*return*/, a - b];\n                });\n            });\n        };\n        /**\n         * Max number heap comparison function.\n         * @param  {Number} a     First element\n         * @param  {Number} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        HeapAsync.maxComparatorNumber = function (a, b) {\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    return [2 /*return*/, b - a];\n                });\n            });\n        };\n        /**\n         * Default equality function.\n         * @param  {any} a    First element\n         * @param  {any} b    Second element\n         * @return {Boolean}  True if equal, false otherwise\n         */\n        HeapAsync.defaultIsEqual = function (a, b) {\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    return [2 /*return*/, a === b];\n                });\n            });\n        };\n        /**\n         * Prints a heap.\n         * @param  {HeapAsync} heap Heap to be printed\n         * @returns {String}\n         */\n        HeapAsync.print = function (heap) {\n            function deep(i) {\n                var pi = HeapAsync.getParentIndexOf(i);\n                return Math.floor(Math.log2(pi + 1));\n            }\n            function repeat(str, times) {\n                var out = '';\n                for (; times > 0; --times) {\n                    out += str;\n                }\n                return out;\n            }\n            var node = 0;\n            var lines = [];\n            var maxLines = deep(heap.length - 1) + 2;\n            var maxLength = 0;\n            while (node < heap.length) {\n                var i = deep(node) + 1;\n                if (node === 0) {\n                    i = 0;\n                }\n                // Text representation\n                var nodeText = String(heap.get(node));\n                if (nodeText.length > maxLength) {\n                    maxLength = nodeText.length;\n                }\n                // Add to line\n                lines[i] = lines[i] || [];\n                lines[i].push(nodeText);\n                node += 1;\n            }\n            return lines\n                .map(function (line, i) {\n                var times = Math.pow(2, maxLines - i) - 1;\n                return (repeat(' ', Math.floor(times / 2) * maxLength) +\n                    line\n                        .map(function (el) {\n                        // centered\n                        var half = (maxLength - el.length) / 2;\n                        return repeat(' ', Math.ceil(half)) + el + repeat(' ', Math.floor(half));\n                    })\n                        .join(repeat(' ', times * maxLength)));\n            })\n                .join('\\n');\n        };\n        /*\n                  Python style\n         */\n        /**\n         * Converts an array into an array-heap, in place\n         * @param  {Array}    arr      Array to be modified\n         * @param  {Function} compare  Optional compare function\n         * @return {HeapAsync}              For convenience, it returns a Heap instance\n         */\n        HeapAsync.heapify = function (arr, compare) {\n            return __awaiter(this, void 0, void 0, function () {\n                var heap;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            heap = new HeapAsync(compare);\n                            heap.heapArray = arr;\n                            return [4 /*yield*/, heap.init()];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/, heap];\n                    }\n                });\n            });\n        };\n        /**\n         * Extract the peek of an array-heap\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Returns the extracted peek\n         */\n        HeapAsync.heappop = function (heapArr, compare) {\n            var heap = new HeapAsync(compare);\n            heap.heapArray = heapArr;\n            return heap.pop();\n        };\n        /**\n         * Pushes a item into an array-heap\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {any}      item     Item to push\n         * @param  {Function} compare  Optional compare function\n         */\n        HeapAsync.heappush = function (heapArr, item, compare) {\n            return __awaiter(this, void 0, void 0, function () {\n                var heap;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            heap = new HeapAsync(compare);\n                            heap.heapArray = heapArr;\n                            return [4 /*yield*/, heap.push(item)];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/];\n                    }\n                });\n            });\n        };\n        /**\n         * Push followed by pop, faster\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {any}      item     Item to push\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Returns the extracted peek\n         */\n        HeapAsync.heappushpop = function (heapArr, item, compare) {\n            var heap = new HeapAsync(compare);\n            heap.heapArray = heapArr;\n            return heap.pushpop(item);\n        };\n        /**\n         * Replace peek with item\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {any}      item     Item as replacement\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Returns the extracted peek\n         */\n        HeapAsync.heapreplace = function (heapArr, item, compare) {\n            var heap = new HeapAsync(compare);\n            heap.heapArray = heapArr;\n            return heap.replace(item);\n        };\n        /**\n         * Return the `n` most valuable elements of a heap-like Array\n         * @param  {Array}    heapArr  Array, should be an array-heap\n         * @param  {number}   n        Max number of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        HeapAsync.heaptop = function (heapArr, n, compare) {\n            if (n === void 0) { n = 1; }\n            var heap = new HeapAsync(compare);\n            heap.heapArray = heapArr;\n            return heap.top(n);\n        };\n        /**\n         * Return the `n` least valuable elements of a heap-like Array\n         * @param  {Array}    heapArr  Array, should be an array-heap\n         * @param  {number}   n        Max number of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        HeapAsync.heapbottom = function (heapArr, n, compare) {\n            if (n === void 0) { n = 1; }\n            var heap = new HeapAsync(compare);\n            heap.heapArray = heapArr;\n            return heap.bottom(n);\n        };\n        /**\n         * Return the `n` most valuable elements of an iterable\n         * @param  {number}   n        Max number of elements\n         * @param  {Iterable} Iterable Iterable list of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        HeapAsync.nlargest = function (n, iterable, compare) {\n            return __awaiter(this, void 0, void 0, function () {\n                var heap;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            heap = new HeapAsync(compare);\n                            heap.heapArray = __spreadArray$1([], __read$1(iterable), false);\n                            return [4 /*yield*/, heap.init()];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/, heap.top(n)];\n                    }\n                });\n            });\n        };\n        /**\n         * Return the `n` least valuable elements of an iterable\n         * @param  {number}   n        Max number of elements\n         * @param  {Iterable} Iterable Iterable list of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        HeapAsync.nsmallest = function (n, iterable, compare) {\n            return __awaiter(this, void 0, void 0, function () {\n                var heap;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            heap = new HeapAsync(compare);\n                            heap.heapArray = __spreadArray$1([], __read$1(iterable), false);\n                            return [4 /*yield*/, heap.init()];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/, heap.bottom(n)];\n                    }\n                });\n            });\n        };\n        /*\n                  Instance methods\n         */\n        /**\n         * Adds an element to the heap. Aliases: `offer`.\n         * Same as: push(element)\n         * @param {any} element Element to be added\n         * @return {Boolean} true\n         */\n        HeapAsync.prototype.add = function (element) {\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0: return [4 /*yield*/, this._sortNodeUp(this.heapArray.push(element) - 1)];\n                        case 1:\n                            _a.sent();\n                            this._applyLimit();\n                            return [2 /*return*/, true];\n                    }\n                });\n            });\n        };\n        /**\n         * Adds an array of elements to the heap.\n         * Similar as: push(element, element, ...).\n         * @param {Array} elements Elements to be added\n         * @return {Boolean} true\n         */\n        HeapAsync.prototype.addAll = function (elements) {\n            return __awaiter(this, void 0, void 0, function () {\n                var i, l;\n                var _a;\n                return __generator$1(this, function (_b) {\n                    switch (_b.label) {\n                        case 0:\n                            i = this.length;\n                            (_a = this.heapArray).push.apply(_a, __spreadArray$1([], __read$1(elements), false));\n                            l = this.length;\n                            _b.label = 1;\n                        case 1:\n                            if (!(i < l)) return [3 /*break*/, 4];\n                            return [4 /*yield*/, this._sortNodeUp(i)];\n                        case 2:\n                            _b.sent();\n                            _b.label = 3;\n                        case 3:\n                            ++i;\n                            return [3 /*break*/, 1];\n                        case 4:\n                            this._applyLimit();\n                            return [2 /*return*/, true];\n                    }\n                });\n            });\n        };\n        /**\n         * Return the bottom (lowest value) N elements of the heap.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        HeapAsync.prototype.bottom = function (n) {\n            if (n === void 0) { n = 1; }\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    if (this.heapArray.length === 0 || n <= 0) {\n                        // Nothing to do\n                        return [2 /*return*/, []];\n                    }\n                    else if (this.heapArray.length === 1) {\n                        // Just the peek\n                        return [2 /*return*/, [this.heapArray[0]]];\n                    }\n                    else if (n >= this.heapArray.length) {\n                        // The whole heap\n                        return [2 /*return*/, __spreadArray$1([], __read$1(this.heapArray), false)];\n                    }\n                    else {\n                        // Some elements\n                        return [2 /*return*/, this._bottomN_push(~~n)];\n                    }\n                });\n            });\n        };\n        /**\n         * Check if the heap is sorted, useful for testing purposes.\n         * @return {Undefined | Element}  Returns an element if something wrong is found, otherwise it's undefined\n         */\n        HeapAsync.prototype.check = function () {\n            return __awaiter(this, void 0, void 0, function () {\n                var j, el, children, children_1, children_1_1, ch, e_1_1;\n                var e_1, _a;\n                return __generator$1(this, function (_b) {\n                    switch (_b.label) {\n                        case 0:\n                            j = 0;\n                            _b.label = 1;\n                        case 1:\n                            if (!(j < this.heapArray.length)) return [3 /*break*/, 10];\n                            el = this.heapArray[j];\n                            children = this.getChildrenOf(j);\n                            _b.label = 2;\n                        case 2:\n                            _b.trys.push([2, 7, 8, 9]);\n                            children_1 = (e_1 = void 0, __values(children)), children_1_1 = children_1.next();\n                            _b.label = 3;\n                        case 3:\n                            if (!!children_1_1.done) return [3 /*break*/, 6];\n                            ch = children_1_1.value;\n                            return [4 /*yield*/, this.compare(el, ch)];\n                        case 4:\n                            if ((_b.sent()) > 0) {\n                                return [2 /*return*/, el];\n                            }\n                            _b.label = 5;\n                        case 5:\n                            children_1_1 = children_1.next();\n                            return [3 /*break*/, 3];\n                        case 6: return [3 /*break*/, 9];\n                        case 7:\n                            e_1_1 = _b.sent();\n                            e_1 = { error: e_1_1 };\n                            return [3 /*break*/, 9];\n                        case 8:\n                            try {\n                                if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n                            }\n                            finally { if (e_1) throw e_1.error; }\n                            return [7 /*endfinally*/];\n                        case 9:\n                            ++j;\n                            return [3 /*break*/, 1];\n                        case 10: return [2 /*return*/];\n                    }\n                });\n            });\n        };\n        /**\n         * Remove all of the elements from this heap.\n         */\n        HeapAsync.prototype.clear = function () {\n            this.heapArray = [];\n        };\n        /**\n         * Clone this heap\n         * @return {HeapAsync}\n         */\n        HeapAsync.prototype.clone = function () {\n            var cloned = new HeapAsync(this.comparator());\n            cloned.heapArray = this.toArray();\n            cloned._limit = this._limit;\n            return cloned;\n        };\n        /**\n         * Returns the comparison function.\n         * @return {Function}\n         */\n        HeapAsync.prototype.comparator = function () {\n            return this.compare;\n        };\n        /**\n         * Returns true if this queue contains the specified element.\n         * @param  {any}      o   Element to be found\n         * @param  {Function} fn  Optional comparison function, receives (element, needle)\n         * @return {Boolean}\n         */\n        HeapAsync.prototype.contains = function (o, fn) {\n            if (fn === void 0) { fn = HeapAsync.defaultIsEqual; }\n            return __awaiter(this, void 0, void 0, function () {\n                var _a, _b, el, e_2_1;\n                var e_2, _c;\n                return __generator$1(this, function (_d) {\n                    switch (_d.label) {\n                        case 0:\n                            _d.trys.push([0, 5, 6, 7]);\n                            _a = __values(this.heapArray), _b = _a.next();\n                            _d.label = 1;\n                        case 1:\n                            if (!!_b.done) return [3 /*break*/, 4];\n                            el = _b.value;\n                            return [4 /*yield*/, fn(el, o)];\n                        case 2:\n                            if (_d.sent()) {\n                                return [2 /*return*/, true];\n                            }\n                            _d.label = 3;\n                        case 3:\n                            _b = _a.next();\n                            return [3 /*break*/, 1];\n                        case 4: return [3 /*break*/, 7];\n                        case 5:\n                            e_2_1 = _d.sent();\n                            e_2 = { error: e_2_1 };\n                            return [3 /*break*/, 7];\n                        case 6:\n                            try {\n                                if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n                            }\n                            finally { if (e_2) throw e_2.error; }\n                            return [7 /*endfinally*/];\n                        case 7: return [2 /*return*/, false];\n                    }\n                });\n            });\n        };\n        /**\n         * Initialise a heap, sorting nodes\n         * @param  {Array} array Optional initial state array\n         */\n        HeapAsync.prototype.init = function (array) {\n            return __awaiter(this, void 0, void 0, function () {\n                var i;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            if (array) {\n                                this.heapArray = __spreadArray$1([], __read$1(array), false);\n                            }\n                            i = Math.floor(this.heapArray.length);\n                            _a.label = 1;\n                        case 1:\n                            if (!(i >= 0)) return [3 /*break*/, 4];\n                            return [4 /*yield*/, this._sortNodeDown(i)];\n                        case 2:\n                            _a.sent();\n                            _a.label = 3;\n                        case 3:\n                            --i;\n                            return [3 /*break*/, 1];\n                        case 4:\n                            this._applyLimit();\n                            return [2 /*return*/];\n                    }\n                });\n            });\n        };\n        /**\n         * Test if the heap has no elements.\n         * @return {Boolean} True if no elements on the heap\n         */\n        HeapAsync.prototype.isEmpty = function () {\n            return this.length === 0;\n        };\n        /**\n         * Get the leafs of the tree (no children nodes)\n         */\n        HeapAsync.prototype.leafs = function () {\n            if (this.heapArray.length === 0) {\n                return [];\n            }\n            var pi = HeapAsync.getParentIndexOf(this.heapArray.length - 1);\n            return this.heapArray.slice(pi + 1);\n        };\n        Object.defineProperty(HeapAsync.prototype, \"length\", {\n            /**\n             * Length of the heap.\n             * @return {Number}\n             */\n            get: function () {\n                return this.heapArray.length;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(HeapAsync.prototype, \"limit\", {\n            /**\n             * Get length limit of the heap.\n             * @return {Number}\n             */\n            get: function () {\n                return this._limit;\n            },\n            /**\n             * Set length limit of the heap.\n             * @return {Number}\n             */\n            set: function (_l) {\n                this._limit = ~~_l;\n                this._applyLimit();\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Top node. Aliases: `element`.\n         * Same as: `top(1)[0]`\n         * @return {any} Top node\n         */\n        HeapAsync.prototype.peek = function () {\n            return this.heapArray[0];\n        };\n        /**\n         * Extract the top node (root). Aliases: `poll`.\n         * @return {any} Extracted top node, undefined if empty\n         */\n        HeapAsync.prototype.pop = function () {\n            return __awaiter(this, void 0, void 0, function () {\n                var last;\n                return __generator$1(this, function (_a) {\n                    last = this.heapArray.pop();\n                    if (this.length > 0 && last !== undefined) {\n                        return [2 /*return*/, this.replace(last)];\n                    }\n                    return [2 /*return*/, last];\n                });\n            });\n        };\n        /**\n         * Pushes element(s) to the heap.\n         * @param  {...any} elements Elements to insert\n         * @return {Boolean} True if elements are present\n         */\n        HeapAsync.prototype.push = function () {\n            var elements = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                elements[_i] = arguments[_i];\n            }\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    if (elements.length < 1) {\n                        return [2 /*return*/, false];\n                    }\n                    else if (elements.length === 1) {\n                        return [2 /*return*/, this.add(elements[0])];\n                    }\n                    else {\n                        return [2 /*return*/, this.addAll(elements)];\n                    }\n                });\n            });\n        };\n        /**\n         * Same as push & pop in sequence, but faster\n         * @param  {any} element Element to insert\n         * @return {any}  Extracted top node\n         */\n        HeapAsync.prototype.pushpop = function (element) {\n            return __awaiter(this, void 0, void 0, function () {\n                var _a;\n                return __generator$1(this, function (_b) {\n                    switch (_b.label) {\n                        case 0: return [4 /*yield*/, this.compare(this.heapArray[0], element)];\n                        case 1:\n                            if (!((_b.sent()) < 0)) return [3 /*break*/, 3];\n                            _a = __read$1([this.heapArray[0], element], 2), element = _a[0], this.heapArray[0] = _a[1];\n                            return [4 /*yield*/, this._sortNodeDown(0)];\n                        case 2:\n                            _b.sent();\n                            _b.label = 3;\n                        case 3: return [2 /*return*/, element];\n                    }\n                });\n            });\n        };\n        /**\n         * Remove an element from the heap.\n         * @param  {any}   o      Element to be found\n         * @param  {Function} fn  Optional function to compare\n         * @return {Boolean}      True if the heap was modified\n         */\n        HeapAsync.prototype.remove = function (o, fn) {\n            if (fn === void 0) { fn = HeapAsync.defaultIsEqual; }\n            return __awaiter(this, void 0, void 0, function () {\n                var idx, i;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            if (!(this.length > 0)) return [3 /*break*/, 13];\n                            if (!(o === undefined)) return [3 /*break*/, 2];\n                            return [4 /*yield*/, this.pop()];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/, true];\n                        case 2:\n                            idx = -1;\n                            i = 0;\n                            _a.label = 3;\n                        case 3:\n                            if (!(i < this.heapArray.length)) return [3 /*break*/, 6];\n                            return [4 /*yield*/, fn(this.heapArray[i], o)];\n                        case 4:\n                            if (_a.sent()) {\n                                idx = i;\n                                return [3 /*break*/, 6];\n                            }\n                            _a.label = 5;\n                        case 5:\n                            ++i;\n                            return [3 /*break*/, 3];\n                        case 6:\n                            if (!(idx >= 0)) return [3 /*break*/, 13];\n                            if (!(idx === 0)) return [3 /*break*/, 8];\n                            return [4 /*yield*/, this.pop()];\n                        case 7:\n                            _a.sent();\n                            return [3 /*break*/, 12];\n                        case 8:\n                            if (!(idx === this.length - 1)) return [3 /*break*/, 9];\n                            this.heapArray.pop();\n                            return [3 /*break*/, 12];\n                        case 9:\n                            this.heapArray.splice(idx, 1, this.heapArray.pop());\n                            return [4 /*yield*/, this._sortNodeUp(idx)];\n                        case 10:\n                            _a.sent();\n                            return [4 /*yield*/, this._sortNodeDown(idx)];\n                        case 11:\n                            _a.sent();\n                            _a.label = 12;\n                        case 12: return [2 /*return*/, true];\n                        case 13: return [2 /*return*/, false];\n                    }\n                });\n            });\n        };\n        /**\n         * Pop the current peek value, and add the new item.\n         * @param  {any} element  Element to replace peek\n         * @return {any}         Old peek\n         */\n        HeapAsync.prototype.replace = function (element) {\n            return __awaiter(this, void 0, void 0, function () {\n                var peek;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            peek = this.heapArray[0];\n                            this.heapArray[0] = element;\n                            return [4 /*yield*/, this._sortNodeDown(0)];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/, peek];\n                    }\n                });\n            });\n        };\n        /**\n         * Size of the heap\n         * @return {Number}\n         */\n        HeapAsync.prototype.size = function () {\n            return this.length;\n        };\n        /**\n         * Return the top (highest value) N elements of the heap.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}    Array of length <= N.\n         */\n        HeapAsync.prototype.top = function (n) {\n            if (n === void 0) { n = 1; }\n            return __awaiter(this, void 0, void 0, function () {\n                return __generator$1(this, function (_a) {\n                    if (this.heapArray.length === 0 || n <= 0) {\n                        // Nothing to do\n                        return [2 /*return*/, []];\n                    }\n                    else if (this.heapArray.length === 1 || n === 1) {\n                        // Just the peek\n                        return [2 /*return*/, [this.heapArray[0]]];\n                    }\n                    else if (n >= this.heapArray.length) {\n                        // The whole peek\n                        return [2 /*return*/, __spreadArray$1([], __read$1(this.heapArray), false)];\n                    }\n                    else {\n                        // Some elements\n                        return [2 /*return*/, this._topN_push(~~n)];\n                    }\n                });\n            });\n        };\n        /**\n         * Clone the heap's internal array\n         * @return {Array}\n         */\n        HeapAsync.prototype.toArray = function () {\n            return __spreadArray$1([], __read$1(this.heapArray), false);\n        };\n        /**\n         * String output, call to Array.prototype.toString()\n         * @return {String}\n         */\n        HeapAsync.prototype.toString = function () {\n            return this.heapArray.toString();\n        };\n        /**\n         * Get the element at the given index.\n         * @param  {Number} i Index to get\n         * @return {any}       Element at that index\n         */\n        HeapAsync.prototype.get = function (i) {\n            return this.heapArray[i];\n        };\n        /**\n         * Get the elements of these node's children\n         * @param  {Number} idx Node index\n         * @return {Array(any)}  Children elements\n         */\n        HeapAsync.prototype.getChildrenOf = function (idx) {\n            var _this = this;\n            return HeapAsync.getChildrenIndexOf(idx)\n                .map(function (i) { return _this.heapArray[i]; })\n                .filter(function (e) { return e !== undefined; });\n        };\n        /**\n         * Get the element of this node's parent\n         * @param  {Number} idx Node index\n         * @return {any}     Parent element\n         */\n        HeapAsync.prototype.getParentOf = function (idx) {\n            var pi = HeapAsync.getParentIndexOf(idx);\n            return this.heapArray[pi];\n        };\n        /**\n         * Iterator interface\n         */\n        HeapAsync.prototype[Symbol.iterator] = function () {\n            return __generator$1(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        if (!this.length) return [3 /*break*/, 2];\n                        return [4 /*yield*/, this.pop()];\n                    case 1:\n                        _a.sent();\n                        return [3 /*break*/, 0];\n                    case 2: return [2 /*return*/];\n                }\n            });\n        };\n        /**\n         * Returns an iterator. To comply with Java interface.\n         */\n        HeapAsync.prototype.iterator = function () {\n            return this;\n        };\n        /**\n         * Limit heap size if needed\n         */\n        HeapAsync.prototype._applyLimit = function () {\n            if (this._limit && this._limit < this.heapArray.length) {\n                var rm = this.heapArray.length - this._limit;\n                // It's much faster than splice\n                while (rm) {\n                    this.heapArray.pop();\n                    --rm;\n                }\n            }\n        };\n        /**\n         * Return the bottom (lowest value) N elements of the heap, without corner cases, unsorted\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        HeapAsync.prototype._bottomN_push = function (n) {\n            return __awaiter(this, void 0, void 0, function () {\n                var bottomHeap, startAt, parentStartAt, indices, i, arr, i;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            bottomHeap = new HeapAsync(this.compare);\n                            bottomHeap.limit = n;\n                            bottomHeap.heapArray = this.heapArray.slice(-n);\n                            return [4 /*yield*/, bottomHeap.init()];\n                        case 1:\n                            _a.sent();\n                            startAt = this.heapArray.length - 1 - n;\n                            parentStartAt = HeapAsync.getParentIndexOf(startAt);\n                            indices = [];\n                            for (i = startAt; i > parentStartAt; --i) {\n                                indices.push(i);\n                            }\n                            arr = this.heapArray;\n                            _a.label = 2;\n                        case 2:\n                            if (!indices.length) return [3 /*break*/, 6];\n                            i = indices.shift();\n                            return [4 /*yield*/, this.compare(arr[i], bottomHeap.peek())];\n                        case 3:\n                            if (!((_a.sent()) > 0)) return [3 /*break*/, 5];\n                            return [4 /*yield*/, bottomHeap.replace(arr[i])];\n                        case 4:\n                            _a.sent();\n                            if (i % 2) {\n                                indices.push(HeapAsync.getParentIndexOf(i));\n                            }\n                            _a.label = 5;\n                        case 5: return [3 /*break*/, 2];\n                        case 6: return [2 /*return*/, bottomHeap.toArray()];\n                    }\n                });\n            });\n        };\n        /**\n         * Move a node to a new index, switching places\n         * @param  {Number} j First node index\n         * @param  {Number} k Another node index\n         */\n        HeapAsync.prototype._moveNode = function (j, k) {\n            var _a;\n            _a = __read$1([this.heapArray[k], this.heapArray[j]], 2), this.heapArray[j] = _a[0], this.heapArray[k] = _a[1];\n        };\n        /**\n         * Move a node down the tree (to the leaves) to find a place where the heap is sorted.\n         * @param  {Number} i Index of the node\n         */\n        HeapAsync.prototype._sortNodeDown = function (i) {\n            return __awaiter(this, void 0, void 0, function () {\n                var moveIt, self, getPotentialParent, childrenIdx, bestChildIndex, j, bestChild, _a;\n                var _this = this;\n                return __generator$1(this, function (_b) {\n                    switch (_b.label) {\n                        case 0:\n                            moveIt = i < this.heapArray.length - 1;\n                            self = this.heapArray[i];\n                            getPotentialParent = function (best, j) { return __awaiter(_this, void 0, void 0, function () {\n                                var _a;\n                                return __generator$1(this, function (_b) {\n                                    switch (_b.label) {\n                                        case 0:\n                                            _a = this.heapArray.length > j;\n                                            if (!_a) return [3 /*break*/, 2];\n                                            return [4 /*yield*/, this.compare(this.heapArray[j], this.heapArray[best])];\n                                        case 1:\n                                            _a = (_b.sent()) < 0;\n                                            _b.label = 2;\n                                        case 2:\n                                            if (_a) {\n                                                best = j;\n                                            }\n                                            return [2 /*return*/, best];\n                                    }\n                                });\n                            }); };\n                            _b.label = 1;\n                        case 1:\n                            if (!moveIt) return [3 /*break*/, 8];\n                            childrenIdx = HeapAsync.getChildrenIndexOf(i);\n                            bestChildIndex = childrenIdx[0];\n                            j = 1;\n                            _b.label = 2;\n                        case 2:\n                            if (!(j < childrenIdx.length)) return [3 /*break*/, 5];\n                            return [4 /*yield*/, getPotentialParent(bestChildIndex, childrenIdx[j])];\n                        case 3:\n                            bestChildIndex = _b.sent();\n                            _b.label = 4;\n                        case 4:\n                            ++j;\n                            return [3 /*break*/, 2];\n                        case 5:\n                            bestChild = this.heapArray[bestChildIndex];\n                            _a = typeof bestChild !== 'undefined';\n                            if (!_a) return [3 /*break*/, 7];\n                            return [4 /*yield*/, this.compare(self, bestChild)];\n                        case 6:\n                            _a = (_b.sent()) > 0;\n                            _b.label = 7;\n                        case 7:\n                            if (_a) {\n                                this._moveNode(i, bestChildIndex);\n                                i = bestChildIndex;\n                            }\n                            else {\n                                moveIt = false;\n                            }\n                            return [3 /*break*/, 1];\n                        case 8: return [2 /*return*/];\n                    }\n                });\n            });\n        };\n        /**\n         * Move a node up the tree (to the root) to find a place where the heap is sorted.\n         * @param  {Number} i Index of the node\n         */\n        HeapAsync.prototype._sortNodeUp = function (i) {\n            return __awaiter(this, void 0, void 0, function () {\n                var moveIt, pi, _a;\n                return __generator$1(this, function (_b) {\n                    switch (_b.label) {\n                        case 0:\n                            moveIt = i > 0;\n                            _b.label = 1;\n                        case 1:\n                            if (!moveIt) return [3 /*break*/, 4];\n                            pi = HeapAsync.getParentIndexOf(i);\n                            _a = pi >= 0;\n                            if (!_a) return [3 /*break*/, 3];\n                            return [4 /*yield*/, this.compare(this.heapArray[pi], this.heapArray[i])];\n                        case 2:\n                            _a = (_b.sent()) > 0;\n                            _b.label = 3;\n                        case 3:\n                            if (_a) {\n                                this._moveNode(i, pi);\n                                i = pi;\n                            }\n                            else {\n                                moveIt = false;\n                            }\n                            return [3 /*break*/, 1];\n                        case 4: return [2 /*return*/];\n                    }\n                });\n            });\n        };\n        /**\n         * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n         * Implementation: push.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        HeapAsync.prototype._topN_push = function (n) {\n            return __awaiter(this, void 0, void 0, function () {\n                var topHeap, indices, arr, i;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            topHeap = new HeapAsync(this._invertedCompare);\n                            topHeap.limit = n;\n                            indices = [0];\n                            arr = this.heapArray;\n                            _a.label = 1;\n                        case 1:\n                            if (!indices.length) return [3 /*break*/, 7];\n                            i = indices.shift();\n                            if (!(i < arr.length)) return [3 /*break*/, 6];\n                            if (!(topHeap.length < n)) return [3 /*break*/, 3];\n                            return [4 /*yield*/, topHeap.push(arr[i])];\n                        case 2:\n                            _a.sent();\n                            indices.push.apply(indices, __spreadArray$1([], __read$1(HeapAsync.getChildrenIndexOf(i)), false));\n                            return [3 /*break*/, 6];\n                        case 3: return [4 /*yield*/, this.compare(arr[i], topHeap.peek())];\n                        case 4:\n                            if (!((_a.sent()) < 0)) return [3 /*break*/, 6];\n                            return [4 /*yield*/, topHeap.replace(arr[i])];\n                        case 5:\n                            _a.sent();\n                            indices.push.apply(indices, __spreadArray$1([], __read$1(HeapAsync.getChildrenIndexOf(i)), false));\n                            _a.label = 6;\n                        case 6: return [3 /*break*/, 1];\n                        case 7: return [2 /*return*/, topHeap.toArray()];\n                    }\n                });\n            });\n        };\n        /**\n         * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n         * Implementation: init + push.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        HeapAsync.prototype._topN_fill = function (n) {\n            return __awaiter(this, void 0, void 0, function () {\n                var heapArray, topHeap, branch, indices, i, i;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            heapArray = this.heapArray;\n                            topHeap = new HeapAsync(this._invertedCompare);\n                            topHeap.limit = n;\n                            topHeap.heapArray = heapArray.slice(0, n);\n                            return [4 /*yield*/, topHeap.init()];\n                        case 1:\n                            _a.sent();\n                            branch = HeapAsync.getParentIndexOf(n - 1) + 1;\n                            indices = [];\n                            for (i = branch; i < n; ++i) {\n                                indices.push.apply(indices, __spreadArray$1([], __read$1(HeapAsync.getChildrenIndexOf(i).filter(function (l) { return l < heapArray.length; })), false));\n                            }\n                            if ((n - 1) % 2) {\n                                indices.push(n);\n                            }\n                            _a.label = 2;\n                        case 2:\n                            if (!indices.length) return [3 /*break*/, 6];\n                            i = indices.shift();\n                            if (!(i < heapArray.length)) return [3 /*break*/, 5];\n                            return [4 /*yield*/, this.compare(heapArray[i], topHeap.peek())];\n                        case 3:\n                            if (!((_a.sent()) < 0)) return [3 /*break*/, 5];\n                            return [4 /*yield*/, topHeap.replace(heapArray[i])];\n                        case 4:\n                            _a.sent();\n                            indices.push.apply(indices, __spreadArray$1([], __read$1(HeapAsync.getChildrenIndexOf(i)), false));\n                            _a.label = 5;\n                        case 5: return [3 /*break*/, 2];\n                        case 6: return [2 /*return*/, topHeap.toArray()];\n                    }\n                });\n            });\n        };\n        /**\n         * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n         * Implementation: heap.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        HeapAsync.prototype._topN_heap = function (n) {\n            return __awaiter(this, void 0, void 0, function () {\n                var topHeap, result, i, _a, _b;\n                return __generator$1(this, function (_c) {\n                    switch (_c.label) {\n                        case 0:\n                            topHeap = this.clone();\n                            result = [];\n                            i = 0;\n                            _c.label = 1;\n                        case 1:\n                            if (!(i < n)) return [3 /*break*/, 4];\n                            _b = (_a = result).push;\n                            return [4 /*yield*/, topHeap.pop()];\n                        case 2:\n                            _b.apply(_a, [(_c.sent())]);\n                            _c.label = 3;\n                        case 3:\n                            ++i;\n                            return [3 /*break*/, 1];\n                        case 4: return [2 /*return*/, result];\n                    }\n                });\n            });\n        };\n        /**\n         * Return index of the top element\n         * @param list\n         */\n        HeapAsync.prototype._topIdxOf = function (list) {\n            return __awaiter(this, void 0, void 0, function () {\n                var idx, top, i, comp;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            if (!list.length) {\n                                return [2 /*return*/, -1];\n                            }\n                            idx = 0;\n                            top = list[idx];\n                            i = 1;\n                            _a.label = 1;\n                        case 1:\n                            if (!(i < list.length)) return [3 /*break*/, 4];\n                            return [4 /*yield*/, this.compare(list[i], top)];\n                        case 2:\n                            comp = _a.sent();\n                            if (comp < 0) {\n                                idx = i;\n                                top = list[i];\n                            }\n                            _a.label = 3;\n                        case 3:\n                            ++i;\n                            return [3 /*break*/, 1];\n                        case 4: return [2 /*return*/, idx];\n                    }\n                });\n            });\n        };\n        /**\n         * Return the top element\n         * @param list\n         */\n        HeapAsync.prototype._topOf = function () {\n            var list = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                list[_i] = arguments[_i];\n            }\n            return __awaiter(this, void 0, void 0, function () {\n                var heap;\n                return __generator$1(this, function (_a) {\n                    switch (_a.label) {\n                        case 0:\n                            heap = new HeapAsync(this.compare);\n                            return [4 /*yield*/, heap.init(list)];\n                        case 1:\n                            _a.sent();\n                            return [2 /*return*/, heap.peek()];\n                    }\n                });\n            });\n        };\n        return HeapAsync;\n    }());\n\n    var __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n        return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n        function verb(n) { return function (v) { return step([n, v]); }; }\n        function step(op) {\n            if (f) throw new TypeError(\"Generator is already executing.\");\n            while (g && (g = 0, op[0] && (_ = 0)), _) try {\n                if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n                if (y = 0, t) op = [op[0] & 2, t.value];\n                switch (op[0]) {\n                    case 0: case 1: t = op; break;\n                    case 4: _.label++; return { value: op[1], done: false };\n                    case 5: _.label++; y = op[1]; op = [0]; continue;\n                    case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                    default:\n                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                        if (t[2]) _.ops.pop();\n                        _.trys.pop(); continue;\n                }\n                op = body.call(thisArg, _);\n            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n        }\n    };\n    var __read = (undefined && undefined.__read) || function (o, n) {\n        var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n        if (!m) return o;\n        var i = m.call(o), r, ar = [], e;\n        try {\n            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n        }\n        catch (error) { e = { error: error }; }\n        finally {\n            try {\n                if (r && !r.done && (m = i[\"return\"])) m.call(i);\n            }\n            finally { if (e) throw e.error; }\n        }\n        return ar;\n    };\n    var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n            if (ar || !(i in from)) {\n                if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n                ar[i] = from[i];\n            }\n        }\n        return to.concat(ar || Array.prototype.slice.call(from));\n    };\n    var toInt = function (n) { return ~~n; };\n    /**\n     * Heap\n     * @type {Class}\n     */\n    var Heap = /** @class */ (function () {\n        /**\n         * Heap instance constructor.\n         * @param  {Function} compare Optional comparison function, defaults to Heap.minComparator<number>\n         */\n        function Heap(compare) {\n            if (compare === void 0) { compare = Heap.minComparator; }\n            var _this = this;\n            this.compare = compare;\n            this.heapArray = [];\n            this._limit = 0;\n            /**\n             * Alias of {@link add}\n             * @see add\n             */\n            this.offer = this.add;\n            /**\n             * Alias of {@link peek}\n             * @see peek\n             */\n            this.element = this.peek;\n            /**\n             * Alias of {@link pop}\n             * @see pop\n             */\n            this.poll = this.pop;\n            /**\n             * Alias of {@link clear}\n             * @see clear\n             */\n            this.removeAll = this.clear;\n            /**\n             * Returns the inverse to the comparison function.\n             * @return {Function}\n             */\n            this._invertedCompare = function (a, b) {\n                return -1 * _this.compare(a, b);\n            };\n        }\n        /*\n                  Static methods\n         */\n        /**\n         * Gets children indices for given index.\n         * @param  {Number} idx     Parent index\n         * @return {Array(Number)}  Array of children indices\n         */\n        Heap.getChildrenIndexOf = function (idx) {\n            return [idx * 2 + 1, idx * 2 + 2];\n        };\n        /**\n         * Gets parent index for given index.\n         * @param  {Number} idx  Children index\n         * @return {Number | undefined}      Parent index, -1 if idx is 0\n         */\n        Heap.getParentIndexOf = function (idx) {\n            if (idx <= 0) {\n                return -1;\n            }\n            var whichChildren = idx % 2 ? 1 : 2;\n            return Math.floor((idx - whichChildren) / 2);\n        };\n        /**\n         * Gets sibling index for given index.\n         * @param  {Number} idx  Children index\n         * @return {Number | undefined}      Sibling index, -1 if idx is 0\n         */\n        Heap.getSiblingIndexOf = function (idx) {\n            if (idx <= 0) {\n                return -1;\n            }\n            var whichChildren = idx % 2 ? 1 : -1;\n            return idx + whichChildren;\n        };\n        /**\n         * Min heap comparison function, default.\n         * @param  {any} a     First element\n         * @param  {any} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        Heap.minComparator = function (a, b) {\n            if (a > b) {\n                return 1;\n            }\n            else if (a < b) {\n                return -1;\n            }\n            else {\n                return 0;\n            }\n        };\n        /**\n         * Max heap comparison function.\n         * @param  {any} a     First element\n         * @param  {any} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        Heap.maxComparator = function (a, b) {\n            if (b > a) {\n                return 1;\n            }\n            else if (b < a) {\n                return -1;\n            }\n            else {\n                return 0;\n            }\n        };\n        /**\n         * Min number heap comparison function, default.\n         * @param  {Number} a     First element\n         * @param  {Number} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        Heap.minComparatorNumber = function (a, b) {\n            return a - b;\n        };\n        /**\n         * Max number heap comparison function.\n         * @param  {Number} a     First element\n         * @param  {Number} b     Second element\n         * @return {Number}    0 if they're equal, positive if `a` goes up, negative if `b` goes up\n         */\n        Heap.maxComparatorNumber = function (a, b) {\n            return b - a;\n        };\n        /**\n         * Default equality function.\n         * @param  {any} a    First element\n         * @param  {any} b    Second element\n         * @return {Boolean}  True if equal, false otherwise\n         */\n        Heap.defaultIsEqual = function (a, b) {\n            return a === b;\n        };\n        /**\n         * Prints a heap.\n         * @param  {Heap} heap Heap to be printed\n         * @returns {String}\n         */\n        Heap.print = function (heap) {\n            function deep(i) {\n                var pi = Heap.getParentIndexOf(i);\n                return Math.floor(Math.log2(pi + 1));\n            }\n            function repeat(str, times) {\n                var out = '';\n                for (; times > 0; --times) {\n                    out += str;\n                }\n                return out;\n            }\n            var node = 0;\n            var lines = [];\n            var maxLines = deep(heap.length - 1) + 2;\n            var maxLength = 0;\n            while (node < heap.length) {\n                var i = deep(node) + 1;\n                if (node === 0) {\n                    i = 0;\n                }\n                // Text representation\n                var nodeText = String(heap.get(node));\n                if (nodeText.length > maxLength) {\n                    maxLength = nodeText.length;\n                }\n                // Add to line\n                lines[i] = lines[i] || [];\n                lines[i].push(nodeText);\n                node += 1;\n            }\n            return lines\n                .map(function (line, i) {\n                var times = Math.pow(2, maxLines - i) - 1;\n                return (repeat(' ', Math.floor(times / 2) * maxLength) +\n                    line\n                        .map(function (el) {\n                        // centered\n                        var half = (maxLength - el.length) / 2;\n                        return repeat(' ', Math.ceil(half)) + el + repeat(' ', Math.floor(half));\n                    })\n                        .join(repeat(' ', times * maxLength)));\n            })\n                .join('\\n');\n        };\n        /*\n                  Python style\n         */\n        /**\n         * Converts an array into an array-heap, in place\n         * @param  {Array}    arr      Array to be modified\n         * @param  {Function} compare  Optional compare function\n         * @return {Heap}              For convenience, it returns a Heap instance\n         */\n        Heap.heapify = function (arr, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = arr;\n            heap.init();\n            return heap;\n        };\n        /**\n         * Extract the peek of an array-heap\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Returns the extracted peek\n         */\n        Heap.heappop = function (heapArr, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = heapArr;\n            return heap.pop();\n        };\n        /**\n         * Pushes a item into an array-heap\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {any}      item     Item to push\n         * @param  {Function} compare  Optional compare function\n         */\n        Heap.heappush = function (heapArr, item, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = heapArr;\n            heap.push(item);\n        };\n        /**\n         * Push followed by pop, faster\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {any}      item     Item to push\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Returns the extracted peek\n         */\n        Heap.heappushpop = function (heapArr, item, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = heapArr;\n            return heap.pushpop(item);\n        };\n        /**\n         * Replace peek with item\n         * @param  {Array}    heapArr  Array to be modified, should be a heap\n         * @param  {any}      item     Item as replacement\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Returns the extracted peek\n         */\n        Heap.heapreplace = function (heapArr, item, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = heapArr;\n            return heap.replace(item);\n        };\n        /**\n         * Return the `n` most valuable elements of a heap-like Array\n         * @param  {Array}    heapArr  Array, should be an array-heap\n         * @param  {number}   n        Max number of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        Heap.heaptop = function (heapArr, n, compare) {\n            if (n === void 0) { n = 1; }\n            var heap = new Heap(compare);\n            heap.heapArray = heapArr;\n            return heap.top(n);\n        };\n        /**\n         * Return the `n` least valuable elements of a heap-like Array\n         * @param  {Array}    heapArr  Array, should be an array-heap\n         * @param  {number}   n        Max number of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        Heap.heapbottom = function (heapArr, n, compare) {\n            if (n === void 0) { n = 1; }\n            var heap = new Heap(compare);\n            heap.heapArray = heapArr;\n            return heap.bottom(n);\n        };\n        /**\n         * Return the `n` most valuable elements of an iterable\n         * @param  {number}   n        Max number of elements\n         * @param  {Iterable} Iterable Iterable list of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        Heap.nlargest = function (n, iterable, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = __spreadArray([], __read(iterable), false);\n            heap.init();\n            return heap.top(n);\n        };\n        /**\n         * Return the `n` least valuable elements of an iterable\n         * @param  {number}   n        Max number of elements\n         * @param  {Iterable} Iterable Iterable list of elements\n         * @param  {Function} compare  Optional compare function\n         * @return {any}               Elements\n         */\n        Heap.nsmallest = function (n, iterable, compare) {\n            var heap = new Heap(compare);\n            heap.heapArray = __spreadArray([], __read(iterable), false);\n            heap.init();\n            return heap.bottom(n);\n        };\n        /*\n                  Instance methods\n         */\n        /**\n         * Adds an element to the heap. Aliases: {@link offer}.\n         * Same as: {@link push}(element).\n         * @param {any} element Element to be added\n         * @return {Boolean} true\n         */\n        Heap.prototype.add = function (element) {\n            this._sortNodeUp(this.heapArray.push(element) - 1);\n            this._applyLimit();\n            return true;\n        };\n        /**\n         * Adds an array of elements to the heap.\n         * Similar as: {@link push}(element, element, ...).\n         * @param {Array} elements Elements to be added\n         * @return {Boolean} true\n         */\n        Heap.prototype.addAll = function (elements) {\n            var _a;\n            var i = this.length;\n            (_a = this.heapArray).push.apply(_a, __spreadArray([], __read(elements), false));\n            for (var l = this.length; i < l; ++i) {\n                this._sortNodeUp(i);\n            }\n            this._applyLimit();\n            return true;\n        };\n        /**\n         * Return the bottom (lowest value) N elements of the heap.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        Heap.prototype.bottom = function (n) {\n            if (n === void 0) { n = 1; }\n            if (this.heapArray.length === 0 || n <= 0) {\n                // Nothing to do\n                return [];\n            }\n            else if (this.heapArray.length === 1) {\n                // Just the peek\n                return [this.heapArray[0]];\n            }\n            else if (n >= this.heapArray.length) {\n                // The whole heap\n                return __spreadArray([], __read(this.heapArray), false);\n            }\n            else {\n                // Some elements\n                return this._bottomN_push(~~n);\n            }\n        };\n        /**\n         * Check if the heap is sorted, useful for testing purposes.\n         * @return {Undefined | Element}  Returns an element if something wrong is found, otherwise it's undefined\n         */\n        Heap.prototype.check = function () {\n            var _this = this;\n            return this.heapArray.find(function (el, j) { return !!_this.getChildrenOf(j).find(function (ch) { return _this.compare(el, ch) > 0; }); });\n        };\n        /**\n         * Remove all of the elements from this heap.\n         */\n        Heap.prototype.clear = function () {\n            this.heapArray = [];\n        };\n        /**\n         * Clone this heap\n         * @return {Heap}\n         */\n        Heap.prototype.clone = function () {\n            var cloned = new Heap(this.comparator());\n            cloned.heapArray = this.toArray();\n            cloned._limit = this._limit;\n            return cloned;\n        };\n        /**\n         * Returns the comparison function.\n         * @return {Function}\n         */\n        Heap.prototype.comparator = function () {\n            return this.compare;\n        };\n        /**\n         * Returns true if this queue contains the specified element.\n         * @param  {any}      o   Element to be found\n         * @param  {Function} callbackFn  Optional comparison function, receives (element, needle)\n         * @return {Boolean}\n         */\n        Heap.prototype.contains = function (o, callbackFn) {\n            if (callbackFn === void 0) { callbackFn = Heap.defaultIsEqual; }\n            return this.indexOf(o, callbackFn) !== -1;\n        };\n        /**\n         * Initialize a heap, sorting nodes\n         * @param  {Array} array Optional initial state array\n         */\n        Heap.prototype.init = function (array) {\n            if (array) {\n                this.heapArray = __spreadArray([], __read(array), false);\n            }\n            for (var i = Math.floor(this.heapArray.length); i >= 0; --i) {\n                this._sortNodeDown(i);\n            }\n            this._applyLimit();\n        };\n        /**\n         * Test if the heap has no elements.\n         * @return {Boolean} True if no elements on the heap\n         */\n        Heap.prototype.isEmpty = function () {\n            return this.length === 0;\n        };\n        /**\n         * Get the index of the first occurrence of the element in the heap (using the comparator).\n         * @param  {any}      element    Element to be found\n         * @param  {Function} callbackFn Optional comparison function, receives (element, needle)\n         * @return {Number}              Index or -1 if not found\n         */\n        Heap.prototype.indexOf = function (element, callbackFn) {\n            if (callbackFn === void 0) { callbackFn = Heap.defaultIsEqual; }\n            if (this.heapArray.length === 0) {\n                return -1;\n            }\n            var indexes = [];\n            var currentIndex = 0;\n            while (currentIndex < this.heapArray.length) {\n                var currentElement = this.heapArray[currentIndex];\n                if (callbackFn(currentElement, element)) {\n                    return currentIndex;\n                }\n                else if (this.compare(currentElement, element) <= 0) {\n                    indexes.push.apply(indexes, __spreadArray([], __read(Heap.getChildrenIndexOf(currentIndex)), false));\n                }\n                currentIndex = indexes.shift() || this.heapArray.length;\n            }\n            return -1;\n        };\n        /**\n         * Get the indexes of the every occurrence of the element in the heap (using the comparator).\n         * @param  {any}      element    Element to be found\n         * @param  {Function} callbackFn Optional comparison function, receives (element, needle)\n         * @return {Array}               Array of indexes or empty array if not found\n         */\n        Heap.prototype.indexOfEvery = function (element, callbackFn) {\n            if (callbackFn === void 0) { callbackFn = Heap.defaultIsEqual; }\n            if (this.heapArray.length === 0) {\n                return [];\n            }\n            var indexes = [];\n            var foundIndexes = [];\n            var currentIndex = 0;\n            while (currentIndex < this.heapArray.length) {\n                var currentElement = this.heapArray[currentIndex];\n                if (callbackFn(currentElement, element)) {\n                    foundIndexes.push(currentIndex);\n                    indexes.push.apply(indexes, __spreadArray([], __read(Heap.getChildrenIndexOf(currentIndex)), false));\n                }\n                else if (this.compare(currentElement, element) <= 0) {\n                    indexes.push.apply(indexes, __spreadArray([], __read(Heap.getChildrenIndexOf(currentIndex)), false));\n                }\n                currentIndex = indexes.shift() || this.heapArray.length;\n            }\n            return foundIndexes;\n        };\n        /**\n         * Get the leafs of the tree (no children nodes).\n         * See also: {@link getChildrenOf} and {@link bottom}.\n         * @return {Array}\n         * @see getChildrenOf\n         * @see bottom\n         */\n        Heap.prototype.leafs = function () {\n            if (this.heapArray.length === 0) {\n                return [];\n            }\n            var pi = Heap.getParentIndexOf(this.heapArray.length - 1);\n            return this.heapArray.slice(pi + 1);\n        };\n        Object.defineProperty(Heap.prototype, \"length\", {\n            /**\n             * Length of the heap. Aliases: {@link size}.\n             * @return {Number}\n             * @see size\n             */\n            get: function () {\n                return this.heapArray.length;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(Heap.prototype, \"limit\", {\n            /**\n             * Get length limit of the heap.\n             * Use {@link setLimit} or {@link limit} to set the limit.\n             * @return {Number}\n             * @see setLimit\n             */\n            get: function () {\n                return this._limit;\n            },\n            /**\n             * Set length limit of the heap. Same as using {@link setLimit}.\n             * @description If the heap is longer than the limit, the needed amount of leafs are removed.\n             * @param {Number} _l Limit, defaults to 0 (no limit). Negative, Infinity, or NaN values set the limit to 0.\n             * @see setLimit\n             */\n            set: function (_l) {\n                if (_l < 0 || isNaN(_l)) {\n                    // NaN, negative, and Infinity are treated as 0\n                    this._limit = 0;\n                }\n                else {\n                    // truncating a floating-point number to an integer\n                    this._limit = ~~_l;\n                }\n                this._applyLimit();\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Set length limit of the heap.\n         * Same as assigning to {@link limit} but returns NaN if the value was invalid.\n         * @param {Number} _l Limit. Negative, Infinity, or NaN values set the limit to 0.\n         * @return {Number} The limit or NaN if the value was negative, or NaN.\n         * @see limit\n         */\n        Heap.prototype.setLimit = function (_l) {\n            this.limit = _l;\n            if (_l < 0 || isNaN(_l)) {\n                return NaN;\n            }\n            else {\n                return this._limit;\n            }\n        };\n        /**\n         * Top node. Aliases: {@link element}.\n         * Same as: {@link top}(1)[0].\n         * @return {any} Top node\n         * @see top\n         */\n        Heap.prototype.peek = function () {\n            return this.heapArray[0];\n        };\n        /**\n         * Extract the top node (root). Aliases: {@link poll}.\n         * @return {any} Extracted top node, undefined if empty\n         */\n        Heap.prototype.pop = function () {\n            var last = this.heapArray.pop();\n            if (this.length > 0 && last !== undefined) {\n                return this.replace(last);\n            }\n            return last;\n        };\n        /**\n         * Pushes element(s) to the heap.\n         * See also: {@link add} and {@link addAll}.\n         * @param  {...any} elements Elements to insert\n         * @return {Boolean} True if elements are present\n         */\n        Heap.prototype.push = function () {\n            var elements = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                elements[_i] = arguments[_i];\n            }\n            if (elements.length < 1) {\n                return false;\n            }\n            else if (elements.length === 1) {\n                return this.add(elements[0]);\n            }\n            else {\n                return this.addAll(elements);\n            }\n        };\n        /**\n         * Same as push & pop in sequence, but faster\n         * @param  {any} element Element to insert\n         * @return {any}  Extracted top node\n         */\n        Heap.prototype.pushpop = function (element) {\n            var _a;\n            if (this.compare(this.heapArray[0], element) < 0) {\n                _a = __read([this.heapArray[0], element], 2), element = _a[0], this.heapArray[0] = _a[1];\n                this._sortNodeDown(0);\n            }\n            return element;\n        };\n        /**\n         * Remove the first occurrence of an element from the heap.\n         * @param  {any}   o      Element to be found\n         * @param  {Function} callbackFn  Optional equality function, receives (element, needle)\n         * @return {Boolean}      True if the heap was modified\n         */\n        Heap.prototype.remove = function (o, callbackFn) {\n            if (callbackFn === void 0) { callbackFn = Heap.defaultIsEqual; }\n            if (this.length > 0) {\n                if (o === undefined) {\n                    this.pop();\n                    return true;\n                }\n                else {\n                    var idx = this.indexOf(o, callbackFn);\n                    if (idx >= 0) {\n                        if (idx === 0) {\n                            this.pop();\n                        }\n                        else if (idx === this.length - 1) {\n                            this.heapArray.pop();\n                        }\n                        else {\n                            this.heapArray.splice(idx, 1, this.heapArray.pop());\n                            this._sortNodeUp(idx);\n                            this._sortNodeDown(idx);\n                        }\n                        return true;\n                    }\n                }\n            }\n            return false;\n        };\n        /**\n         * Pop the current peek value, and add the new item.\n         * @param  {any} element  Element to replace peek\n         * @return {any}         Old peek\n         */\n        Heap.prototype.replace = function (element) {\n            var peek = this.heapArray[0];\n            this.heapArray[0] = element;\n            this._sortNodeDown(0);\n            return peek;\n        };\n        /**\n         * Size of the heap\n         * @return {Number}\n         */\n        Heap.prototype.size = function () {\n            return this.length;\n        };\n        /**\n         * Return the top (highest value) N elements of the heap.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}    Array of length <= N.\n         */\n        Heap.prototype.top = function (n) {\n            if (n === void 0) { n = 1; }\n            if (this.heapArray.length === 0 || n <= 0) {\n                // Nothing to do\n                return [];\n            }\n            else if (this.heapArray.length === 1 || n === 1) {\n                // Just the peek\n                return [this.heapArray[0]];\n            }\n            else if (n >= this.heapArray.length) {\n                // The whole peek\n                return __spreadArray([], __read(this.heapArray), false);\n            }\n            else {\n                // Some elements\n                return this._topN_push(~~n);\n            }\n        };\n        /**\n         * Clone the heap's internal array\n         * @return {Array}\n         */\n        Heap.prototype.toArray = function () {\n            return __spreadArray([], __read(this.heapArray), false);\n        };\n        /**\n         * String output, call to Array.prototype.toString()\n         * @return {String}\n         */\n        Heap.prototype.toString = function () {\n            return this.heapArray.toString();\n        };\n        /**\n         * Get the element at the given index.\n         * @param  {Number} i Index to get\n         * @return {any}       Element at that index\n         */\n        Heap.prototype.get = function (i) {\n            return this.heapArray[i];\n        };\n        /**\n         * Get the elements of these node's children\n         * @param  {Number} idx Node index\n         * @return {Array(any)}  Children elements\n         */\n        Heap.prototype.getChildrenOf = function (idx) {\n            var _this = this;\n            return Heap.getChildrenIndexOf(idx)\n                .map(function (i) { return _this.heapArray[i]; })\n                .filter(function (e) { return e !== undefined; });\n        };\n        /**\n         * Get the element of this node's parent\n         * @param  {Number} idx Node index\n         * @return {any}     Parent element\n         */\n        Heap.prototype.getParentOf = function (idx) {\n            var pi = Heap.getParentIndexOf(idx);\n            return this.heapArray[pi];\n        };\n        /**\n         * Iterator interface\n         */\n        Heap.prototype[Symbol.iterator] = function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        if (!this.length) return [3 /*break*/, 2];\n                        return [4 /*yield*/, this.pop()];\n                    case 1:\n                        _a.sent();\n                        return [3 /*break*/, 0];\n                    case 2: return [2 /*return*/];\n                }\n            });\n        };\n        /**\n         * Returns an iterator. To comply with Java interface.\n         */\n        Heap.prototype.iterator = function () {\n            return this.toArray();\n        };\n        /**\n         * Limit heap size if needed\n         */\n        Heap.prototype._applyLimit = function () {\n            if (this._limit > 0 && this._limit < this.heapArray.length) {\n                var rm = this.heapArray.length - this._limit;\n                // It's much faster than splice\n                while (rm) {\n                    this.heapArray.pop();\n                    --rm;\n                }\n            }\n        };\n        /**\n         * Return the bottom (lowest value) N elements of the heap, without corner cases, unsorted\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        Heap.prototype._bottomN_push = function (n) {\n            // Use an inverted heap\n            var bottomHeap = new Heap(this.compare);\n            bottomHeap.limit = n;\n            bottomHeap.heapArray = this.heapArray.slice(-n);\n            bottomHeap.init();\n            var startAt = this.heapArray.length - 1 - n;\n            var parentStartAt = Heap.getParentIndexOf(startAt);\n            var indices = [];\n            for (var i = startAt; i > parentStartAt; --i) {\n                indices.push(i);\n            }\n            var arr = this.heapArray;\n            while (indices.length) {\n                var i = indices.shift();\n                if (this.compare(arr[i], bottomHeap.peek()) > 0) {\n                    bottomHeap.replace(arr[i]);\n                    if (i % 2) {\n                        indices.push(Heap.getParentIndexOf(i));\n                    }\n                }\n            }\n            return bottomHeap.toArray();\n        };\n        /**\n         * Move a node to a new index, switching places\n         * @param  {Number} j First node index\n         * @param  {Number} k Another node index\n         */\n        Heap.prototype._moveNode = function (j, k) {\n            var _a;\n            _a = __read([this.heapArray[k], this.heapArray[j]], 2), this.heapArray[j] = _a[0], this.heapArray[k] = _a[1];\n        };\n        /**\n         * Move a node down the tree (to the leaves) to find a place where the heap is sorted.\n         * @param  {Number} i Index of the node\n         */\n        Heap.prototype._sortNodeDown = function (i) {\n            var _this = this;\n            var moveIt = i < this.heapArray.length - 1;\n            var self = this.heapArray[i];\n            var getPotentialParent = function (best, j) {\n                if (_this.heapArray.length > j && _this.compare(_this.heapArray[j], _this.heapArray[best]) < 0) {\n                    best = j;\n                }\n                return best;\n            };\n            while (moveIt) {\n                var childrenIdx = Heap.getChildrenIndexOf(i);\n                var bestChildIndex = childrenIdx.reduce(getPotentialParent, childrenIdx[0]);\n                var bestChild = this.heapArray[bestChildIndex];\n                if (typeof bestChild !== 'undefined' && this.compare(self, bestChild) > 0) {\n                    this._moveNode(i, bestChildIndex);\n                    i = bestChildIndex;\n                }\n                else {\n                    moveIt = false;\n                }\n            }\n        };\n        /**\n         * Move a node up the tree (to the root) to find a place where the heap is sorted.\n         * @param  {Number} i Index of the node\n         */\n        Heap.prototype._sortNodeUp = function (i) {\n            var moveIt = i > 0;\n            while (moveIt) {\n                var pi = Heap.getParentIndexOf(i);\n                if (pi >= 0 && this.compare(this.heapArray[pi], this.heapArray[i]) > 0) {\n                    this._moveNode(i, pi);\n                    i = pi;\n                }\n                else {\n                    moveIt = false;\n                }\n            }\n        };\n        /**\n         * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n         * Implementation: push.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        Heap.prototype._topN_push = function (n) {\n            // Use an inverted heap\n            var topHeap = new Heap(this._invertedCompare);\n            topHeap.limit = n;\n            var indices = [0];\n            var arr = this.heapArray;\n            while (indices.length) {\n                var i = indices.shift();\n                if (i < arr.length) {\n                    if (topHeap.length < n) {\n                        topHeap.push(arr[i]);\n                        indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i)), false));\n                    }\n                    else if (this.compare(arr[i], topHeap.peek()) < 0) {\n                        topHeap.replace(arr[i]);\n                        indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i)), false));\n                    }\n                }\n            }\n            return topHeap.toArray();\n        };\n        /**\n         * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n         * Implementation: init + push.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        Heap.prototype._topN_fill = function (n) {\n            // Use an inverted heap\n            var heapArray = this.heapArray;\n            var topHeap = new Heap(this._invertedCompare);\n            topHeap.limit = n;\n            topHeap.heapArray = heapArray.slice(0, n);\n            topHeap.init();\n            var branch = Heap.getParentIndexOf(n - 1) + 1;\n            var indices = [];\n            for (var i = branch; i < n; ++i) {\n                indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i).filter(function (l) { return l < heapArray.length; })), false));\n            }\n            if ((n - 1) % 2) {\n                indices.push(n);\n            }\n            while (indices.length) {\n                var i = indices.shift();\n                if (i < heapArray.length) {\n                    if (this.compare(heapArray[i], topHeap.peek()) < 0) {\n                        topHeap.replace(heapArray[i]);\n                        indices.push.apply(indices, __spreadArray([], __read(Heap.getChildrenIndexOf(i)), false));\n                    }\n                }\n            }\n            return topHeap.toArray();\n        };\n        /**\n         * Return the top (highest value) N elements of the heap, without corner cases, unsorted\n         * Implementation: heap.\n         *\n         * @param  {Number} n  Number of elements.\n         * @return {Array}     Array of length <= N.\n         */\n        Heap.prototype._topN_heap = function (n) {\n            var topHeap = this.clone();\n            var result = [];\n            for (var i = 0; i < n; ++i) {\n                result.push(topHeap.pop());\n            }\n            return result;\n        };\n        /**\n         * Return index of the top element\n         * @param list\n         */\n        Heap.prototype._topIdxOf = function (list) {\n            if (!list.length) {\n                return -1;\n            }\n            var idx = 0;\n            var top = list[idx];\n            for (var i = 1; i < list.length; ++i) {\n                var comp = this.compare(list[i], top);\n                if (comp < 0) {\n                    idx = i;\n                    top = list[i];\n                }\n            }\n            return idx;\n        };\n        /**\n         * Return the top element\n         * @param list\n         */\n        Heap.prototype._topOf = function () {\n            var list = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                list[_i] = arguments[_i];\n            }\n            var heap = new Heap(this.compare);\n            heap.init(list);\n            return heap.peek();\n        };\n        return Heap;\n    }());\n\n    exports.Heap = Heap;\n    exports.HeapAsync = HeapAsync;\n    exports.default = Heap;\n    exports.toInt = toInt;\n\n    Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n", "import { DurableObject } from \"cloudflare:workers\";\nimport { Context } from \"./context\";\nimport {\n\tINSTANCE_METADATA,\n\tInstanceEvent,\n\tInstanceStatus,\n\tinstanceStatusName,\n\tInstanceTrigger,\n\ttoInstanceStatus,\n} from \"./instance\";\nimport { computeHash } from \"./lib/cache\";\nimport {\n\tABORT_REASONS,\n\tcreateWorkflowError,\n\tisAbortError,\n\tPreservedNonRetryableError,\n\tshouldPreserveNonRetryableError,\n\tstepNotFoundError,\n\tWorkflowFatalError,\n} from \"./lib/errors\";\nimport {\n\tENGINE_TIMEOUT,\n\tGracePeriodSemaphore,\n\tstartGracePeriod,\n} from \"./lib/gracePeriodSemaphore\";\nimport {\n\treadAndClearRestartFromStep,\n\tresolveGroupKeysToWipe,\n\tstoreRestartFromStep,\n\twipeRestartState,\n} from \"./lib/restart\";\nimport {\n\tclearRollbackRegistry,\n\tdisposeRollbackStub,\n\texecuteRollbacks,\n\tregisterRollbackFn,\n\tROLLBACK_CACHE_KEY_PREFIX,\n} from \"./lib/rollback\";\nimport {\n\tcreateReplayReadableStream,\n\tgetInvalidStoredStreamOutputError,\n\tgetStoredStreamOutputPreview,\n\tStreamOutputState,\n} from \"./lib/streams\";\nimport { TimePriorityQueue } from \"./lib/timePriorityQueue\";\nimport { MODIFIER_KEYS, WorkflowInstanceModifier } from \"./modifier\";\nimport type {\n\tRestartFromStep,\n\tWorkflowInstanceTerminateOptions,\n} from \"./binding\";\nimport type { Event } from \"./context\";\nimport type { InstanceMetadata, RawInstanceLog } from \"./instance\";\nimport type {\n\tRollbackRegistration,\n\tRollbackRegistryEntry,\n} from \"./lib/rollback\";\nimport type { StreamOutputMeta } from \"./lib/streams\";\nimport type {\n\tWorkflowEntrypoint,\n\tWorkflowEvent,\n\tWorkflowStep,\n} from \"cloudflare:workers\";\n\ninterface Env {\n\tENGINE: DurableObjectNamespace<Engine>;\n\tUSER_WORKFLOW: WorkflowEntrypoint;\n\tSTEP_LIMIT?: string; // JSON-encoded number from miniflare binding\n}\n\nexport type DatabaseWorkflow = {\n\tname: string;\n\tid: string;\n\tcreated_on: string;\n\tmodified_on: string;\n\tscript_name: string;\n\tclass_name: string | null;\n\ttriggered_on: string | null;\n};\n\nexport type DatabaseVersion = {\n\tid: string;\n\tclass_name: string;\n\tcreated_on: string;\n\tmodified_on: string;\n\tworkflow_id: string;\n\tmutable_pipeline_id: string;\n};\n\nexport type DatabaseInstance = {\n\tid: string;\n\tcreated_on: string;\n\tmodified_on: string;\n\tworkflow_id: string;\n\tversion_id: string;\n\tstatus: InstanceStatus;\n\tstarted_on: string | null;\n\tended_on: string | null;\n};\n\nexport type Log = {\n\tevent: InstanceEvent;\n\tgroup: string | null;\n\ttarget: string | null;\n\tmetadata: {\n\t\tresult: string;\n\t\tpayload: string;\n\t\terror: { name: string; message: string };\n\t};\n};\n\nexport type EngineLogs = {\n\tlogs: Log[];\n};\n\nconst ENGINE_STATUS_KEY = \"ENGINE_STATUS\";\n\nconst EVENT_MAP_PREFIX = \"EVENT_MAP\";\n\nexport const DEFAULT_STEP_LIMIT = 10_000;\n\nconst PAUSE_DATETIME = \"PAUSE_DATETIME\";\n\nexport type RollbackPhase = \"replay\" | \"rollback\";\n\n/**\n * JSON.stringify replacer that converts TypedArrays and ArrayBuffers to a\n * human-readable description. Without this, JSON.stringify(Uint8Array) encodes\n * each byte as a numeric key ({\"0\":1,\"1\":2,...}), producing a string ~10x larger\n * than byteLength and causing SQLITE_TOOBIG for outputs above ~170 KB.\n * The replacer is called recursively by JSON.stringify, so nested binary values\n * inside objects or arrays are also handled.\n */\nfunction binaryReplacer(_key: string, value: unknown): unknown {\n\tif (value instanceof ArrayBuffer) {\n\t\treturn `[ArrayBuffer(${value.byteLength} bytes)]`;\n\t}\n\tif (ArrayBuffer.isView(value) && !(value instanceof DataView)) {\n\t\treturn `[${value.constructor.name}(${(value as ArrayBufferView).byteLength} bytes)]`;\n\t}\n\treturn value;\n}\n\nfunction isStepSuccessEvent(event: InstanceEvent): boolean {\n\treturn (\n\t\tevent === InstanceEvent.STEP_SUCCESS ||\n\t\tevent === InstanceEvent.ROLLBACK_STEP_SUCCESS\n\t);\n}\n\nexport class Engine extends DurableObject<Env> {\n\tlogs: Array<unknown> = [];\n\n\tisRunning: boolean = false;\n\taccountId: number | undefined;\n\tinstanceId: string | undefined;\n\tworkflowName: string | undefined;\n\ttimeoutHandler: GracePeriodSemaphore;\n\tpriorityQueue: TimePriorityQueue | undefined;\n\tstepLimit: number;\n\tengineAbortController: AbortController = new AbortController();\n\tpauseController: AbortController = new AbortController();\n\trollbackPhase: RollbackPhase | undefined = undefined;\n\trollbackEligibleCacheKeys: Set<string> | undefined = undefined;\n\n\twaiters: Map<\n\t\tstring,\n\t\tArray<\n\t\t\t[cacheKey: string, resolve: (event: Event | PromiseLike<Event>) => void]\n\t\t>\n\t> = new Map();\n\teventMap: Map<string, Array<Event>> = new Map();\n\n\t// Not persisted: rollback fns are RPC stubs, dead across DO restarts.\n\trollbackRegistry: Map<string, RollbackRegistryEntry> = new Map();\n\n\tconstructor(state: DurableObjectState, env: Env) {\n\t\tsuper(state, env);\n\n\t\tthis.stepLimit = env.STEP_LIMIT\n\t\t\t? JSON.parse(env.STEP_LIMIT)\n\t\t\t: DEFAULT_STEP_LIMIT;\n\n\t\tvoid this.ctx.blockConcurrencyWhile(async () => {\n\t\t\tthis.ctx.storage.transactionSync(() => {\n\t\t\t\ttry {\n\t\t\t\t\tthis.ctx.storage.sql.exec(`\n\t\t\t\t\t\tCREATE TABLE IF NOT EXISTS priority_queue (\n\t\t\t\t\t\t\tid INTEGER PRIMARY KEY NOT NULL,\n\t\t\t\t\t\t\tcreated_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\t\t\t\t\t\t\ttarget_timestamp INTEGER NOT NULL,\n\t\t\t\t\t\t\taction INTEGER NOT NULL, -- should only be 0 or 1 (1 for added, 0 for deleted),\n\t\t\t\t\t\t\tentryType INTEGER NOT NULL,\n\t\t\t\t\t\t\thash TEXT NOT NULL,\n\t\t\t\t\t\t\tCHECK (action IN (0, 1)), -- guararentee that action can only be 0 or 1\n\t\t\t\t\t\t\tUNIQUE (action, entryType, hash)\n\t\t\t\t\t\t);\n\t\t\t\tCREATE TABLE IF NOT EXISTS states (\n\t\t\t\t\tid INTEGER PRIMARY KEY NOT NULL,\n\t\t\t\t\ttimestamp TIMESTAMP DEFAULT (DATETIME('now','subsec')),\n\t\t\t\t\tgroupKey TEXT,\n\t\t\t\t\ttarget TEXT,\n\t\t\t\t\tmetadata TEXT,\n\t\t\t\t\tevent INTEGER NOT NULL\n\t\t\t\t);\n\t\t\t\tCREATE TABLE IF NOT EXISTS streaming_step_chunks (\n\t\t\t\t\tcache_key TEXT NOT NULL,\n\t\t\t\t\tattempt INTEGER NOT NULL,\n\t\t\t\t\tchunk_index INTEGER NOT NULL,\n\t\t\t\t\tchunk BLOB NOT NULL,\n\t\t\t\t\tPRIMARY KEY (cache_key, attempt, chunk_index)\n\t\t\t\t) WITHOUT ROWID\n\t\t\t\t`);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.timeoutHandler = new GracePeriodSemaphore(\n\t\t\tstartGracePeriod,\n\t\t\tENGINE_TIMEOUT\n\t\t);\n\t}\n\n\twriteLog(\n\t\tevent: InstanceEvent,\n\t\tgroup: string | null,\n\t\ttarget: string | null = null,\n\t\tmetadata: Record<string, unknown>\n\t) {\n\t\tthis.ctx.storage.sql.exec(\n\t\t\t\"INSERT INTO states (event, groupKey, target, metadata) VALUES (?, ?, ?, ?)\",\n\t\t\tevent,\n\t\t\tgroup,\n\t\t\ttarget,\n\t\t\tJSON.stringify(metadata, binaryReplacer)\n\t\t);\n\n\t\t// Wake any waiters if this is a terminal step event\n\t\tif (group) {\n\t\t\tthis.handleStepResultWaiter(group, event, metadata);\n\t\t}\n\t}\n\n\treadEligibleRollbackStepsDesc(\n\t\tlimit?: number\n\t): Array<{ cacheKey: string; target: string }> {\n\t\tconst rollbackTerminalGroups = new Set<string>();\n\t\tconst rollbackEligibleGroups = new Set<string>();\n\t\tconst stepStartsDesc: Array<{ groupKey: string; target: string | null }> =\n\t\t\t[];\n\t\tconst rows = [\n\t\t\t...this.ctx.storage.sql.exec<{\n\t\t\t\tevent: InstanceEvent;\n\t\t\t\tgroupKey: string;\n\t\t\t\ttarget: string | null;\n\t\t\t\tmetadata: string;\n\t\t\t}>(\n\t\t\t\t\"SELECT event, groupKey, target, metadata FROM states WHERE groupKey IS NOT NULL ORDER BY id DESC\"\n\t\t\t),\n\t\t];\n\n\t\tfor (const row of rows) {\n\t\t\tif (row.event === InstanceEvent.STEP_START) {\n\t\t\t\tstepStartsDesc.push({ groupKey: row.groupKey, target: row.target });\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\trow.event === InstanceEvent.ROLLBACK_STEP_SUCCESS ||\n\t\t\t\trow.event === InstanceEvent.ROLLBACK_STEP_FAILURE\n\t\t\t) {\n\t\t\t\trollbackTerminalGroups.add(\n\t\t\t\t\trow.groupKey.startsWith(ROLLBACK_CACHE_KEY_PREFIX)\n\t\t\t\t\t\t? row.groupKey.slice(ROLLBACK_CACHE_KEY_PREFIX.length)\n\t\t\t\t\t\t: row.groupKey\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\trow.event !== InstanceEvent.STEP_START &&\n\t\t\t\trow.event !== InstanceEvent.STEP_SUCCESS &&\n\t\t\t\trow.event !== InstanceEvent.STEP_FAILURE\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\t(JSON.parse(row.metadata) as { hasRollback?: boolean })\n\t\t\t\t\t\t.hasRollback === true\n\t\t\t\t) {\n\t\t\t\t\trollbackEligibleGroups.add(row.groupKey);\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Ignore malformed metadata in local persisted logs.\n\t\t\t}\n\t\t}\n\n\t\tconst eligible: Array<{ cacheKey: string; target: string }> = [];\n\t\tfor (const { groupKey, target } of stepStartsDesc) {\n\t\t\tif (\n\t\t\t\trollbackEligibleGroups.has(groupKey) &&\n\t\t\t\t!rollbackTerminalGroups.has(groupKey)\n\t\t\t) {\n\t\t\t\teligible.push({ cacheKey: groupKey, target: target ?? groupKey });\n\t\t\t\tif (limit !== undefined && eligible.length >= limit) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn eligible;\n\t}\n\n\tprivate getEligibleRollbackSteps(limit?: number): string[] {\n\t\treturn this.readEligibleRollbackStepsDesc(limit).map(\n\t\t\t({ cacheKey }) => cacheKey\n\t\t);\n\t}\n\n\tregisterRollbackFn(registration: RollbackRegistration): void {\n\t\tif (\n\t\t\tthis.rollbackPhase === \"replay\" &&\n\t\t\tthis.rollbackEligibleCacheKeys !== undefined &&\n\t\t\t!this.rollbackEligibleCacheKeys.has(registration.cacheKey)\n\t\t) {\n\t\t\tdisposeRollbackStub(registration.fn);\n\t\t\treturn;\n\t\t}\n\n\t\tregisterRollbackFn(this.rollbackRegistry, registration);\n\t}\n\n\tsetRollbackPhase(phase: RollbackPhase | undefined): void {\n\t\tthis.rollbackPhase = phase;\n\t}\n\n\t// Lives here for access to the protected DurableObject `ctx`.\n\tcreateRollbackContext(rollbackStep?: { cacheKey: string }): Context {\n\t\treturn new Context(this, this.ctx, rollbackStep);\n\t}\n\n\treadLogsFromStep(_cacheKey: string): RawInstanceLog[] {\n\t\treturn [];\n\t}\n\n\treadLogs(): EngineLogs {\n\t\tconst logs = [\n\t\t\t...this.ctx.storage.sql.exec<{\n\t\t\t\tevent: InstanceEvent;\n\t\t\t\tgroupKey: string | null;\n\t\t\t\ttarget: string | null;\n\t\t\t\tmetadata: string;\n\t\t\t}>(\"SELECT event, groupKey, target, metadata FROM states\"),\n\t\t];\n\n\t\treturn {\n\t\t\tlogs: logs.map((log) => {\n\t\t\t\tconst metadata = JSON.parse(log.metadata);\n\n\t\t\t\tif (!isStepSuccessEvent(log.event) || !metadata.streamOutput) {\n\t\t\t\t\treturn { ...log, metadata, group: log.groupKey };\n\t\t\t\t}\n\n\t\t\t\tconst { cacheKey, meta } = metadata.streamOutput as {\n\t\t\t\t\tcacheKey: string;\n\t\t\t\t\tmeta: StreamOutputMeta;\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst preview = getStoredStreamOutputPreview({\n\t\t\t\t\t\tstorage: this.ctx.storage,\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tmaxChars: 1024,\n\t\t\t\t\t});\n\t\t\t\t\tmetadata.result =\n\t\t\t\t\t\tpreview.type === \"text\"\n\t\t\t\t\t\t\t? preview.output\n\t\t\t\t\t\t\t: `[ReadableStream (binary): ${meta.totalBytes} bytes]`;\n\t\t\t\t} catch {\n\t\t\t\t\tmetadata.result = `[ReadableStream: ${meta.totalBytes} bytes]`;\n\t\t\t\t}\n\t\t\t\tdelete metadata.streamOutput;\n\n\t\t\t\treturn { ...log, metadata, group: log.groupKey };\n\t\t\t}),\n\t\t};\n\t}\n\n\t/**\n\t * Returns detailed logs including timestamps, ordered by ID.\n\t * Used by the local explorer to reconstruct step-level detail.\n\t */\n\treadDetailedLogs(): Array<{\n\t\tid: number;\n\t\ttimestamp: string;\n\t\tevent: number;\n\t\tgroup: string | null;\n\t\ttarget: string | null;\n\t\tmetadata: Record<string, unknown>;\n\t}> {\n\t\tconst rows = [\n\t\t\t...this.ctx.storage.sql.exec<{\n\t\t\t\tid: number;\n\t\t\t\ttimestamp: string;\n\t\t\t\tevent: number;\n\t\t\t\tgroupKey: string | null;\n\t\t\t\ttarget: string | null;\n\t\t\t\tmetadata: string;\n\t\t\t}>(\n\t\t\t\t\"SELECT id, timestamp, event, groupKey, target, metadata FROM states ORDER BY id ASC\"\n\t\t\t),\n\t\t];\n\n\t\treturn rows.map((row) => {\n\t\t\tconst metadata = JSON.parse(row.metadata) as Record<string, unknown>;\n\n\t\t\tif (!isStepSuccessEvent(row.event) || !metadata.streamOutput) {\n\t\t\t\treturn {\n\t\t\t\t\tid: row.id,\n\t\t\t\t\ttimestamp: String(row.timestamp).replace(\" \", \"T\") + \"Z\",\n\t\t\t\t\tevent: row.event,\n\t\t\t\t\tgroup: row.groupKey,\n\t\t\t\t\ttarget: row.target,\n\t\t\t\t\tmetadata,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { cacheKey, meta } = metadata.streamOutput as {\n\t\t\t\tcacheKey: string;\n\t\t\t\tmeta: StreamOutputMeta;\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst preview = getStoredStreamOutputPreview({\n\t\t\t\t\tstorage: this.ctx.storage,\n\t\t\t\t\tcacheKey,\n\t\t\t\t\tmeta,\n\t\t\t\t\tmaxChars: 1024,\n\t\t\t\t});\n\t\t\t\tmetadata.result =\n\t\t\t\t\tpreview.type === \"text\"\n\t\t\t\t\t\t? preview.output\n\t\t\t\t\t\t: `[ReadableStream (binary): ${meta.totalBytes} bytes]`;\n\t\t\t} catch {\n\t\t\t\tmetadata.result = `[ReadableStream: ${meta.totalBytes} bytes]`;\n\t\t\t}\n\t\t\tdelete metadata.streamOutput;\n\n\t\t\treturn {\n\t\t\t\tid: row.id,\n\t\t\t\ttimestamp: String(row.timestamp).replace(\" \", \"T\") + \"Z\",\n\t\t\t\tevent: row.event,\n\t\t\t\tgroup: row.groupKey,\n\t\t\t\ttarget: row.target,\n\t\t\t\tmetadata,\n\t\t\t};\n\t\t});\n\t}\n\n\treadLogsFromEvent(eventType: InstanceEvent): EngineLogs {\n\t\tconst logs = [\n\t\t\t...this.ctx.storage.sql.exec<{\n\t\t\t\tevent: InstanceEvent;\n\t\t\t\tgroupKey: string | null;\n\t\t\t\ttarget: string | null;\n\t\t\t\tmetadata: string;\n\t\t\t}>(\n\t\t\t\t\"SELECT event, groupKey, target, metadata FROM states WHERE event = ?\",\n\t\t\t\teventType\n\t\t\t),\n\t\t];\n\n\t\treturn {\n\t\t\tlogs: logs.map((log) => ({\n\t\t\t\t...log,\n\t\t\t\tmetadata: JSON.parse(log.metadata),\n\t\t\t\tgroup: log.groupKey,\n\t\t\t})),\n\t\t};\n\t}\n\n\tasync getStatus(): Promise<InstanceStatus> {\n\t\tif (this.accountId === undefined) {\n\t\t\t// Engine could have restarted, so we try to restore from its state\n\t\t\tconst metadata =\n\t\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\t\t\tif (metadata === undefined) {\n\t\t\t\t// metadata was never set, so we assume the engine was never started\n\t\t\t\tthrow new Error(\"Engine was never started\");\n\t\t\t}\n\n\t\t\tthis.accountId = metadata.accountId;\n\t\t\tthis.instanceId = metadata.instance.id;\n\t\t\tthis.workflowName = metadata.workflow.name;\n\t\t}\n\n\t\tconst res = await this.ctx.storage.get<InstanceStatus>(ENGINE_STATUS_KEY);\n\n\t\t// NOTE(lduarte): if status don't exist, means that engine is running for the first time, so we assume queued\n\t\tif (res === undefined) {\n\t\t\treturn InstanceStatus.Queued;\n\t\t}\n\t\treturn res;\n\t}\n\n\t// Returns instance metadata for the local explorer.\n\tasync getInstanceMetadata(): Promise<{\n\t\tinstanceId: string;\n\t\tstatus: InstanceStatus;\n\t\tcreatedOn: string;\n\t}> {\n\t\tconst status = await this.getStatus();\n\t\t// Read the full metadata to get the created_on timestamp\n\t\tconst metadata =\n\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\t\tlet createdOn = metadata?.instance?.created_on ?? \"\";\n\n\t\t// Backfill for instances created before created_on was populated:\n\t\t// try the earliest log entry, then the earliest priority queue entry.\n\t\tif (!createdOn) {\n\t\t\tconst queries = [\n\t\t\t\t\"SELECT timestamp AS ts FROM states ORDER BY id ASC LIMIT 1\",\n\t\t\t\t\"SELECT created_on AS ts FROM priority_queue ORDER BY id ASC LIMIT 1\",\n\t\t\t];\n\t\t\tfor (const query of queries) {\n\t\t\t\tif (createdOn) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tfor (const row of this.ctx.storage.sql.exec(query)) {\n\t\t\t\t\t\tif (row.ts) {\n\t\t\t\t\t\t\t// SQLite DATETIME('now','subsec') returns \"YYYY-MM-DD HH:MM:SS.sss\"\n\t\t\t\t\t\t\t// which is not valid ISO 8601 (needs T separator and Z timezone).\n\t\t\t\t\t\t\tconst raw = String(row.ts).replace(\" \", \"T\") + \"Z\";\n\t\t\t\t\t\t\tcreatedOn = raw;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Table may not exist\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tinstanceId: this.instanceId ?? \"\",\n\t\t\tstatus,\n\t\t\tcreatedOn,\n\t\t};\n\t}\n\n\tasync setStatus(\n\t\taccountId: number,\n\t\tinstanceId: string,\n\t\tstatus: InstanceStatus\n\t): Promise<void> {\n\t\tawait this.ctx.storage.put(ENGINE_STATUS_KEY, status);\n\n\t\t// check if anyone is waiting for this status\n\t\tthis.handleStatusWaiter(status);\n\t}\n\n\tprivate statusWaiters: Map<\n\t\tInstanceStatus,\n\t\t{ resolve: () => void; reject: (e: unknown) => void }\n\t> = new Map();\n\tasync waitForStatus(status: string): Promise<void> {\n\t\tconst targetStatus = toInstanceStatus(status);\n\t\tconst currentStatus =\n\t\t\tawait this.ctx.storage.get<InstanceStatus>(ENGINE_STATUS_KEY);\n\n\t\t// if the workflow has already reached the desired state, resolve immediately\n\t\tif (currentStatus === targetStatus) {\n\t\t\treturn;\n\t\t}\n\n\t\t// if it hasn't reached the desired state, create a new promise and add its resolver to the waiters map\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.statusWaiters.set(targetStatus, { resolve, reject });\n\t\t\t// immediately reconcile against current status in case it's already finite\n\t\t\tthis.handleStatusWaiter(currentStatus as InstanceStatus);\n\t\t});\n\t}\n\n\thandleStatusWaiter(status: InstanceStatus): void {\n\t\tconst waiter = this.statusWaiters.get(status);\n\n\t\t// resolve if it reached the desired status\n\t\tif (waiter) {\n\t\t\twaiter.resolve();\n\t\t\tthis.statusWaiters.delete(status);\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (status) {\n\t\t\tcase InstanceStatus.Errored: {\n\t\t\t\t// if it reaches final status \"errored\", then it can't be waiting for it to complete or terminate\n\t\t\t\tconst unreachableStatuses = [\n\t\t\t\t\tInstanceStatus.Complete,\n\t\t\t\t\tInstanceStatus.Terminated,\n\t\t\t\t];\n\n\t\t\t\tthis.rejectUnreachableStatus(status, unreachableStatuses);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase InstanceStatus.Terminated: {\n\t\t\t\t// if it reaches final status \"terminated\", then it can't be waiting for it to complete or error\n\t\t\t\tconst unreachableStatuses = [\n\t\t\t\t\tInstanceStatus.Complete,\n\t\t\t\t\tInstanceStatus.Errored,\n\t\t\t\t];\n\n\t\t\t\tthis.rejectUnreachableStatus(status, unreachableStatuses);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase InstanceStatus.Complete: {\n\t\t\t\t// if it reaches final status \"complete\", then it can't be waiting for it to terminate or error\n\t\t\t\tconst unreachableStatuses = [\n\t\t\t\t\tInstanceStatus.Terminated,\n\t\t\t\t\tInstanceStatus.Errored,\n\t\t\t\t];\n\n\t\t\t\tthis.rejectUnreachableStatus(status, unreachableStatuses);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\trejectUnreachableStatus(\n\t\treachedStatus: number,\n\t\tunreachableStatuses: number[]\n\t): void {\n\t\tif (unreachableStatuses) {\n\t\t\tfor (const unreachableStatus of unreachableStatuses) {\n\t\t\t\tconst waiter = this.statusWaiters.get(unreachableStatus);\n\t\t\t\tif (waiter) {\n\t\t\t\t\twaiter.reject(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`[WorkflowIntrospector] The Workflow instance ${\n\t\t\t\t\t\t\t\tthis.instanceId\n\t\t\t\t\t\t\t} has reached status '${instanceStatusName(\n\t\t\t\t\t\t\t\treachedStatus\n\t\t\t\t\t\t\t)}'. This is a finite status that prevents it from ever reaching the expected status of '${instanceStatusName(\n\t\t\t\t\t\t\t\tunreachableStatus\n\t\t\t\t\t\t\t)}'.`\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\tthis.statusWaiters.delete(unreachableStatus);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Create a replay ReadableStream from stored stream output metadata.\n\t * Returns undefined if the stream data is not in a valid/complete state.\n\t */\n\tprivate replayStreamFromMeta(streamOutput: {\n\t\tcacheKey: string;\n\t\tmeta: StreamOutputMeta;\n\t}): ReadableStream<Uint8Array> | undefined {\n\t\tif (streamOutput.meta.state !== StreamOutputState.Complete) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst integrityError = getInvalidStoredStreamOutputError(\n\t\t\tthis.ctx.storage,\n\t\t\tstreamOutput.cacheKey,\n\t\t\tstreamOutput.meta\n\t\t);\n\t\tif (integrityError !== undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn createReplayReadableStream({\n\t\t\tstorage: this.ctx.storage,\n\t\t\tcacheKey: streamOutput.cacheKey,\n\t\t\tmeta: streamOutput.meta,\n\t\t});\n\t}\n\n\tprivate stepResultWaiters: Map<\n\t\tstring,\n\t\t{ resolve: (v: unknown) => void; reject: (e: unknown) => void }\n\t> = new Map();\n\tasync waitForStepResult(\n\t\tstepName: string,\n\t\tstepCount?: number\n\t): Promise<unknown> {\n\t\tconst hash = await computeHash(stepName);\n\t\tconst count = stepCount ?? 1;\n\t\tconst cacheKey = `${hash}-${count}`;\n\n\t\t// read latest log from step\n\t\tconst rows = [\n\t\t\t...this.ctx.storage.sql.exec<{\n\t\t\t\tevent: InstanceEvent;\n\t\t\t\tmetadata: string;\n\t\t\t}>(\n\t\t\t\t\"SELECT event, metadata FROM states WHERE groupKey = ? ORDER BY id DESC LIMIT 1\",\n\t\t\t\tcacheKey\n\t\t\t),\n\t\t];\n\n\t\tif (rows.length > 0) {\n\t\t\tconst { event, metadata } = rows[0];\n\t\t\tconst parsed = JSON.parse(metadata);\n\t\t\tif (event === InstanceEvent.STEP_SUCCESS) {\n\t\t\t\tif (parsed?.streamOutput) {\n\t\t\t\t\treturn this.replayStreamFromMeta(parsed.streamOutput);\n\t\t\t\t}\n\t\t\t\treturn parsed?.result;\n\t\t\t}\n\t\t\tif (event === InstanceEvent.STEP_FAILURE) {\n\t\t\t\tthrow parsed?.error ?? parsed;\n\t\t\t}\n\t\t}\n\n\t\t// if it hasn't completed the step, create a new promise to later resolve/reject\n\t\treturn new Promise<unknown>((resolve, reject) => {\n\t\t\tthis.stepResultWaiters.set(cacheKey, { resolve, reject });\n\t\t});\n\t}\n\n\thandleStepResultWaiter(\n\t\tgroup: string,\n\t\tevent: InstanceEvent,\n\t\tmetadata: Record<string, unknown>\n\t) {\n\t\tconst waiter = this.stepResultWaiters.get(group);\n\t\tif (!waiter) {\n\t\t\treturn;\n\t\t}\n\t\tif (event === InstanceEvent.STEP_SUCCESS) {\n\t\t\tif (metadata?.streamOutput) {\n\t\t\t\twaiter.resolve(\n\t\t\t\t\tthis.replayStreamFromMeta(\n\t\t\t\t\t\tmetadata.streamOutput as {\n\t\t\t\t\t\t\tcacheKey: string;\n\t\t\t\t\t\t\tmeta: StreamOutputMeta;\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twaiter.resolve(metadata?.result);\n\t\t\t}\n\t\t\tthis.stepResultWaiters.delete(group);\n\t\t} else if (event === InstanceEvent.STEP_FAILURE) {\n\t\t\tconst error = metadata?.error ?? new Error(\"Step failed\");\n\t\t\twaiter.reject(error);\n\t\t\tthis.stepResultWaiters.delete(group);\n\t\t}\n\t}\n\n\tasync getOutputOrError(isOutput: boolean): Promise<unknown> {\n\t\tconst status = await this.getStatus();\n\n\t\tif (isOutput) {\n\t\t\tif (status !== InstanceStatus.Complete) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cannot retrieve output: Workflow instance is in status \"${instanceStatusName(\n\t\t\t\t\t\tstatus\n\t\t\t\t\t)}\" but must be \"complete\" to have an output available`\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst logs = this.readLogsFromEvent(InstanceEvent.WORKFLOW_SUCCESS).logs;\n\t\t\treturn logs.at(0)?.metadata.result;\n\t\t} else {\n\t\t\tif (status !== InstanceStatus.Errored) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cannot retrieve error: Workflow instance is in status \"${instanceStatusName(\n\t\t\t\t\t\tstatus\n\t\t\t\t\t)}\" but must be \"errored\" to have error information available`\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst logs = this.readLogsFromEvent(InstanceEvent.WORKFLOW_FAILURE).logs;\n\t\t\tconst log = logs.at(0);\n\t\t\tif (!log?.metadata.error) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Cannot retrieve error: No workflow instance failure log found\"\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn log.metadata.error;\n\t\t}\n\t}\n\n\tasync abort(reason: string) {\n\t\tawait this.ctx.storage.sync();\n\n\t\t// Clean up pending JS operations\n\t\tthis.timeoutHandler.dispose();\n\t\tthis.engineAbortController.abort(new Error(reason));\n\n\t\tthis.ctx.abort(reason);\n\t}\n\n\t// Called by the dispose function when introspecting the instance in tests\n\t// TODO: Ideally this abort should be done by `abortAllDurableObjects` from worked called by vitest-pool-workers\n\tasync unsafeAbort(reason?: string) {\n\t\tawait this.ctx.storage.sync();\n\t\tawait this.ctx.storage.deleteAll();\n\n\t\tthis.ctx.abort(reason);\n\t}\n\n\tasync storeEventMap() {\n\t\tawait this.ctx.blockConcurrencyWhile(async () => {\n\t\t\tconst entries: Record<string, Event> = {};\n\t\t\tfor (const [type, events] of this.eventMap.entries()) {\n\t\t\t\tfor (let i = 0; i < events.length; i++) {\n\t\t\t\t\tentries[`${EVENT_MAP_PREFIX}\\n${type}\\n${i}`] = events[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (Object.keys(entries).length > 0) {\n\t\t\t\tawait this.ctx.storage.put(entries);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync restoreEventMap() {\n\t\tawait this.ctx.blockConcurrencyWhile(async () => {\n\t\t\t// FIXME(lduarte): can this OoM the DO in the production?\n\t\t\tconst entries = await this.ctx.storage.list<Event>({\n\t\t\t\tprefix: EVENT_MAP_PREFIX,\n\t\t\t});\n\t\t\tfor (const [key, value] of entries) {\n\t\t\t\tconst [_, eventType, _idx] = key.split(\"\\n\");\n\t\t\t\t// NOTE(lduarte): safe to do because list returns keys in ascending order, so\n\t\t\t\t// indexes will be correctly ordered\n\t\t\t\tconst eventList = this.eventMap.get(eventType) ?? [];\n\t\t\t\teventList.push(value);\n\t\t\t\tthis.eventMap.set(eventType, eventList);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync receiveEvent(event: {\n\t\ttimestamp: Date;\n\t\tpayload: unknown;\n\t\ttype: string;\n\t}) {\n\t\t// There are four possible cases here:\n\t\t// - There is a callback waiting, send it\n\t\t// - There is no callback waiting but engine is alive, store it\n\t\t// - Engine is not awake and is in Waiting status, store it and start it up\n\t\t// - Engine is not awake and is in Paused (or another terminal) status, store it\n\t\t// - Engine is not awake and is Errored or Terminated, this should not get called\n\t\tlet eventTypeQueue = this.eventMap.get(event.type) ?? [];\n\t\teventTypeQueue.push(event as Event);\n\n\t\tthis.eventMap.set(event.type, eventTypeQueue);\n\t\tawait this.storeEventMap();\n\n\t\t// if the engine is running\n\t\tif (this.isRunning) {\n\t\t\t// Attempt to get the callback and run it\n\t\t\tconst callbacks = this.waiters.get(event.type);\n\t\t\tif (callbacks) {\n\t\t\t\tconst entry = callbacks[0];\n\t\t\t\tif (entry) {\n\t\t\t\t\tconst [, resolve] = entry;\n\t\t\t\t\tresolve(event);\n\t\t\t\t\t// Remove it from the list of callbacks\n\t\t\t\t\tcallbacks.shift();\n\t\t\t\t\tthis.waiters.set(event.type, callbacks);\n\n\t\t\t\t\teventTypeQueue = this.eventMap.get(event.type) ?? [];\n\t\t\t\t\teventTypeQueue.shift();\n\t\t\t\t\tthis.eventMap.set(event.type, eventTypeQueue);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst mockEvent = await this.ctx.storage.get(\n\t\t\t\t`${MODIFIER_KEYS.MOCK_EVENT}${event.type}`\n\t\t\t);\n\t\t\tif (mockEvent) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst metadata =\n\t\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\n\t\t\tif (metadata === undefined) {\n\t\t\t\tthrow new Error(\"Engine was never started\");\n\t\t\t}\n\n\t\t\tvoid this.init(\n\t\t\t\tmetadata.accountId,\n\t\t\t\tmetadata.workflow,\n\t\t\t\tmetadata.version,\n\t\t\t\tmetadata.instance,\n\t\t\t\tmetadata.event\n\t\t\t);\n\t\t}\n\t}\n\n\tgetInstanceModifier(): WorkflowInstanceModifier {\n\t\treturn new WorkflowInstanceModifier(this, this.ctx);\n\t}\n\n\tasync changeInstanceStatus(\n\t\tnewStatus: \"resume\" | \"pause\" | \"terminate\" | \"restart\",\n\t\tfrom?: RestartFromStep,\n\t\tterminateOptions?: WorkflowInstanceTerminateOptions\n\t): Promise<void> {\n\t\tconst metadata =\n\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\n\t\tif (metadata === undefined) {\n\t\t\tthrow createWorkflowError(\n\t\t\t\t\"Instance does not exist\",\n\t\t\t\t\"instance.not_found\"\n\t\t\t);\n\t\t}\n\n\t\tswitch (newStatus) {\n\t\t\tcase \"pause\":\n\t\t\t\tawait this.userTriggeredPause();\n\t\t\t\tbreak;\n\t\t\tcase \"resume\": {\n\t\t\t\tconst currentStatus = await this.getStatus();\n\t\t\t\tif (currentStatus === InstanceStatus.WaitingForPause) {\n\t\t\t\t\t// Engine is still running \u2014 cancel the pending pause\n\t\t\t\t\tthis.timeoutHandler.cancelWaitingPromisesByType(\"pause\");\n\t\t\t\t\tawait this.setStatus(\n\t\t\t\t\t\tmetadata.accountId,\n\t\t\t\t\t\tmetadata.instance.id,\n\t\t\t\t\t\tInstanceStatus.Running\n\t\t\t\t\t);\n\t\t\t\t} else if (currentStatus === InstanceStatus.Paused) {\n\t\t\t\t\tawait this.attemptResume();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"terminate\": {\n\t\t\t\tconst currentStatus = await this.getStatus();\n\t\t\t\tif (\n\t\t\t\t\t[\n\t\t\t\t\t\tInstanceStatus.Terminated,\n\t\t\t\t\t\tInstanceStatus.Complete,\n\t\t\t\t\t\tInstanceStatus.Errored,\n\t\t\t\t\t].includes(currentStatus)\n\t\t\t\t) {\n\t\t\t\t\tthrow createWorkflowError(\n\t\t\t\t\t\t\"Cannot terminate instance since its on a finite state\",\n\t\t\t\t\t\t\"instance.cannot_terminate\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tawait this.userTriggeredTerminate(terminateOptions);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"restart\":\n\t\t\t\tif (from) {\n\t\t\t\t\tif (!resolveGroupKeysToWipe(this.ctx.storage.sql, from)) {\n\t\t\t\t\t\tthrow stepNotFoundError(from.name);\n\t\t\t\t\t}\n\t\t\t\t\tawait storeRestartFromStep(this.ctx.storage, from);\n\t\t\t\t}\n\t\t\t\tawait this.userTriggeredRestart();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate async replayRollbackRegistry(\n\t\tmetadata: InstanceMetadata\n\t): Promise<void> {\n\t\tif (this.rollbackRegistry.size > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst eligible = this.getEligibleRollbackSteps();\n\t\tif (eligible.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.rollbackEligibleCacheKeys = new Set(eligible);\n\t\tconst stubStep = this.createRollbackContext();\n\t\tthis.setRollbackPhase(\"replay\");\n\t\ttry {\n\t\t\tawait this.env.USER_WORKFLOW.run(\n\t\t\t\tmetadata.event,\n\t\t\t\tstubStep as unknown as WorkflowStep\n\t\t\t);\n\t\t} catch (replayErr) {\n\t\t\t// Match the production engine: replay may stop on normal workflow control\n\t\t\t// flow; rollback execution uses whatever handlers replay registered.\n\t\t\tconsole.debug(\"Rollback replay stopped:\", replayErr);\n\t\t} finally {\n\t\t\tthis.setRollbackPhase(undefined);\n\t\t\tthis.rollbackEligibleCacheKeys = undefined;\n\t\t}\n\t}\n\n\tasync userTriggeredTerminate(options?: WorkflowInstanceTerminateOptions) {\n\t\tconst metadata =\n\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\n\t\tif (metadata === undefined) {\n\t\t\tthrow createWorkflowError(\n\t\t\t\t\"Instance does not exist\",\n\t\t\t\t\"instance.not_found\"\n\t\t\t);\n\t\t}\n\n\t\tif (options?.rollback === true) {\n\t\t\tthis.priorityQueue ??= new TimePriorityQueue(this.ctx, metadata);\n\t\t\tawait this.replayRollbackRegistry(metadata);\n\n\t\t\tconst error = new Error(\"Instance terminated during rollback\");\n\t\t\terror.name = \"Terminated\";\n\t\t\tthis.setRollbackPhase(\"rollback\");\n\t\t\ttry {\n\t\t\t\tawait executeRollbacks(this, error);\n\t\t\t} catch (rollbackErr) {\n\t\t\t\tconsole.error(\"Rollback execution failed:\", rollbackErr);\n\t\t\t} finally {\n\t\t\t\tthis.setRollbackPhase(undefined);\n\t\t\t}\n\t\t}\n\n\t\tthis.writeLog(InstanceEvent.WORKFLOW_TERMINATED, null, null, {\n\t\t\ttrigger: {\n\t\t\t\tsource: InstanceTrigger.API,\n\t\t\t},\n\t\t});\n\n\t\tawait this.setStatus(\n\t\t\tmetadata.accountId,\n\t\t\tmetadata.instance.id,\n\t\t\tInstanceStatus.Terminated\n\t\t);\n\n\t\tawait this.abort(ABORT_REASONS.USER_TERMINATE);\n\t}\n\n\tasync userTriggeredPause() {\n\t\tconst status = await this.getStatus();\n\n\t\tif (\n\t\t\tstatus === InstanceStatus.Paused ||\n\t\t\tstatus === InstanceStatus.WaitingForPause\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tstatus !== InstanceStatus.Running &&\n\t\t\tstatus !== InstanceStatus.Waiting\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst metadata =\n\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\n\t\tif (metadata === undefined) {\n\t\t\tthrow createWorkflowError(\n\t\t\t\t\"Instance does not exist\",\n\t\t\t\t\"instance.not_found\"\n\t\t\t);\n\t\t}\n\n\t\tawait this.setStatus(\n\t\t\tmetadata.accountId,\n\t\t\tmetadata.instance.id,\n\t\t\tInstanceStatus.WaitingForPause\n\t\t);\n\n\t\tvoid this.timeoutHandler\n\t\t\t.waitUntilNothingIsRunning(\"pause\", async () => {\n\t\t\t\tawait this.ctx.storage.put(PAUSE_DATETIME, new Date());\n\t\t\t\tawait this.setStatus(\n\t\t\t\t\tmetadata.accountId,\n\t\t\t\t\tmetadata.instance.id,\n\t\t\t\t\tInstanceStatus.Paused\n\t\t\t\t);\n\t\t\t\t// Signal the pause controller to interrupt any active\n\t\t\t\t// scheduler.wait (sleep/waitForEvent). The workflow will\n\t\t\t\t// throw a pause error at the next step boundary via\n\t\t\t\t// #checkForPendingPause()\n\t\t\t\tthis.pauseController.abort(ABORT_REASONS.USER_PAUSE);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n\n\tasync userTriggeredRestart() {\n\t\t// cleanup is done in attemptRestart() on the fresh DO instance\n\n\t\tawait this.abort(ABORT_REASONS.USER_RESTART);\n\t}\n\n\tasync attemptRestart() {\n\t\tconst restartFromStep = await readAndClearRestartFromStep(this.ctx.storage);\n\n\t\tlet groupKeysToWipe: Set<string> | null = null;\n\t\tif (restartFromStep) {\n\t\t\tgroupKeysToWipe = resolveGroupKeysToWipe(\n\t\t\t\tthis.ctx.storage.sql,\n\t\t\t\trestartFromStep\n\t\t\t);\n\t\t\tif (!groupKeysToWipe) {\n\t\t\t\tthrow stepNotFoundError(restartFromStep.name);\n\t\t\t}\n\t\t}\n\n\t\tawait wipeRestartState(\n\t\t\tthis.ctx.storage,\n\t\t\tENGINE_STATUS_KEY,\n\t\t\tPAUSE_DATETIME,\n\t\t\tgroupKeysToWipe\n\t\t);\n\n\t\tconst metadata =\n\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\n\t\tif (metadata === undefined) {\n\t\t\tthrow createWorkflowError(\n\t\t\t\t\"Instance does not exist\",\n\t\t\t\t\"instance.not_found\"\n\t\t\t);\n\t\t}\n\n\t\tconst { accountId, workflow, version, instance, event } = metadata;\n\n\t\tif (!groupKeysToWipe) {\n\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_QUEUED, null, null, {\n\t\t\t\tparams: event.payload,\n\t\t\t\tversionId: version.id,\n\t\t\t\ttrigger: {\n\t\t\t\t\tsource: InstanceTrigger.API,\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_START, null, null, {});\n\t\t}\n\n\t\tvoid this.init(accountId, workflow, version, instance, event);\n\t}\n\n\tasync attemptResume() {\n\t\tconst metadata =\n\t\t\tawait this.ctx.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\n\t\tif (metadata === undefined) {\n\t\t\tthrow createWorkflowError(\n\t\t\t\t\"Instance does not exist\",\n\t\t\t\t\"instance.not_found\"\n\t\t\t);\n\t\t}\n\n\t\tconst status =\n\t\t\tawait this.ctx.storage.get<InstanceStatus>(ENGINE_STATUS_KEY);\n\t\tif (status !== InstanceStatus.Paused) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Offset priority queue timers by the pause duration so that\n\t\t// sleeps/retries resume from where they left off\n\t\tconst pausedDate = await this.ctx.storage.get<Date>(PAUSE_DATETIME);\n\t\tif (pausedDate !== undefined) {\n\t\t\tconst offset = Date.now() - new Date(pausedDate).valueOf();\n\t\t\tif (this.priorityQueue) {\n\t\t\t\tthis.priorityQueue.offsetAll(offset);\n\t\t\t} else {\n\t\t\t\tconst pq = new TimePriorityQueue(this.ctx, metadata);\n\t\t\t\tpq.offsetAll(offset);\n\t\t\t}\n\t\t}\n\t\tawait this.ctx.storage.delete(PAUSE_DATETIME);\n\n\t\tconst { accountId, workflow, version, instance, event } = metadata;\n\n\t\tawait this.ctx.storage.put(ENGINE_STATUS_KEY, InstanceStatus.Queued);\n\n\t\t// Reset pause state for the new run. The DO stays alive across\n\t\t// pause/resume (no this.ctx.abort()), so we need to clear stale\n\t\t// in-memory state from the previous run to avoid duplicates.\n\t\tthis.pauseController = new AbortController();\n\t\tthis.waiters = new Map();\n\t\tthis.eventMap = new Map();\n\t\tclearRollbackRegistry(this.rollbackRegistry);\n\n\t\tvoid this.init(accountId, workflow, version, instance, event);\n\t}\n\n\tasync init(\n\t\taccountId: number,\n\t\tworkflow: DatabaseWorkflow,\n\t\tversion: DatabaseVersion,\n\t\tinstance: DatabaseInstance,\n\t\tevent: WorkflowEvent<unknown>\n\t) {\n\t\tif (this.priorityQueue === undefined) {\n\t\t\tthis.priorityQueue = new TimePriorityQueue(\n\t\t\t\tthis.ctx,\n\t\t\t\t// this.env,\n\t\t\t\t{\n\t\t\t\t\taccountId,\n\t\t\t\t\tworkflow,\n\t\t\t\t\tversion,\n\t\t\t\t\tinstance,\n\t\t\t\t\tevent,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (this.isRunning) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.priorityQueue.popPastEntries();\n\t\tawait this.priorityQueue.handleNextAlarm();\n\n\t\t// We are not running and are possibly starting a new lifetime\n\t\tthis.accountId = accountId;\n\t\tthis.instanceId = instance.id;\n\t\tthis.workflowName = workflow.name;\n\n\t\tconst status = await this.getStatus();\n\t\tif (\n\t\t\t[\n\t\t\t\tInstanceStatus.Errored, // TODO (WOR-85): Remove this once upgrade story is done\n\t\t\t\tInstanceStatus.Terminated,\n\t\t\t\tInstanceStatus.Complete,\n\t\t\t\tInstanceStatus.Paused,\n\t\t\t].includes(status)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the DO restarted (e.g. from alarm) while in WaitingForPause state,\n\t\t// transition to Paused and return early \u2014 same as production behaviour.\n\t\tif (status === InstanceStatus.WaitingForPause) {\n\t\t\tawait this.ctx.storage.put(PAUSE_DATETIME, new Date());\n\t\t\tawait this.setStatus(accountId, instance.id, InstanceStatus.Paused);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((await this.ctx.storage.get(INSTANCE_METADATA)) == undefined) {\n\t\t\tconst instanceMetadata: InstanceMetadata = {\n\t\t\t\taccountId,\n\t\t\t\tworkflow,\n\t\t\t\tversion,\n\t\t\t\tinstance,\n\t\t\t\tevent,\n\t\t\t};\n\t\t\tawait this.ctx.storage.put(INSTANCE_METADATA, instanceMetadata);\n\n\t\t\t// TODO (WOR-78): We currently don't have a queue mechanism\n\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_QUEUED, null, null, {\n\t\t\t\tparams: event.payload,\n\t\t\t\tversionId: version.id,\n\t\t\t\ttrigger: {\n\t\t\t\t\tsource: InstanceTrigger.API,\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_START, null, null, {});\n\t\t}\n\n\t\t// restore eventMap so that waitForEvent across lifetimes works correctly\n\t\tawait this.restoreEventMap();\n\n\t\tconst stubStep = new Context(this, this.ctx);\n\n\t\tconst workflowRunningHandler = async () => {\n\t\t\tawait this.ctx.storage.transaction(async () => {\n\t\t\t\t// manually start the grace period\n\t\t\t\t// startGracePeriod(this, this.timeoutHandler.timeoutMs);\n\t\t\t\tawait this.setStatus(accountId, instance.id, InstanceStatus.Running);\n\t\t\t});\n\t\t};\n\t\tthis.isRunning = true;\n\n\t\tvoid workflowRunningHandler();\n\t\ttry {\n\t\t\tconst target = this.env.USER_WORKFLOW;\n\t\t\tconst result = await target.run(\n\t\t\t\tevent,\n\t\t\t\tstubStep as unknown as WorkflowStep\n\t\t\t);\n\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_SUCCESS, null, null, {\n\t\t\t\tresult,\n\t\t\t});\n\t\t\t// NOTE(lduarte): we want to run this in a transaction to guarentee ordering with running setstatus call\n\t\t\t// in case that it returns immediately\n\t\t\tawait this.ctx.storage.transaction(async () => {\n\t\t\t\tawait this.setStatus(accountId, instance.id, InstanceStatus.Complete);\n\t\t\t});\n\t\t\t// Dispose dup'd stubs; otherwise they leak across DO lifetimes.\n\t\t\tclearRollbackRegistry(this.rollbackRegistry);\n\t\t\tthis.isRunning = false;\n\t\t} catch (err) {\n\t\t\tif (isAbortError(err)) {\n\t\t\t\tthis.isRunning = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Run before the terminal status so events land before WORKFLOW_FAILURE.\n\t\t\ttry {\n\t\t\t\tawait executeRollbacks(\n\t\t\t\t\tthis,\n\t\t\t\t\terr instanceof Error ? err : new Error(String(err))\n\t\t\t\t);\n\t\t\t} catch (rollbackErr) {\n\t\t\t\tconsole.error(\"Rollback execution failed:\", rollbackErr);\n\t\t\t}\n\n\t\t\tlet error;\n\t\t\tif (err instanceof Error) {\n\t\t\t\tif (\n\t\t\t\t\terr.name === \"NonRetryableError\" ||\n\t\t\t\t\terr.message.startsWith(\"NonRetryableError\")\n\t\t\t\t) {\n\t\t\t\t\tconst fatalError = shouldPreserveNonRetryableError()\n\t\t\t\t\t\t? new PreservedNonRetryableError(err)\n\t\t\t\t\t\t: new WorkflowFatalError(\n\t\t\t\t\t\t\t\t`The execution of the Workflow instance was terminated, as a step threw an NonRetryableError and it was not handled`\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_FAILURE, null, null, {\n\t\t\t\t\t\terror: fatalError,\n\t\t\t\t\t});\n\n\t\t\t\t\tawait this.setStatus(accountId, instance.id, InstanceStatus.Errored);\n\t\t\t\t\tawait this.abort(ABORT_REASONS.NON_RETRYABLE_ERROR);\n\t\t\t\t\tthis.isRunning = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\terror = {\n\t\t\t\t\tmessage: err.message,\n\t\t\t\t\tname: err.name,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\terror = {\n\t\t\t\t\tname: \"Error\",\n\t\t\t\t\tmessage: err,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.writeLog(InstanceEvent.WORKFLOW_FAILURE, null, null, {\n\t\t\t\terror,\n\t\t\t});\n\t\t\t// NOTE(lduarte): we want to run this in a transaction to guarentee ordering with running setstatus call\n\t\t\t// in case that it throws immediately\n\t\t\tawait this.ctx.storage.transaction(async () => {\n\t\t\t\tawait this.setStatus(accountId, instance.id, InstanceStatus.Errored);\n\t\t\t});\n\t\t\tthis.isRunning = false;\n\t\t}\n\n\t\treturn {\n\t\t\tid: instance.id,\n\t\t};\n\t}\n}\n", "import { RpcTarget } from \"cloudflare:workers\";\nimport { ms } from \"itty-time\";\nimport { INSTANCE_METADATA, InstanceEvent, InstanceStatus } from \"./instance\";\nimport { computeHash } from \"./lib/cache\";\nimport {\n\tDEFAULT_RETRY_DELAY_MS,\n\tDELAY_FUNCTION_TIMEOUT_MS,\n\tinvokeDelayFunction,\n\traceAgainstAbort,\n} from \"./lib/delay\";\nimport {\n\tABORT_REASONS,\n\tInvalidStepReadableStreamError,\n\tNonRetryableDelayError,\n\tOversizedStreamChunkError,\n\tPreservedNonRetryableError,\n\tshouldPreserveNonRetryableError,\n\tStreamOutputStorageLimitError,\n\tUnsupportedStreamChunkError,\n\tWorkflowFatalError,\n\tWorkflowInternalError,\n\tWorkflowTimeoutError,\n} from \"./lib/errors\";\nimport { calcRetryDuration, DelayFunctionError } from \"./lib/retries\";\nimport {\n\tparseRollbackOptions,\n\tROLLBACK_CACHE_KEY_PREFIX,\n} from \"./lib/rollback\";\nimport {\n\tcleanupPendingStreamOutput,\n\tcreateReplayReadableStream,\n\tgetInvalidStoredStreamOutputError,\n\tgetStreamOutputMetaKey,\n\tisReadableStreamLike,\n\trollbackStreamOutput,\n\tStreamOutputState,\n\twriteStreamOutput,\n} from \"./lib/streams\";\nimport {\n\tisValidStepConfig,\n\tisValidStepName,\n\tMAX_STEP_NAME_LENGTH,\n\tSENSITIVE_STEP_OUTPUT,\n} from \"./lib/validators\";\nimport { MODIFIER_KEYS } from \"./modifier\";\nimport type { Engine } from \"./engine\";\nimport type { InstanceMetadata } from \"./instance\";\nimport type { RollbackFn, WorkflowStepRollbackOptions } from \"./lib/rollback\";\nimport type { StreamOutputMeta } from \"./lib/streams\";\nimport type {\n\tWorkflowBackoff,\n\tWorkflowDelayDuration,\n\tWorkflowDelayFunction,\n\tWorkflowSleepDuration,\n\tWorkflowStepConfig,\n\tWorkflowStepEvent,\n\tWorkflowStepSensitivity,\n\tWorkflowTimeoutDuration,\n} from \"cloudflare:workers\";\n\nexport type Event = {\n\ttimestamp: Date;\n\tpayload: unknown;\n\ttype: string;\n};\n\n// Persisted in place of a dynamic delay function (functions can't be\n// serialized); the live function is re-read from the user's step config on each\n// execution.\nconst SERIALIZABLE_DELAY_MARKER = \"[dynamic]\";\ntype SerializableDelayMarker = typeof SERIALIZABLE_DELAY_MARKER;\n\nexport const REDACTED_STEP_OUTPUT = \"[REDACTED]\";\n\n// The persisted, fully-merged config. A dynamic delay is stored as the marker.\nexport type ResolvedStepConfig = {\n\tretries: {\n\t\tlimit: number;\n\t\tdelay: WorkflowDelayDuration | SerializableDelayMarker;\n\t\tbackoff?: WorkflowBackoff;\n\t};\n\ttimeout: WorkflowTimeoutDuration;\n\tsensitive?: WorkflowStepSensitivity;\n};\n\n// The user-facing config (passed to step callbacks). The dynamic-delay marker is\n// never exposed: `delay` is omitted entirely when the delay is a function.\nexport type EngineStepConfig = {\n\tretries: {\n\t\tlimit: number;\n\t\tdelay?: WorkflowDelayDuration;\n\t\tbackoff?: WorkflowBackoff;\n\t};\n\ttimeout: WorkflowTimeoutDuration;\n\tsensitive?: WorkflowStepSensitivity;\n};\n\nexport function toEngineStepConfig(\n\tconfig: ResolvedStepConfig\n): EngineStepConfig {\n\tconst { delay, ...retries } = config.retries;\n\tif (\n\t\ttypeof delay === \"number\" ||\n\t\t(typeof delay === \"string\" && delay !== SERIALIZABLE_DELAY_MARKER)\n\t) {\n\t\treturn { ...config, retries: { ...retries, delay } };\n\t}\n\treturn { ...config, retries };\n}\n\n// Signal-aware wrapper around the global `scheduler.wait`. `scheduler.wait`\n// can't itself be cancelled, so an aborted signal resolves the returned promise\n// early and the dangling timer becomes a no-op.\nfunction schedulerWait(\n\tdurationMs: number,\n\topts?: { signal?: AbortSignal }\n): Promise<void> {\n\treturn new Promise<void>((resolve) => {\n\t\tconst signal = opts?.signal;\n\t\tif (signal?.aborted) {\n\t\t\tresolve();\n\t\t\treturn;\n\t\t}\n\t\tlet done = false;\n\t\tconst finish = (): void => {\n\t\t\tif (!done) {\n\t\t\t\tdone = true;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tvoid scheduler.wait(durationMs).then(finish);\n\t\tsignal?.addEventListener(\"abort\", finish, { once: true });\n\t});\n}\n\nconst defaultConfig: ResolvedStepConfig = {\n\tretries: {\n\t\tlimit: 5,\n\t\tdelay: 1000,\n\t\tbackoff: \"exponential\",\n\t},\n\ttimeout: \"10 minutes\",\n};\n\n/**\n * Returns a copy of `value` that is safe to persist via Durable Object SQL\n * storage without dragging unrelated bytes along with typed-array views.\n *\n * Background: workerd's `v8::ValueSerializer` writes the entire backing\n * `ArrayBuffer` for typed-array views, not just `byteLength` bytes. A view\n * sliced from a much larger buffer (`crypto.getRandomValues`, `arr.slice(...)`,\n * fetch-stream copies) blows up the wire size by a factor of\n * (backing-size / view-size) and can hit `SQLITE_TOOBIG` at view sizes well\n * below the documented 1MiB step-output limit (see issue #14101). Copying the\n * view's bytes into a tight backing buffer before persistence brings local\n * `wrangler dev` behaviour in line with production.\n *\n * The walk is recursive (cycle-safe via a `WeakMap`) so views nested inside\n * objects, arrays, Maps, and Sets are also compacted. View types are preserved\n * (`Uint8Array` stays `Uint8Array`, `Int16Array` stays `Int16Array`, etc.) so\n * the persisted shape matches the live shape \u2014 cached replays observe the\n * same constructor type the step originally returned. Class instances and\n * host objects (`Date`, `RegExp`, raw `ArrayBuffer`, streams, `Blob`, \u2026) are\n * passed through unchanged \u2014 recursing into them would either fail to\n * reconstruct the original type or trigger their own structured-clone path.\n */\nfunction normalizeForStorage(\n\tvalue: unknown,\n\tseen: WeakMap<object, unknown> = new WeakMap()\n): unknown {\n\t// Primitives: nothing to do.\n\tif (value === null || typeof value !== \"object\") {\n\t\treturn value;\n\t}\n\n\t// Already visited (cycle): return the previously-built copy so the result\n\t// graph mirrors the original's cycle topology.\n\tif (seen.has(value)) {\n\t\treturn seen.get(value);\n\t}\n\n\t// Typed-array views (TypedArray + DataView): copy bytes into a tight\n\t// backing buffer, preserving the original view constructor.\n\tif (ArrayBuffer.isView(value)) {\n\t\treturn buildCompactView(value);\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tconst result: unknown[] = [];\n\t\tseen.set(value, result);\n\t\tfor (const item of value) {\n\t\t\tresult.push(normalizeForStorage(item, seen));\n\t\t}\n\t\treturn result;\n\t}\n\n\tif (value instanceof Map) {\n\t\tconst result = new Map();\n\t\tseen.set(value, result);\n\t\tfor (const [k, v] of value) {\n\t\t\tresult.set(normalizeForStorage(k, seen), normalizeForStorage(v, seen));\n\t\t}\n\t\treturn result;\n\t}\n\n\tif (value instanceof Set) {\n\t\tconst result = new Set();\n\t\tseen.set(value, result);\n\t\tfor (const v of value) {\n\t\t\tresult.add(normalizeForStorage(v, seen));\n\t\t}\n\t\treturn result;\n\t}\n\n\t// Plain objects (Object literals and null-prototype objects). Class\n\t// instances and host objects fall through to the pass-through below.\n\tconst proto = Object.getPrototypeOf(value);\n\tif (proto === Object.prototype || proto === null) {\n\t\tconst result: Record<string, unknown> = {};\n\t\tseen.set(value, result);\n\t\tfor (const key of Object.keys(value)) {\n\t\t\tresult[key] = normalizeForStorage(\n\t\t\t\t(value as Record<string, unknown>)[key],\n\t\t\t\tseen\n\t\t\t);\n\t\t}\n\t\treturn result;\n\t}\n\n\treturn value;\n}\n\ntype ViewCtor = new (buffer: ArrayBufferLike) => ArrayBufferView;\nfunction buildCompactView(view: ArrayBufferView): ArrayBufferView {\n\tconst tightBuffer = view.buffer.slice(\n\t\tview.byteOffset,\n\t\tview.byteOffset + view.byteLength\n\t);\n\treturn new (view.constructor as ViewCtor)(tightBuffer);\n}\n\nexport interface UserErrorField {\n\tisUserError?: boolean;\n}\n\nexport type StepState = {\n\tattemptedCount: number;\n};\n\nexport type WorkflowStepContext = {\n\tstep: {\n\t\tname: string;\n\t\tcount: number;\n\t};\n\tattempt: number;\n\tconfig: EngineStepConfig;\n};\n\nconst PAUSE_DATETIME = \"PAUSE_DATETIME\";\n\nexport class Context extends RpcTarget {\n\t#engine: Engine;\n\t#state: DurableObjectState;\n\n\t#counters: Map<string, number> = new Map();\n\t#lifetimeStepCounter: number = 0;\n\n\t#rollbackStep: { cacheKey: string } | undefined;\n\n\tconstructor(\n\t\tengine: Engine,\n\t\tstate: DurableObjectState,\n\t\trollbackStep?: { cacheKey: string }\n\t) {\n\t\tsuper();\n\t\tthis.#engine = engine;\n\t\tthis.#state = state;\n\t\tthis.#rollbackStep = rollbackStep;\n\t}\n\n\tasync #checkForPendingPause(): Promise<void> {\n\t\tif (this.#engine.timeoutHandler.isRunningStep()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst status = await this.#engine.getStatus();\n\n\t\tif (status === InstanceStatus.Paused) {\n\t\t\tthrow new Error(ABORT_REASONS.USER_PAUSE);\n\t\t}\n\n\t\tif (status === InstanceStatus.WaitingForPause) {\n\t\t\tawait this.#state.storage.put(PAUSE_DATETIME, new Date());\n\t\t\tconst metadata =\n\t\t\t\tawait this.#state.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\t\t\tif (metadata) {\n\t\t\t\tawait this.#engine.setStatus(\n\t\t\t\t\tmetadata.accountId,\n\t\t\t\t\tmetadata.instance.id,\n\t\t\t\t\tInstanceStatus.Paused\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(ABORT_REASONS.USER_PAUSE);\n\t\t}\n\t}\n\n\t#getCount(name: string): number {\n\t\tlet val = this.#counters.get(name) ?? 0;\n\t\t// 1-indexed, as we're increasing the value before write\n\t\tval++;\n\t\tthis.#counters.set(name, val);\n\n\t\treturn val;\n\t}\n\n\t#registerRollback(options: {\n\t\tcacheKey: string;\n\t\trollbackFn: RollbackFn | undefined;\n\t\tstepContext: WorkflowStepContext;\n\t\toutput?: unknown;\n\t\trollbackConfig?: WorkflowStepConfig;\n\t}): void {\n\t\tconst { cacheKey, rollbackFn, stepContext, output, rollbackConfig } =\n\t\t\toptions;\n\t\tif (rollbackFn && this.#rollbackStep === undefined) {\n\t\t\tthis.#engine.registerRollbackFn({\n\t\t\t\tcacheKey,\n\t\t\t\tfn: rollbackFn,\n\t\t\t\tstepContext,\n\t\t\t\t...(\"output\" in options && { output }),\n\t\t\t\t...(rollbackConfig !== undefined && { config: rollbackConfig }),\n\t\t\t});\n\t\t}\n\t}\n\n\tdo(\n\t\tname: string,\n\t\tcallback: (ctx: WorkflowStepContext) => Promise<unknown>,\n\t\trollbackOptions?: WorkflowStepRollbackOptions\n\t): Promise<unknown>;\n\tdo(\n\t\tname: string,\n\t\tconfig: WorkflowStepConfig,\n\t\tcallback: (ctx: WorkflowStepContext) => Promise<unknown>,\n\t\trollbackOptions?: WorkflowStepRollbackOptions\n\t): Promise<unknown>;\n\n\tasync do<T>(\n\t\tname: string,\n\t\t...rest: unknown[]\n\t): Promise<unknown | void | undefined> {\n\t\tlet closure: (ctx: WorkflowStepContext) => Promise<T>;\n\t\tlet stepConfig: WorkflowStepConfig;\n\t\tlet rollbackOptions: WorkflowStepRollbackOptions | undefined;\n\n\t\tconst first = rest[0];\n\t\tif (typeof first === \"function\") {\n\t\t\tclosure = first as (ctx: WorkflowStepContext) => Promise<T>;\n\t\t\tstepConfig = {};\n\t\t\trollbackOptions = parseRollbackOptions(name, rest[1]);\n\t\t} else {\n\t\t\tstepConfig = (first ?? {}) as WorkflowStepConfig;\n\t\t\tclosure = rest[1] as (ctx: WorkflowStepContext) => Promise<T>;\n\t\t\tif (typeof closure !== \"function\") {\n\t\t\t\tconst error = new WorkflowFatalError(\n\t\t\t\t\t`Step \"${name}\" requires a callback function`\n\t\t\t\t) as Error & UserErrorField;\n\t\t\t\terror.isUserError = true;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\trollbackOptions = parseRollbackOptions(name, rest[2]);\n\t\t}\n\t\tconst { rollback: rollbackFn, rollbackConfig } = rollbackOptions ?? {};\n\n\t\tconst isRollback = this.#rollbackStep !== undefined;\n\t\tif (this.#engine.rollbackPhase === \"rollback\" && !isRollback) {\n\t\t\tthrow new WorkflowFatalError(\n\t\t\t\t\"Cannot execute steps during rollback phase\"\n\t\t\t);\n\t\t}\n\n\t\tconst events = isRollback\n\t\t\t? {\n\t\t\t\t\tstart: InstanceEvent.ROLLBACK_STEP_START,\n\t\t\t\t\tattemptStart: InstanceEvent.ROLLBACK_ATTEMPT_START,\n\t\t\t\t\tattemptSuccess: InstanceEvent.ROLLBACK_ATTEMPT_SUCCESS,\n\t\t\t\t\tattemptFailure: InstanceEvent.ROLLBACK_ATTEMPT_FAILURE,\n\t\t\t\t\tsuccess: InstanceEvent.ROLLBACK_STEP_SUCCESS,\n\t\t\t\t\tfailure: InstanceEvent.ROLLBACK_STEP_FAILURE,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tstart: InstanceEvent.STEP_START,\n\t\t\t\t\tattemptStart: InstanceEvent.ATTEMPT_START,\n\t\t\t\t\tattemptSuccess: InstanceEvent.ATTEMPT_SUCCESS,\n\t\t\t\t\tattemptFailure: InstanceEvent.ATTEMPT_FAILURE,\n\t\t\t\t\tsuccess: InstanceEvent.STEP_SUCCESS,\n\t\t\t\t\tfailure: InstanceEvent.STEP_FAILURE,\n\t\t\t\t};\n\n\t\tif (!isRollback) {\n\t\t\tthis.#lifetimeStepCounter++;\n\n\t\t\tconst stepLimit = this.#engine.stepLimit;\n\t\t\tif (this.#lifetimeStepCounter > stepLimit) {\n\t\t\t\tthrow new WorkflowFatalError(\n\t\t\t\t\t`The limit of ${stepLimit} steps has been reached. This limit can be changed in your worker configuration.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!isValidStepName(name)) {\n\t\t\t// NOTE(lduarte): marking errors as user error allows the observability layer to avoid leaking\n\t\t\t// user errors to sentry while making everything more observable. `isUserError` is not serialized\n\t\t\t// into userland code due to how workerd serialzises errors over RPC - we also set it as undefined\n\t\t\t// in the obs layer in case changes to workerd happen\n\t\t\tconst error = new WorkflowFatalError(\n\t\t\t\t`Step name \"${name}\" exceeds max length (${MAX_STEP_NAME_LENGTH} chars) or invalid characters found`\n\t\t\t) as Error & UserErrorField;\n\t\t\terror.isUserError = true;\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!isValidStepConfig(stepConfig)) {\n\t\t\tconst error = new WorkflowFatalError(\n\t\t\t\t`Step config for \"${name}\" is in a invalid format. See https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/`\n\t\t\t) as Error & UserErrorField;\n\t\t\terror.isUserError = true;\n\t\t\tthrow error;\n\t\t}\n\n\t\tlet liveDelay: WorkflowDelayDuration | WorkflowDelayFunction =\n\t\t\tstepConfig.retries?.delay ?? DEFAULT_RETRY_DELAY_MS;\n\n\t\tlet config: ResolvedStepConfig = {\n\t\t\t...defaultConfig,\n\t\t\t...stepConfig,\n\t\t\tretries: {\n\t\t\t\t...defaultConfig.retries,\n\t\t\t\t...stepConfig.retries,\n\t\t\t\tdelay:\n\t\t\t\t\ttypeof liveDelay === \"function\"\n\t\t\t\t\t\t? SERIALIZABLE_DELAY_MARKER\n\t\t\t\t\t\t: liveDelay,\n\t\t\t},\n\t\t};\n\n\t\tlet cacheKey: string;\n\t\tlet count: number;\n\t\tlet stepNameWithCounter: string;\n\t\tconst rollbackStep = this.#rollbackStep;\n\t\tif (rollbackStep !== undefined) {\n\t\t\tcacheKey = `${ROLLBACK_CACHE_KEY_PREFIX}${rollbackStep.cacheKey}`;\n\t\t\tcount = 1;\n\t\t\tstepNameWithCounter = name;\n\t\t} else {\n\t\t\tconst hash = await computeHash(name);\n\t\t\tcount = this.#getCount(\"run-\" + name);\n\t\t\tcacheKey = `${hash}-${count}`;\n\t\t\tstepNameWithCounter = `${name}-${count}`;\n\t\t}\n\n\t\tconst valueKey = `${cacheKey}-value`;\n\t\tconst streamMetaKey = getStreamOutputMetaKey(cacheKey);\n\t\tconst configKey = `${cacheKey}-config`;\n\t\tconst errorKey = `${cacheKey}-error`;\n\t\tconst stepStateKey = `${cacheKey}-metadata`;\n\t\tconst retryDelayDisableKey = `${MODIFIER_KEYS.DISABLE_RETRY_DELAY}${valueKey}`;\n\n\t\tconst maybeMap = await this.#state.storage.get([\n\t\t\tvalueKey,\n\t\t\tstreamMetaKey,\n\t\t\tconfigKey,\n\t\t\terrorKey,\n\t\t\tstepStateKey,\n\t\t]);\n\n\t\t// Check cache -- streams first, then plain values\n\t\tconst maybeStreamMeta = maybeMap.get(streamMetaKey) as\n\t\t\t| StreamOutputMeta\n\t\t\t| undefined\n\t\t\t| null;\n\t\tconst cachedConfig = maybeMap.get(configKey) as\n\t\t\t| ResolvedStepConfig\n\t\t\t| undefined;\n\t\tif (maybeStreamMeta?.state === StreamOutputState.Complete) {\n\t\t\tconst cachedState = maybeMap.get(stepStateKey) as StepState | undefined;\n\t\t\tconst maybeOutputError = getInvalidStoredStreamOutputError(\n\t\t\t\tthis.#state.storage,\n\t\t\t\tcacheKey,\n\t\t\t\tmaybeStreamMeta\n\t\t\t);\n\t\t\tif (maybeOutputError !== undefined) {\n\t\t\t\tthrow new WorkflowInternalError(\n\t\t\t\t\t`Stored output for ${stepNameWithCounter} is corrupt or incomplete.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst result = createReplayReadableStream({\n\t\t\t\tstorage: this.#state.storage,\n\t\t\t\tcacheKey,\n\t\t\t\tmeta: maybeStreamMeta,\n\t\t\t}) as T;\n\t\t\tthis.#registerRollback({\n\t\t\t\tcacheKey,\n\t\t\t\trollbackFn,\n\t\t\t\tstepContext: {\n\t\t\t\t\tstep: { name, count },\n\t\t\t\t\tattempt: cachedState?.attemptedCount ?? 1,\n\t\t\t\t\tconfig: toEngineStepConfig(cachedConfig ?? config),\n\t\t\t\t},\n\t\t\t\toutput: result,\n\t\t\t\trollbackConfig,\n\t\t\t});\n\t\t\treturn result;\n\t\t} else if (maybeStreamMeta !== undefined && maybeStreamMeta !== null) {\n\t\t\t// We're not in a complete state - means we crashed while persisting a stream on a previous invocation - need to cleanup\n\t\t\tawait cleanupPendingStreamOutput(this.#state.storage, cacheKey).catch(\n\t\t\t\t() => {}\n\t\t\t);\n\t\t}\n\n\t\tconst maybeResult = maybeMap.get(valueKey);\n\n\t\tif (maybeResult) {\n\t\t\tconst cachedState = maybeMap.get(stepStateKey) as StepState | undefined;\n\t\t\tconst result = (maybeResult as { value: T }).value;\n\t\t\tthis.#registerRollback({\n\t\t\t\tcacheKey,\n\t\t\t\trollbackFn,\n\t\t\t\tstepContext: {\n\t\t\t\t\tstep: { name, count },\n\t\t\t\t\tattempt: cachedState?.attemptedCount ?? 1,\n\t\t\t\t\tconfig: toEngineStepConfig(cachedConfig ?? config),\n\t\t\t\t},\n\t\t\t\toutput: result,\n\t\t\t\trollbackConfig,\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\n\t\tconst maybeError: (Error & UserErrorField) | undefined = maybeMap.get(\n\t\t\terrorKey\n\t\t) as Error | undefined;\n\n\t\tif (maybeError) {\n\t\t\tconst cachedState = maybeMap.get(stepStateKey) as StepState | undefined;\n\t\t\tthis.#registerRollback({\n\t\t\t\tcacheKey,\n\t\t\t\trollbackFn,\n\t\t\t\tstepContext: {\n\t\t\t\t\tstep: { name, count },\n\t\t\t\t\tattempt: cachedState?.attemptedCount ?? 1,\n\t\t\t\t\tconfig: toEngineStepConfig(cachedConfig ?? config),\n\t\t\t\t},\n\t\t\t\trollbackConfig,\n\t\t\t});\n\t\t\tmaybeError.isUserError = true;\n\t\t\tthrow maybeError;\n\t\t}\n\n\t\t// Persist initial config because user can pass in dynamic config\n\t\tif (cachedConfig === undefined) {\n\t\t\tawait this.#state.storage.put(configKey, config);\n\t\t} else {\n\t\t\tconfig = cachedConfig;\n\t\t\t// Recover the live delay from the (non-serializable) user config: a\n\t\t\t// persisted marker means the user passed a function, so re-read it.\n\t\t\tliveDelay =\n\t\t\t\tconfig.retries.delay === SERIALIZABLE_DELAY_MARKER\n\t\t\t\t\t? typeof stepConfig.retries?.delay === \"function\"\n\t\t\t\t\t\t? stepConfig.retries.delay\n\t\t\t\t\t\t: DEFAULT_RETRY_DELAY_MS\n\t\t\t\t\t: config.retries.delay;\n\t\t}\n\n\t\tif (this.#engine.rollbackPhase === \"replay\" && !isRollback) {\n\t\t\tconst cachedState = maybeMap.get(stepStateKey) as StepState | undefined;\n\t\t\tthis.#registerRollback({\n\t\t\t\tcacheKey,\n\t\t\t\trollbackFn,\n\t\t\t\tstepContext: {\n\t\t\t\t\tstep: { name, count },\n\t\t\t\t\tattempt: cachedState?.attemptedCount ?? 1,\n\t\t\t\t\tconfig: toEngineStepConfig(config),\n\t\t\t\t},\n\t\t\t\trollbackConfig,\n\t\t\t});\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst attemptLogs = this.#engine\n\t\t\t.readLogsFromStep(cacheKey)\n\t\t\t.filter((val) =>\n\t\t\t\t[\n\t\t\t\t\tevents.attemptSuccess,\n\t\t\t\t\tevents.attemptFailure,\n\t\t\t\t\tevents.attemptStart,\n\t\t\t\t].includes(val.event)\n\t\t\t);\n\n\t\t// this means that the the engine died while executing this step - we can mark the latest attempt as failed\n\t\tif (\n\t\t\tattemptLogs.length > 0 &&\n\t\t\tattemptLogs.at(-1)?.event === events.attemptStart\n\t\t) {\n\t\t\t// TODO: We should get this from SQL\n\t\t\tconst stepState = ((await this.#state.storage.get(\n\t\t\t\tstepStateKey\n\t\t\t)) as StepState) ?? {\n\t\t\t\tattemptedCount: 1,\n\t\t\t};\n\n\t\t\tconst priorityQueueHash = `${cacheKey}-${stepState.attemptedCount}`;\n\n\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\tconst timeoutEntryPQ = this.#engine.priorityQueue.getFirst(\n\t\t\t\t(a) => a.hash === priorityQueueHash && a.type === \"timeout\"\n\t\t\t);\n\t\t\t// if there's a timeout on the PQ we pop it, because we wont need it\n\t\t\tif (timeoutEntryPQ !== undefined) {\n\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\tthis.#engine.priorityQueue.remove(timeoutEntryPQ);\n\t\t\t}\n\t\t\tthis.#engine.writeLog(\n\t\t\t\tevents.attemptFailure,\n\t\t\t\tcacheKey,\n\t\t\t\tstepNameWithCounter,\n\t\t\t\t{\n\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tname: \"WorkflowInternalError\",\n\t\t\t\t\t\tmessage: `Attempt failed due to internal workflows error`,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tawait this.#state.storage.put(stepStateKey, stepState);\n\t\t}\n\n\t\tconst doWrapper = async (\n\t\t\tdoWrapperClosure: (ctx: WorkflowStepContext) => Promise<unknown>\n\t\t): Promise<unknown | void | undefined> => {\n\t\t\tconst stepState = ((await this.#state.storage.get(\n\t\t\t\tstepStateKey\n\t\t\t)) as StepState) ?? {\n\t\t\t\tattemptedCount: 0,\n\t\t\t};\n\t\t\tconst forwardStepContext = (): WorkflowStepContext => ({\n\t\t\t\tstep: { name, count },\n\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\tconfig: toEngineStepConfig(config),\n\t\t\t});\n\n\t\t\t// NOTE(caio): this might be a stream returning step - if so cleanup stale data from previous lifetimes\n\t\t\tawait cleanupPendingStreamOutput(this.#state.storage, cacheKey).catch(\n\t\t\t\t() => {}\n\t\t\t);\n\n\t\t\tawait this.#engine.timeoutHandler.acquire(this.#engine);\n\n\t\t\tif (stepState.attemptedCount == 0) {\n\t\t\t\tthis.#engine.writeLog(events.start, cacheKey, stepNameWithCounter, {\n\t\t\t\t\tconfig: toEngineStepConfig(config),\n\t\t\t\t\t...(!isRollback && rollbackFn ? { hasRollback: true } : {}),\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// in case the engine dies while retrying and wakes up before the retry period\n\t\t\t\tconst priorityQueueHash = `${cacheKey}-${stepState.attemptedCount}`;\n\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\tconst retryEntryPQ = this.#engine.priorityQueue.getFirst(\n\t\t\t\t\t(a) => a.hash === priorityQueueHash && a.type === \"retry\"\n\t\t\t\t);\n\t\t\t\t// complete sleep if it didn't finish for some reason\n\t\t\t\tif (retryEntryPQ !== undefined) {\n\t\t\t\t\tconst disableAllRetryDelays = await this.#state.storage.get(\n\t\t\t\t\t\tMODIFIER_KEYS.DISABLE_ALL_RETRY_DELAYS\n\t\t\t\t\t);\n\t\t\t\t\tconst disableThisRetryDelay =\n\t\t\t\t\t\tawait this.#state.storage.get(retryDelayDisableKey);\n\t\t\t\t\tconst disableRetryDelay =\n\t\t\t\t\t\tdisableAllRetryDelays || disableThisRetryDelay;\n\n\t\t\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\t\t\tawait scheduler.wait(\n\t\t\t\t\t\tdisableRetryDelay ? 0 : retryEntryPQ.targetTimestamp - Date.now()\n\t\t\t\t\t);\n\t\t\t\t\tawait this.#engine.timeoutHandler.acquire(this.#engine);\n\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\ttype: \"retry\",\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet result;\n\n\t\t\tconst instanceMetadata =\n\t\t\t\tawait this.#state.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\t\t\tif (!instanceMetadata) {\n\t\t\t\tthrow new Error(\"instanceMetadata is undefined\");\n\t\t\t}\n\t\t\tconst { accountId, instance } = instanceMetadata;\n\n\t\t\tlet streamResultSeen = false;\n\t\t\tlet lastStreamMeta: StreamOutputMeta | undefined;\n\t\t\tconst abortController = new AbortController();\n\t\t\tconst stepExecutionSignal = AbortSignal.any([\n\t\t\t\tabortController.signal,\n\t\t\t\tthis.#engine.engineAbortController.signal,\n\t\t\t]);\n\n\t\t\ttry {\n\t\t\t\tconst timeoutPromise = async (): Promise<never> => {\n\t\t\t\t\tconst priorityQueueHash = `${cacheKey}-${stepState.attemptedCount}`;\n\t\t\t\t\tlet timeout = ms(config.timeout);\n\t\t\t\t\tif (forceStepTimeout) {\n\t\t\t\t\t\ttimeout = 0;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\tawait this.#engine.priorityQueue.add({\n\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\ttargetTimestamp: Date.now() + timeout,\n\t\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t\t});\n\t\t\t\t\tawait scheduler.wait(timeout);\n\t\t\t\t\t// if we reach here, means that we can try to delete the timeout from the PQ\n\t\t\t\t\t// because we managed to wait in the same lifetime\n\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\tawait this.#engine.priorityQueue.remove({\n\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t\t});\n\t\t\t\t\tconst error = new WorkflowTimeoutError(\n\t\t\t\t\t\t`Execution timed out after ${timeout}ms`\n\t\t\t\t\t);\n\t\t\t\t\tabortController.abort(error);\n\t\t\t\t\tthrow error;\n\t\t\t\t};\n\n\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\tevents.attemptStart,\n\t\t\t\t\tcacheKey,\n\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t{\n\t\t\t\t\t\tattempt: stepState.attemptedCount + 1,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tstepState.attemptedCount++;\n\t\t\t\tthis.#registerRollback({\n\t\t\t\t\tcacheKey,\n\t\t\t\t\trollbackFn,\n\t\t\t\t\tstepContext: forwardStepContext(),\n\t\t\t\t\trollbackConfig,\n\t\t\t\t});\n\t\t\t\tawait this.#state.storage.put(stepStateKey, stepState);\n\t\t\t\tconst priorityQueueHash = `${cacheKey}-${stepState.attemptedCount}`;\n\n\t\t\t\tconst mockErrorKey = `${MODIFIER_KEYS.MOCK_STEP_ERROR}${valueKey}`;\n\t\t\t\tconst persistentMockError = await this.#state.storage.get<{\n\t\t\t\t\tname: string;\n\t\t\t\t\tmessage: string;\n\t\t\t\t}>(mockErrorKey);\n\t\t\t\tconst transientMockError = await this.#state.storage.get<{\n\t\t\t\t\tname: string;\n\t\t\t\t\tmessage: string;\n\t\t\t\t}>(`${mockErrorKey}-${stepState.attemptedCount}`);\n\t\t\t\tconst mockErrorPayload = persistentMockError || transientMockError;\n\n\t\t\t\t// if a mocked error exists, throw it immediately\n\t\t\t\tif (mockErrorPayload) {\n\t\t\t\t\tconst errorToThrow = new Error(mockErrorPayload.message);\n\t\t\t\t\terrorToThrow.name = mockErrorPayload.name;\n\t\t\t\t\tthrow errorToThrow;\n\t\t\t\t}\n\n\t\t\t\tconst replaceResult = await this.#state.storage.get(\n\t\t\t\t\t`${MODIFIER_KEYS.REPLACE_RESULT}${valueKey}`\n\t\t\t\t);\n\n\t\t\t\tconst forceStepTimeoutKey = `${MODIFIER_KEYS.FORCE_STEP_TIMEOUT}${valueKey}`;\n\t\t\t\tconst persistentStepTimeout =\n\t\t\t\t\tawait this.#state.storage.get(forceStepTimeoutKey);\n\t\t\t\tconst transientStepTimeout = await this.#state.storage.get(\n\t\t\t\t\t`${forceStepTimeoutKey}-${stepState.attemptedCount}`\n\t\t\t\t);\n\t\t\t\tconst forceStepTimeout = persistentStepTimeout || transientStepTimeout;\n\n\t\t\t\tlet timeoutTask: Promise<never> | undefined;\n\n\t\t\t\tconst persistStepResult = async (\n\t\t\t\t\tvalue: unknown,\n\t\t\t\t\tactiveTimeoutTask?: Promise<never>\n\t\t\t\t): Promise<unknown> => {\n\t\t\t\t\tif (!isReadableStreamLike(value)) {\n\t\t\t\t\t\t// Typed-array views anywhere in the value tree are copied\n\t\t\t\t\t\t// into a tight backing buffer so the full backing buffer\n\t\t\t\t\t\t// does not ride along with each view (issue #14101). View\n\t\t\t\t\t\t// types are preserved so cached replays observe the same\n\t\t\t\t\t\t// constructor as the live execution path. The caller still\n\t\t\t\t\t\t// receives the original `value` below \u2014 only the stored\n\t\t\t\t\t\t// shape changes.\n\t\t\t\t\t\tconst stored = normalizeForStorage(value);\n\t\t\t\t\t\tawait this.#state.storage.put(valueKey, { value: stored });\n\t\t\t\t\t\tabortController.abort(\"step finished\");\n\t\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\n\t\t\t\t\tstreamResultSeen = true;\n\t\t\t\t\tconst streamMeta = await writeStreamOutput({\n\t\t\t\t\t\tstorage: this.#state.storage,\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\tstream: value as ReadableStream<unknown>,\n\t\t\t\t\t\tsignal: stepExecutionSignal,\n\t\t\t\t\t\ttimeoutTask: activeTimeoutTask,\n\t\t\t\t\t});\n\t\t\t\t\tlastStreamMeta = streamMeta;\n\n\t\t\t\t\tabortController.abort(\"step finished\");\n\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t\t});\n\t\t\t\t\treturn createReplayReadableStream({\n\t\t\t\t\t\tstorage: this.#state.storage,\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tmeta: streamMeta,\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tif (forceStepTimeout) {\n\t\t\t\t\tresult = await timeoutPromise();\n\t\t\t\t} else if (replaceResult) {\n\t\t\t\t\t// Check if the mocked result is a stream sentinel (from mockStepResult with ReadableStream)\n\t\t\t\t\tif (\n\t\t\t\t\t\treplaceResult &&\n\t\t\t\t\t\ttypeof replaceResult === \"object\" &&\n\t\t\t\t\t\t(replaceResult as Record<string, unknown>).__mockStreamOutput\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst sentinel = replaceResult as {\n\t\t\t\t\t\t\t__mockStreamOutput: true;\n\t\t\t\t\t\t\tcacheKey: string;\n\t\t\t\t\t\t\tmeta: StreamOutputMeta;\n\t\t\t\t\t\t};\n\t\t\t\t\t\tresult = createReplayReadableStream({\n\t\t\t\t\t\t\tstorage: this.#state.storage,\n\t\t\t\t\t\t\tcacheKey: sentinel.cacheKey,\n\t\t\t\t\t\t\tmeta: sentinel.meta,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = replaceResult;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttimeoutTask = timeoutPromise();\n\t\t\t\t\tresult = await Promise.race([\n\t\t\t\t\t\tdoWrapperClosure({\n\t\t\t\t\t\t\tstep: { name, count },\n\t\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\t\tconfig: toEngineStepConfig(config),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttimeoutTask,\n\t\t\t\t\t]);\n\t\t\t\t}\n\n\t\t\t\t// We store the value of `output` in an object with a `value` property. This allows us to store `undefined`,\n\t\t\t\t// in the case that it's returned from the user's code. This is because DO storage will error if you try to\n\t\t\t\t// store undefined directly.\n\t\t\t\ttry {\n\t\t\t\t\tresult = await persistStepResult(result, timeoutTask);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tabortController.abort(\"step errored\");\n\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t\t});\n\n\t\t\t\t\tif (e instanceof WorkflowTimeoutError) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fatal serialization/storage errors abort the DO immediately, so\n\t\t\t\t\t// previously registered rollbacks do not run for these paths.\n\t\t\t\t\t// This matches the existing terminal behavior for unrecoverable output.\n\t\t\t\t\t// Stream-specific fatal errors\n\t\t\t\t\tif (\n\t\t\t\t\t\te instanceof InvalidStepReadableStreamError ||\n\t\t\t\t\t\te instanceof OversizedStreamChunkError ||\n\t\t\t\t\t\te instanceof UnsupportedStreamChunkError\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\t\tevents.attemptFailure,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\t\t\terror: new WorkflowFatalError(e.message),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\t\tevents.failure,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.#engine.writeLog(InstanceEvent.WORKFLOW_FAILURE, null, null, {\n\t\t\t\t\t\t\terror: new WorkflowFatalError(\n\t\t\t\t\t\t\t\t`The execution of the Workflow instance was terminated, as the step \"${name}\" returned an invalid ReadableStream output. ${e.message}`\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tawait this.#engine.setStatus(\n\t\t\t\t\t\t\taccountId,\n\t\t\t\t\t\t\tinstance.id,\n\t\t\t\t\t\t\tInstanceStatus.Errored\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\t\t\t\tawait this.#engine.abort(ABORT_REASONS.NOT_SERIALISABLE);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (e instanceof StreamOutputStorageLimitError) {\n\t\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\t\tevents.attemptFailure,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\t\t\terror: new WorkflowFatalError(e.message),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\t\tevents.failure,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.#engine.writeLog(InstanceEvent.WORKFLOW_FAILURE, null, null, {\n\t\t\t\t\t\t\terror: new WorkflowFatalError(\n\t\t\t\t\t\t\t\t\"The instance has exceeded the 1GiB storage limit\"\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tawait this.#engine.setStatus(\n\t\t\t\t\t\t\taccountId,\n\t\t\t\t\t\t\tinstance.id,\n\t\t\t\t\t\t\tInstanceStatus.Errored\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\t\t\t\tawait this.#engine.abort(ABORT_REASONS.STORAGE_LIMIT_EXCEEDED);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// something that cannot be written to storage\n\t\t\t\t\tif (e instanceof Error && e.name === \"DataCloneError\") {\n\t\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\t\tevents.attemptFailure,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\t\t\terror: new WorkflowFatalError(\n\t\t\t\t\t\t\t\t\t`Value returned from step \"${name}\" is not serialisable`\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\t\tevents.failure,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.#engine.writeLog(InstanceEvent.WORKFLOW_FAILURE, null, null, {\n\t\t\t\t\t\t\terror: new WorkflowFatalError(\n\t\t\t\t\t\t\t\t`The execution of the Workflow instance was terminated, as the step \"${name}\" returned a value which is not serialisable`\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tawait this.#engine.setStatus(\n\t\t\t\t\t\t\taccountId,\n\t\t\t\t\t\t\tinstance.id,\n\t\t\t\t\t\t\tInstanceStatus.Errored\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\t\t\t\tawait this.#engine.abort(ABORT_REASONS.NOT_SERIALISABLE);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\te instanceof Error &&\n\t\t\t\t\t\te.message.includes(\"string or blob too big: SQLITE_TOOBIG\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new WorkflowInternalError(\n\t\t\t\t\t\t\t`Step ${stepNameWithCounter} output is too large. Maximum allowed size is 1MiB.`\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// TODO (WOR-77): Send this to Sentry\n\t\t\t\t\t\tthrow new WorkflowInternalError(\n\t\t\t\t\t\t\t`Storage failure for ${stepNameWithCounter} due to internal error.`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// if we reach here, means that the closure ran successfully and we can remove the timeout from the PQ\n\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t});\n\n\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\tevents.attemptSuccess,\n\t\t\t\t\tcacheKey,\n\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t{\n\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tconst error = e as Error;\n\t\t\t\t// if we reach here, means that the closure ran but errored out and we can remove the timeout from the PQ\n\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\thash: `${cacheKey}-${stepState.attemptedCount}`,\n\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t});\n\n\t\t\t\t// Clean up any partial stream output from this failed attempt\n\t\t\t\tif (streamResultSeen) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait rollbackStreamOutput(\n\t\t\t\t\t\t\tthis.#state.storage,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepState.attemptedCount\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Best-effort cleanup\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\te instanceof Error &&\n\t\t\t\t\t(error.name === \"NonRetryableError\" ||\n\t\t\t\t\t\terror.message.startsWith(\"NonRetryableError\"))\n\t\t\t\t) {\n\t\t\t\t\tconst attemptError = shouldPreserveNonRetryableError()\n\t\t\t\t\t\t? new PreservedNonRetryableError(e)\n\t\t\t\t\t\t: new WorkflowFatalError(\n\t\t\t\t\t\t\t\t`Step threw a NonRetryableError with message \"${e.message}\"`\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\tevents.attemptFailure,\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\t\terror: attemptError,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\tevents.failure,\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t!isRollback && rollbackFn ? { hasRollback: true } : {}\n\t\t\t\t\t);\n\t\t\t\t\tthis.#registerRollback({\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\trollbackFn,\n\t\t\t\t\t\tstepContext: forwardStepContext(),\n\t\t\t\t\t\trollbackConfig,\n\t\t\t\t\t});\n\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tawait this.#state.storage.put(stepStateKey, stepState);\n\n\t\t\t\tconst willRetry = stepState.attemptedCount <= config.retries.limit;\n\t\t\t\tconst priorityQueueHash = `${cacheKey}-${stepState.attemptedCount}`;\n\n\t\t\t\t// Resolve the delay once per attempt. A broken delay function turns\n\t\t\t\t// the retry into a non-retryable failure.\n\t\t\t\tlet retryDelayMs: number | undefined;\n\t\t\t\tlet delayFailure: (Error & UserErrorField) | undefined;\n\t\t\t\tif (willRetry) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet resolvedDelay: unknown;\n\t\t\t\t\t\tif (typeof liveDelay === \"function\") {\n\t\t\t\t\t\t\t// Park a default-delayed retry before invoking the user's\n\t\t\t\t\t\t\t// delay function so a crash while the function is in flight\n\t\t\t\t\t\t\t// still reschedules the step. The PQ table is append-only\n\t\t\t\t\t\t\t// with a UNIQUE(action, entryType, hash) constraint, so this\n\t\t\t\t\t\t\t// exact entry is reused as the retry entry below \u2014 it is\n\t\t\t\t\t\t\t// never removed and re-added (that would violate UNIQUE).\n\t\t\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\t\t\tawait this.#engine.priorityQueue.add({\n\t\t\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\t\t\ttargetTimestamp: Date.now() + DEFAULT_RETRY_DELAY_MS,\n\t\t\t\t\t\t\t\ttype: \"retry\",\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst stepCtx: WorkflowStepContext = {\n\t\t\t\t\t\t\t\tstep: { name, count },\n\t\t\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\t\t\tconfig: toEngineStepConfig(config),\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tresolvedDelay = await invokeDelayFunction(\n\t\t\t\t\t\t\t\tliveDelay,\n\t\t\t\t\t\t\t\t{ ctx: stepCtx, error },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttimeoutMs: DELAY_FUNCTION_TIMEOUT_MS,\n\t\t\t\t\t\t\t\t\twait: schedulerWait,\n\t\t\t\t\t\t\t\t\tsignal: this.#engine.engineAbortController.signal,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolvedDelay = liveDelay;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tretryDelayMs = calcRetryDuration(config, stepState, resolvedDelay);\n\t\t\t\t\t} catch (delayErr) {\n\t\t\t\t\t\tif (!(delayErr instanceof DelayFunctionError)) {\n\t\t\t\t\t\t\tthrow delayErr;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\t\ttype: \"retry\",\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst userError = new NonRetryableDelayError(\n\t\t\t\t\t\t\t`The delay function for step \"${stepNameWithCounter}\" ${delayErr.message}`\n\t\t\t\t\t\t) as Error & UserErrorField;\n\t\t\t\t\t\tuserError.isUserError = true;\n\t\t\t\t\t\tdelayFailure = userError;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\tevents.attemptFailure,\n\t\t\t\t\tcacheKey,\n\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t{\n\t\t\t\t\t\tattempt: stepState.attemptedCount,\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tname: error.name,\n\t\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\t\t// TODO (WOR-79): Stacks are all incorrect over RPC and need work\n\t\t\t\t\t\t\t// stack: error.stack,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...(retryDelayMs !== undefined ? { retryDelayMs } : {}),\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (willRetry && delayFailure === undefined) {\n\t\t\t\t\t// TODO (WOR-71): Think through if every Error should transition\n\t\t\t\t\tconst durationMs = retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;\n\t\t\t\t\tconst disableAllRetryDelays = await this.#state.storage.get(\n\t\t\t\t\t\tMODIFIER_KEYS.DISABLE_ALL_RETRY_DELAYS\n\t\t\t\t\t);\n\t\t\t\t\tconst disableThisRetryDelay =\n\t\t\t\t\t\tawait this.#state.storage.get(retryDelayDisableKey);\n\t\t\t\t\tconst disableRetryDelay =\n\t\t\t\t\t\tdisableAllRetryDelays || disableThisRetryDelay;\n\t\t\t\t\tconst effectiveDuration = disableRetryDelay ? 0 : durationMs;\n\n\t\t\t\t\t// A dynamic delay already parked its retry entry under this hash\n\t\t\t\t\t// above (the append-only PQ rejects re-adding the same hash), so\n\t\t\t\t\t// only static delays add here. The live wait below uses\n\t\t\t\t\t// effectiveDuration regardless; the parked entry's timestamp only\n\t\t\t\t\t// drives crash recovery.\n\t\t\t\t\t//\n\t\t\t\t\t// Known trade-off: for a dynamic delay the parked entry keeps the\n\t\t\t\t\t// DEFAULT_RETRY_DELAY_MS placeholder timestamp set before the delay\n\t\t\t\t\t// function ran (see the add above) \u2014 the UNIQUE(action, entryType,\n\t\t\t\t\t// hash) constraint means it can't be overwritten in place with the\n\t\t\t\t\t// computed value without a remove+re-add that would violate the\n\t\t\t\t\t// constraint. So if the engine crashes mid-wait, recovery resumes\n\t\t\t\t\t// the step at the placeholder delay rather than the computed one.\n\t\t\t\t\t// This is accepted for local dev: the step still retries with the\n\t\t\t\t\t// correct semantics, only the post-crash wait can be shorter.\n\t\t\t\t\tif (typeof liveDelay !== \"function\") {\n\t\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\t\tawait this.#engine.priorityQueue.add({\n\t\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\t\ttargetTimestamp: Date.now() + effectiveDuration,\n\t\t\t\t\t\t\ttype: \"retry\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\t\t\t// Race retry wait against the pause signal so pause\n\t\t\t\t\t// takes effect immediately during retries\n\t\t\t\t\t{\n\t\t\t\t\t\tconst retryPauseSignal = this.#engine.pauseController.signal;\n\t\t\t\t\t\tawait raceAgainstAbort(\n\t\t\t\t\t\t\tscheduler.wait(effectiveDuration),\n\t\t\t\t\t\t\tretryPauseSignal\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst retryStatus = await this.#engine.getStatus();\n\t\t\t\t\t\tconst pausedDuringRetry =\n\t\t\t\t\t\t\tretryStatus === InstanceStatus.Paused ||\n\t\t\t\t\t\t\tretryStatus === InstanceStatus.WaitingForPause;\n\t\t\t\t\t\tif (pausedDuringRetry) {\n\t\t\t\t\t\t\tthrow new Error(ABORT_REASONS.USER_PAUSE);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// if it ever reaches here, we can try to remove it from the priority queue since it's no longer useful\n\t\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\t\ttype: \"retry\",\n\t\t\t\t\t});\n\n\t\t\t\t\treturn doWrapper(doWrapperClosure);\n\t\t\t\t} else {\n\t\t\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\t\t\t// Clean up any leftover stream chunks on retry exhaustion\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait rollbackStreamOutput(\n\t\t\t\t\t\t\tthis.#state.storage,\n\t\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\t\tstepState.attemptedCount\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Best-effort cleanup\n\t\t\t\t\t}\n\t\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\t\tevents.failure,\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tstepNameWithCounter,\n\t\t\t\t\t\t!isRollback && rollbackFn ? { hasRollback: true } : {}\n\t\t\t\t\t);\n\t\t\t\t\tthis.#registerRollback({\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\trollbackFn,\n\t\t\t\t\t\tstepContext: forwardStepContext(),\n\t\t\t\t\t\trollbackConfig,\n\t\t\t\t\t});\n\n\t\t\t\t\tconst finalError = delayFailure ?? error;\n\t\t\t\t\tawait this.#state.storage.put(errorKey, finalError);\n\t\t\t\t\tthrow finalError;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst redactOutput = config.sensitive === SENSITIVE_STEP_OUTPUT;\n\t\t\tthis.#engine.writeLog(events.success, cacheKey, stepNameWithCounter, {\n\t\t\t\t// TODO (WOR-86): Add limits, figure out serialization\n\t\t\t\tresult: redactOutput\n\t\t\t\t\t? REDACTED_STEP_OUTPUT\n\t\t\t\t\t: lastStreamMeta\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: result,\n\t\t\t\t...(!redactOutput &&\n\t\t\t\t\tlastStreamMeta && {\n\t\t\t\t\t\tstreamOutput: { cacheKey, meta: lastStreamMeta },\n\t\t\t\t\t}),\n\t\t\t\t...(!isRollback && rollbackFn ? { hasRollback: true } : {}),\n\t\t\t});\n\t\t\tthis.#registerRollback({\n\t\t\t\tcacheKey,\n\t\t\t\trollbackFn,\n\t\t\t\tstepContext: forwardStepContext(),\n\t\t\t\toutput: result,\n\t\t\t\trollbackConfig,\n\t\t\t});\n\t\t\tawait this.#engine.timeoutHandler.release(this.#engine);\n\t\t\treturn result;\n\t\t};\n\n\t\tconst result = await doWrapper(closure);\n\n\t\t// Check if a pause was requested while this step was running.\n\t\t// Rollback steps may run while the instance is paused; don't let stale pause\n\t\t// state abort rollback cleanup after the rollback step itself succeeds.\n\t\tif (!isRollback) {\n\t\t\tawait this.#checkForPendingPause();\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync sleep(name: string, duration: WorkflowSleepDuration): Promise<void> {\n\t\tif (this.#engine.rollbackPhase === \"replay\") {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof duration == \"string\") {\n\t\t\tduration = ms(duration);\n\t\t}\n\n\t\tconst hash = await computeHash(name + duration.toString());\n\t\tconst count = this.#getCount(\"sleep-\" + name + duration.toString());\n\t\tconst cacheKey = `${hash}-${count}`;\n\t\tconst sleepNameWithCounter = `${name}-${count}`;\n\n\t\tconst sleepKey = `${cacheKey}-value`;\n\t\tconst sleepLogWrittenKey = `${cacheKey}-log-written`;\n\t\tconst maybeResult = await this.#state.storage.get(sleepKey);\n\n\t\tconst sleepNameCountHash = await computeHash(\n\t\t\tname + this.#getCount(\"sleep-\" + name)\n\t\t);\n\t\tconst disableThisSleep = await this.#state.storage.get(\n\t\t\t`${MODIFIER_KEYS.DISABLE_SLEEP}${sleepNameCountHash}`\n\t\t);\n\t\tconst disableAllSleeps = await this.#state.storage.get(\n\t\t\tMODIFIER_KEYS.DISABLE_ALL_SLEEPS\n\t\t);\n\n\t\tconst disableSleep = disableAllSleeps || disableThisSleep;\n\n\t\tif (maybeResult != undefined) {\n\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\tconst entryPQ = this.#engine.priorityQueue.getFirst(\n\t\t\t\t(a) => a.hash === cacheKey && a.type === \"sleep\"\n\t\t\t);\n\t\t\t// in case the engine dies while sleeping and wakes up before the retry period\n\t\t\tif (entryPQ !== undefined) {\n\t\t\t\tawait scheduler.wait(\n\t\t\t\t\tdisableSleep ? 0 : entryPQ.targetTimestamp - Date.now()\n\t\t\t\t);\n\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\tthis.#engine.priorityQueue.remove({ hash: cacheKey, type: \"sleep\" });\n\t\t\t}\n\t\t\tconst shouldWriteLog =\n\t\t\t\t(await this.#state.storage.get(sleepLogWrittenKey)) == undefined;\n\t\t\tif (shouldWriteLog) {\n\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\tInstanceEvent.SLEEP_COMPLETE,\n\t\t\t\t\tcacheKey,\n\t\t\t\t\tsleepNameWithCounter,\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t\tawait this.#state.storage.put(sleepLogWrittenKey, true);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#engine.writeLog(\n\t\t\tInstanceEvent.SLEEP_START,\n\t\t\tcacheKey,\n\t\t\tsleepNameWithCounter,\n\t\t\t{\n\t\t\t\tdurationMs: duration,\n\t\t\t}\n\t\t);\n\t\tconst instanceMetadata =\n\t\t\tawait this.#state.storage.get<InstanceMetadata>(INSTANCE_METADATA);\n\t\tif (!instanceMetadata) {\n\t\t\tthrow new Error(\"instanceMetadata is undefined\");\n\t\t}\n\n\t\t// TODO(lduarte): not sure of this order of operations\n\t\tawait this.#state.storage.put(sleepKey, true); // Any value will do for cache hit\n\n\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\tawait this.#engine.priorityQueue.add({\n\t\t\thash: cacheKey,\n\t\t\ttargetTimestamp: Date.now() + (disableSleep ? 0 : duration),\n\t\t\ttype: \"sleep\",\n\t\t});\n\n\t\t// Race the sleep against the pause signal\n\t\tconst pauseSignal = this.#engine.pauseController.signal;\n\t\tconst sleepDuration = disableSleep ? 0 : duration;\n\n\t\tawait raceAgainstAbort(scheduler.wait(sleepDuration), pauseSignal);\n\n\t\t// Check if we were paused during the sleep\n\t\tconst statusAfterSleep = await this.#engine.getStatus();\n\t\tconst pausedDuringSleep =\n\t\t\tstatusAfterSleep === InstanceStatus.Paused ||\n\t\t\tstatusAfterSleep === InstanceStatus.WaitingForPause;\n\n\t\tif (pausedDuringSleep) {\n\t\t\t// Throw pause error\n\t\t\tthrow new Error(ABORT_REASONS.USER_PAUSE);\n\t\t}\n\n\t\tthis.#engine.writeLog(\n\t\t\tInstanceEvent.SLEEP_COMPLETE,\n\t\t\tcacheKey,\n\t\t\tsleepNameWithCounter,\n\t\t\t{}\n\t\t);\n\t\tawait this.#state.storage.put(sleepLogWrittenKey, true);\n\n\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\tthis.#engine.priorityQueue.remove({ hash: cacheKey, type: \"sleep\" });\n\t}\n\n\tasync sleepUntil(name: string, timestamp: Date | number): Promise<void> {\n\t\tif (this.#engine.rollbackPhase === \"replay\") {\n\t\t\treturn;\n\t\t}\n\n\t\tif (timestamp instanceof Date) {\n\t\t\ttimestamp = timestamp.valueOf();\n\t\t}\n\n\t\tconst now = Date.now();\n\t\t// timestamp needs to be in the future, throw if not\n\t\tif (timestamp < now) {\n\t\t\tthrow new Error(\n\t\t\t\t\"You can't sleep until a time in the past, time-traveler\"\n\t\t\t);\n\t\t}\n\n\t\treturn this.sleep(name, timestamp - now);\n\t}\n\n\tasync waitForEvent<T>(\n\t\tname: string,\n\t\toptions: {\n\t\t\ttype: string;\n\t\t\ttimeout?: string | number;\n\t\t}\n\t): Promise<WorkflowStepEvent<T>> {\n\t\tif (this.#engine.rollbackPhase === \"rollback\") {\n\t\t\tthrow new WorkflowFatalError(\n\t\t\t\t\"Cannot execute steps during rollback phase\"\n\t\t\t);\n\t\t}\n\n\t\tif (!options.timeout) {\n\t\t\toptions.timeout = \"24 hours\";\n\t\t}\n\n\t\tconst count = this.#getCount(\"waitForEvent-\" + name);\n\t\tconst waitForEventNameWithCounter = `${name}-${count}`;\n\t\tconst hash = await computeHash(waitForEventNameWithCounter);\n\t\tconst cacheKey = `${hash}-${count}`;\n\t\tconst waitForEventKey = `${cacheKey}-value`;\n\t\tconst errorKey = `${cacheKey}-error`;\n\n\t\tconst pendingWaiterRegistered = `${cacheKey}-pending`;\n\n\t\tconst timeoutError = new WorkflowTimeoutError(\n\t\t\t`Execution timed out after ${ms(options.timeout)}ms`\n\t\t) as Error & UserErrorField;\n\n\t\tconst maybeResult = await this.#state.storage.get<Event>(waitForEventKey);\n\n\t\tif (this.#engine.rollbackPhase === \"replay\") {\n\t\t\treturn maybeResult as WorkflowStepEvent<T>;\n\t\t}\n\n\t\tif (maybeResult) {\n\t\t\tconst shouldWriteLog =\n\t\t\t\t(await this.#state.storage.get(waitForEventKey)) == undefined;\n\t\t\tif (shouldWriteLog) {\n\t\t\t\tthis.#engine.writeLog(\n\t\t\t\t\tInstanceEvent.WAIT_COMPLETE,\n\t\t\t\t\tcacheKey,\n\t\t\t\t\twaitForEventNameWithCounter,\n\t\t\t\t\tmaybeResult\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn maybeResult as WorkflowStepEvent<T>;\n\t\t}\n\t\tconst maybeError: (Error & UserErrorField) | undefined =\n\t\t\t(await this.#state.storage.get(errorKey)) as Error | undefined;\n\n\t\tif (maybeError) {\n\t\t\tmaybeError.isUserError = true;\n\t\t\tthrow maybeError;\n\t\t}\n\n\t\tconst maybeRegistered = await this.#state.storage.get(\n\t\t\tpendingWaiterRegistered\n\t\t);\n\n\t\tif (!maybeRegistered) {\n\t\t\tthis.#engine.writeLog(\n\t\t\t\tInstanceEvent.WAIT_START,\n\t\t\t\tcacheKey,\n\t\t\t\twaitForEventNameWithCounter,\n\t\t\t\t{\n\t\t\t\t\tevent: options.type,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tawait this.#state.storage.put(pendingWaiterRegistered, true);\n\t\t}\n\n\t\t// if there's a timeout on the PQ we pop it, because we wont need it\n\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\tconst timeoutEntryPQ = this.#engine.priorityQueue.getFirst(\n\t\t\t(a) => a.hash === cacheKey && a.type === \"timeout\"\n\t\t);\n\t\tconst forceEventTimeout = await this.#state.storage.get(\n\t\t\t`${MODIFIER_KEYS.FORCE_EVENT_TIMEOUT}${waitForEventKey}`\n\t\t);\n\t\tif (\n\t\t\t(timeoutEntryPQ === undefined &&\n\t\t\t\tthis.#engine.priorityQueue !== undefined &&\n\t\t\t\tthis.#engine.priorityQueue.checkIfExistedInPast({\n\t\t\t\t\thash: cacheKey,\n\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t})) ||\n\t\t\t(timeoutEntryPQ !== undefined &&\n\t\t\t\ttimeoutEntryPQ.targetTimestamp < Date.now()) ||\n\t\t\tforceEventTimeout\n\t\t) {\n\t\t\tthis.#engine.writeLog(\n\t\t\t\tInstanceEvent.WAIT_TIMED_OUT,\n\t\t\t\tcacheKey,\n\t\t\t\twaitForEventNameWithCounter,\n\t\t\t\t{\n\t\t\t\t\tname: timeoutError.name,\n\t\t\t\t\tmessage: timeoutError.message,\n\t\t\t\t}\n\t\t\t);\n\t\t\tawait this.#state.storage.put(errorKey, timeoutError);\n\t\t\tthrow timeoutError;\n\t\t}\n\n\t\tconst timeoutPromise = async (timeoutToWait: number, addToPQ: boolean) => {\n\t\t\tconst priorityQueueHash = cacheKey;\n\t\t\tif (addToPQ) {\n\t\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\t\tawait this.#engine.priorityQueue.add({\n\t\t\t\t\thash: priorityQueueHash,\n\t\t\t\t\ttargetTimestamp: Date.now() + timeoutToWait,\n\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tawait scheduler.wait(timeoutToWait);\n\t\t\t// if we reach here, means that we can try to delete the timeout from the PQ\n\t\t\t// because we managed to wait in the same lifetime\n\n\t\t\t// @ts-expect-error priorityQueue is initiated in init\n\t\t\tthis.#engine.priorityQueue.remove({\n\t\t\t\thash: priorityQueueHash,\n\t\t\t\ttype: \"timeout\",\n\t\t\t});\n\t\t\t// NOTE(lduarte): marking errors as user error allows the observability layer to avoid leaking\n\t\t\t// user errors to sentry while making everything more observable. `isUserError` is not serialized\n\t\t\t// into userland code due to how workerd serialzises errors over RPC - we also set it as undefined\n\t\t\t// in the obs layer in case changes to workerd happen\n\t\t\tconst error = timeoutError;\n\t\t\terror.isUserError = true;\n\t\t\tthrow error;\n\t\t};\n\n\t\tconst eventPromise = new Promise<Event>((resolve) => {\n\t\t\t// TODO: This might need to be the name, not the event type\n\n\t\t\tconst eventTypeQueue = this.#engine.eventMap.get(options.type);\n\t\t\tif (eventTypeQueue) {\n\t\t\t\tconst event = eventTypeQueue.shift();\n\t\t\t\tif (event) {\n\t\t\t\t\tthis.#engine.eventMap.set(options.type, eventTypeQueue);\n\t\t\t\t\treturn resolve(event);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst callbacks = this.#engine.waiters.get(options.type) ?? [];\n\t\t\tcallbacks.push([cacheKey, resolve]);\n\n\t\t\tthis.#engine.waiters.set(options.type, callbacks);\n\t\t});\n\n\t\t// Race event and timeout against the pause signal.\n\t\tconst pauseSignal = this.#engine.pauseController.signal;\n\t\tconst raceResult = await raceAgainstAbort(\n\t\t\tPromise.race([\n\t\t\t\teventPromise,\n\t\t\t\ttimeoutEntryPQ !== undefined\n\t\t\t\t\t? timeoutPromise(timeoutEntryPQ.targetTimestamp - Date.now(), false)\n\t\t\t\t\t: timeoutPromise(ms(options.timeout), true),\n\t\t\t]),\n\t\t\tpauseSignal\n\t\t).catch(async (error) => {\n\t\t\tconst callbacks = this.#engine.waiters.get(options.type);\n\t\t\tif (callbacks) {\n\t\t\t\tconst idx = callbacks.findIndex(([key]) => key === cacheKey);\n\t\t\t\tif (idx !== -1) {\n\t\t\t\t\tcallbacks.splice(idx, 1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.#engine.writeLog(\n\t\t\t\tInstanceEvent.WAIT_TIMED_OUT,\n\t\t\t\tcacheKey,\n\t\t\t\twaitForEventNameWithCounter,\n\t\t\t\terror\n\t\t\t);\n\t\t\tawait this.#state.storage.put(errorKey, error);\n\t\t\tthrow error;\n\t\t});\n\n\t\t// Pause signal won the race \u2014 throw to stop the workflow\n\t\tif (raceResult.aborted) {\n\t\t\tthrow new Error(ABORT_REASONS.USER_PAUSE);\n\t\t}\n\t\tconst event = raceResult.value;\n\n\t\tthis.#engine.writeLog(\n\t\t\tInstanceEvent.WAIT_COMPLETE,\n\t\t\tcacheKey,\n\t\t\twaitForEventNameWithCounter,\n\t\t\tevent\n\t\t);\n\t\tawait this.#state.storage.put(waitForEventKey, event);\n\n\t\treturn event as WorkflowStepEvent<T>;\n\t}\n}\n", "const e=36e5,t=24*e,n={year:315576e5,month:30*t,week:7*t,day:t,hour:e,minute:6e4,second:1e3,m:1},r=e=>{if(!isNaN(+e))return+e;const[,t,r]=e.match(/^([^ ]+) +(\\w\\w*?)s?$/)||[,e];return+t*(n[r]||1)},o=(e,t=new Date)=>new Date(t.getTime()+r(e)),s=(e,{parts:t=9,join:r=\", \"}={})=>{let o,s=[];for(let[a,i]of Object.entries(n))e>=i&&t-- >0&&(e-=(o=e/i|0)*i,t||(o+=e/i),1==o&&\"m\"!=a||(a+=\"s\"),s.push(r?o+\" \"+a:[a,o]));return r?s.join(r):s},a=e=>r(e)/1e3;export{o as datePlus,s as duration,r as ms,a as seconds};\n", "import type { ResolvedStepConfig } from \"./context\";\nimport type {\n\tDatabaseInstance,\n\tDatabaseVersion,\n\tDatabaseWorkflow,\n} from \"./engine\";\nimport type { WorkflowEvent } from \"cloudflare:workers\";\n\nexport type Instance = {\n\tid: string;\n\tcreated_on: string;\n\tmodified_on: string;\n\tworkflow_id: string;\n\tversion_id: string;\n\tstatus: InstanceStatus;\n\tstarted_on: string | null;\n\tended_on: string | null;\n};\n\nexport const INSTANCE_METADATA = `INSTANCE_METADATA`;\n\nexport type InstanceMetadata = {\n\taccountId: number;\n\tworkflow: DatabaseWorkflow;\n\tversion: DatabaseVersion;\n\tinstance: DatabaseInstance;\n\tevent: WorkflowEvent<unknown>;\n};\n\nexport enum InstanceStatus {\n\tQueued = 0, // Queued and waiting to start\n\tRunning = 1,\n\tPaused = 2, // TODO (WOR-73): Implement pause\n\tErrored = 3, // Stopped due to a user or system Error\n\tTerminated = 4, // Stopped explicitly by user\n\tComplete = 5, // Successful completion\n\tWaitingForPause = 6,\n\tWaiting = 7,\n}\n\nexport function instanceStatusName(status: InstanceStatus) {\n\tswitch (status) {\n\t\tcase InstanceStatus.Queued:\n\t\t\treturn \"queued\";\n\t\tcase InstanceStatus.Running:\n\t\t\treturn \"running\";\n\t\tcase InstanceStatus.Paused:\n\t\t\treturn \"paused\";\n\t\tcase InstanceStatus.Errored:\n\t\t\treturn \"errored\";\n\t\tcase InstanceStatus.Terminated:\n\t\t\treturn \"terminated\";\n\t\tcase InstanceStatus.Complete:\n\t\t\treturn \"complete\";\n\t\tcase InstanceStatus.WaitingForPause:\n\t\t\treturn \"waitingForPause\";\n\t\tcase InstanceStatus.Waiting:\n\t\t\treturn \"waiting\";\n\t\tdefault:\n\t\t\treturn \"unknown\";\n\t}\n}\n\nexport const instanceStatusNames = [\n\t\"queued\",\n\t\"running\",\n\t\"paused\",\n\t\"errored\",\n\t\"terminated\",\n\t\"complete\",\n\t\"waitingForPause\",\n\t\"waiting\",\n\t\"unknown\",\n] as const;\n\nexport function toInstanceStatus(status: string): InstanceStatus {\n\tswitch (status) {\n\t\tcase \"queued\":\n\t\t\treturn InstanceStatus.Queued;\n\t\tcase \"running\":\n\t\t\treturn InstanceStatus.Running;\n\t\tcase \"paused\":\n\t\t\treturn InstanceStatus.Paused;\n\t\tcase \"errored\":\n\t\t\treturn InstanceStatus.Errored;\n\t\tcase \"terminated\":\n\t\t\treturn InstanceStatus.Terminated;\n\t\tcase \"complete\":\n\t\t\treturn InstanceStatus.Complete;\n\t\tcase \"waitingForPause\":\n\t\t\treturn InstanceStatus.WaitingForPause;\n\t\tcase \"waiting\":\n\t\t\treturn InstanceStatus.Waiting;\n\t\tcase \"unknown\":\n\t\t\tthrow new Error(\"unknown cannot be parsed into a InstanceStatus\");\n\t\tdefault:\n\t\t\tthrow new Error(\n\t\t\t\t`${status} was not handled because it's not a valid InstanceStatus`\n\t\t\t);\n\t}\n}\n\nexport const enum InstanceEvent {\n\tWORKFLOW_QUEUED = 0,\n\tWORKFLOW_START = 1,\n\tWORKFLOW_SUCCESS = 2,\n\tWORKFLOW_FAILURE = 3,\n\tWORKFLOW_TERMINATED = 4,\n\n\tSTEP_START = 5,\n\tSTEP_SUCCESS = 6,\n\tSTEP_FAILURE = 7,\n\n\tSLEEP_START = 8,\n\tSLEEP_COMPLETE = 9,\n\n\tATTEMPT_START = 10,\n\tATTEMPT_SUCCESS = 11,\n\tATTEMPT_FAILURE = 12,\n\n\t// It's here just to make it sequential and to not have gaps in the event types.\n\t__INTERNAL_PROD = 13,\n\n\tWAIT_START = 14,\n\tWAIT_COMPLETE = 15,\n\tWAIT_TIMED_OUT = 16,\n\n\tROLLBACK_START = 17,\n\tROLLBACK_STEP_START = 18,\n\tROLLBACK_ATTEMPT_START = 19,\n\tROLLBACK_ATTEMPT_SUCCESS = 20,\n\tROLLBACK_ATTEMPT_FAILURE = 21,\n\tROLLBACK_STEP_SUCCESS = 22,\n\tROLLBACK_STEP_FAILURE = 23,\n\tROLLBACK_COMPLETE = 24,\n\tROLLBACK_FAILED = 25,\n}\n\nexport const enum InstanceTrigger {\n\tAPI = 0,\n\tBINDING = 1,\n\tEVENT = 2,\n\tCRON = 3,\n}\n\nexport function instanceTriggerName(trigger: InstanceTrigger) {\n\tswitch (trigger) {\n\t\tcase InstanceTrigger.API:\n\t\t\treturn \"api\";\n\t\tcase InstanceTrigger.BINDING:\n\t\t\treturn \"binding\";\n\t\tcase InstanceTrigger.EVENT:\n\t\t\treturn \"event\";\n\t\tcase InstanceTrigger.CRON:\n\t\t\treturn \"cron\";\n\t\tdefault:\n\t\t\treturn \"unknown\";\n\t}\n}\n\nexport type RawInstanceLog = {\n\tid: number;\n\ttimestamp: string;\n\tevent: InstanceEvent;\n\tgroupKey: string | null;\n\ttarget: string | null;\n\tmetadata: string;\n};\n\nexport type InstanceAttempt = {\n\tstart: string;\n\tend: string | null;\n\tsuccess: boolean | null;\n\terror: { name: string; message: string } | null;\n};\n\nexport type InstanceStepLog = {\n\tname: string;\n\tstart: string;\n\tend: string | null;\n\tattempts: InstanceAttempt[];\n\tconfig: ResolvedStepConfig;\n\toutput: unknown;\n\tsuccess: boolean | null;\n\ttype: \"step\";\n};\n\nexport type InstanceSleepLog = {\n\tname: string;\n\tstart: string;\n\tend: string;\n\tfinished: boolean;\n\ttype: \"sleep\";\n};\n\nexport type InstanceTerminateLog = {\n\ttype: \"termination\";\n\ttrigger: {\n\t\tsource: string;\n\t};\n};\n\nexport type InstanceLogsResponse = {\n\tparams: Record<string, unknown>;\n\ttrigger: {\n\t\tsource: ReturnType<typeof instanceTriggerName>;\n\t};\n\tversionId: string;\n\tqueued: string;\n\tstart: string | null;\n\tend: string | null;\n\tsteps: (InstanceStepLog | InstanceSleepLog | InstanceTerminateLog)[];\n\tsuccess: boolean | null;\n\terror: { name: string; message: string } | null;\n\toutput: Rpc.Serializable<unknown>;\n};\n\nexport type WakerPriorityEntry = {\n\thash: string;\n\ttype: WakerPriorityType;\n\ttargetTimestamp: number;\n};\n\nexport type WakerPriorityType = \"sleep\" | \"retry\" | \"timeout\";\n", "export async function computeHash(value: string) {\n\tconst msgUint8 = new TextEncoder().encode(value); // encode as (utf-8) Uint8Array\n\tconst hashBuffer = await crypto.subtle.digest(\"SHA-1\", msgUint8); // hash the message\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array\n\tconst hashHex = hashArray\n\t\t.map((b) => b.toString(16).padStart(2, \"0\"))\n\t\t.join(\"\"); // convert bytes to hex string\n\n\treturn hashHex;\n}\n", "import { ms } from \"itty-time\";\nimport type { ResolvedStepConfig, StepState } from \"../context\";\nimport type { WorkflowSleepDuration } from \"cloudflare:workers\";\n\nexport class DelayFunctionError extends Error {\n\tconstructor(reason: string) {\n\t\tsuper(reason);\n\t\tthis.name = \"DelayFunctionError\";\n\t}\n}\n\nexport function calcRetryDuration(\n\tconfig: ResolvedStepConfig,\n\tstepState: StepState,\n\tdelayValue: unknown\n): number {\n\tconst { attemptedCount: attemptCount } = stepState;\n\tconst { retries } = config;\n\n\tlet base: number;\n\ttry {\n\t\tbase = ms(delayValue as WorkflowSleepDuration);\n\t} catch {\n\t\tthrow new DelayFunctionError(\n\t\t\t'returned an invalid delay value (expected a number of ms or a duration string like \"30 seconds\")'\n\t\t);\n\t}\n\tif (!Number.isFinite(base) || base < 0) {\n\t\tthrow new DelayFunctionError(\n\t\t\t'returned an invalid delay value (expected a number of ms or a duration string like \"30 seconds\")'\n\t\t);\n\t}\n\n\tswitch (retries.backoff) {\n\t\tcase \"exponential\": {\n\t\t\treturn base * Math.pow(2, attemptCount - 1);\n\t\t}\n\t\tcase \"linear\": {\n\t\t\treturn base * attemptCount;\n\t\t}\n\t\tcase \"constant\":\n\t\tdefault: {\n\t\t\treturn base;\n\t\t}\n\t}\n}\n", "import { ms } from \"itty-time\";\nimport { DelayFunctionError } from \"./retries\";\nimport type {\n\tWorkflowDelayDuration,\n\tWorkflowDelayFunction,\n\tWorkflowDynamicDelayContext,\n} from \"cloudflare:workers\";\n\nexport const DEFAULT_RETRY_DELAY_MS = 1000;\n\nexport const DELAY_FUNCTION_TIMEOUT_MS = ms(\"5 seconds\");\n\ntype DelayLogger = {\n\twarn(...msgs: unknown[]): void;\n\tdebug(...msgs: unknown[]): void;\n};\n\ntype Waiter = (ms: number, opts?: { signal?: AbortSignal }) => Promise<void>;\n\ntype AbortRaceResult<T> = { aborted: true } | { aborted: false; value: T };\n\nexport async function raceAgainstAbort<T>(\n\tpromise: Promise<T>,\n\tsignal: AbortSignal\n): Promise<AbortRaceResult<T>> {\n\tconst resultPromise = promise.then(\n\t\t(value): AbortRaceResult<T> => ({\n\t\t\taborted: false,\n\t\t\tvalue,\n\t\t})\n\t);\n\tif (signal.aborted) {\n\t\t// Observe a later rejection from the losing promise so it doesn't become\n\t\t// an unhandled rejection after returning the already-aborted result.\n\t\tvoid resultPromise.catch(() => undefined);\n\t\treturn { aborted: true };\n\t}\n\n\tlet resolveAbort: ((result: AbortRaceResult<T>) => void) | undefined;\n\tconst abortPromise = new Promise<AbortRaceResult<T>>((resolve) => {\n\t\tresolveAbort = resolve;\n\t});\n\tconst onAbort = (): void => resolveAbort?.({ aborted: true });\n\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\n\ttry {\n\t\treturn await Promise.race([resultPromise, abortPromise]);\n\t} finally {\n\t\tsignal.removeEventListener(\"abort\", onAbort);\n\t}\n}\n\nexport async function invokeDelayFunction(\n\tdelay: WorkflowDelayFunction,\n\tinput: WorkflowDynamicDelayContext,\n\toptions: {\n\t\ttimeoutMs: number;\n\t\twait: Waiter;\n\t\tsignal?: AbortSignal;\n\t\tlogger?: DelayLogger;\n\t}\n): Promise<WorkflowDelayDuration> {\n\tconst { wait, signal, logger } = options;\n\tconst logFields = { step: input.ctx.step.name, attempt: input.ctx.attempt };\n\n\tconst settled = new AbortController();\n\tconst timeoutSignal = signal\n\t\t? AbortSignal.any([signal, settled.signal])\n\t\t: settled.signal;\n\n\ttype Raced =\n\t\t| { timedOut: true }\n\t\t| { timedOut: false; value: WorkflowDelayDuration };\n\n\ttry {\n\t\tconst result = await Promise.race<Raced>([\n\t\t\tPromise.resolve(delay(input)).then((value) => ({\n\t\t\t\ttimedOut: false,\n\t\t\t\tvalue,\n\t\t\t})),\n\t\t\twait(options.timeoutMs, { signal: timeoutSignal })\n\t\t\t\t.then((): Raced => ({ timedOut: true }))\n\t\t\t\t.catch((): Raced => ({ timedOut: true })),\n\t\t]);\n\t\tif (result.timedOut) {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tlogger?.debug(\n\t\t\t\t\t\"delay function aborted by engine shutdown; using default delay\",\n\t\t\t\t\tlogFields\n\t\t\t\t);\n\t\t\t\treturn DEFAULT_RETRY_DELAY_MS;\n\t\t\t}\n\t\t\tlogger?.warn(\n\t\t\t\t`delay function did not resolve within ${options.timeoutMs}ms`,\n\t\t\t\tlogFields\n\t\t\t);\n\t\t\tthrow new DelayFunctionError(\n\t\t\t\t`did not return within ${options.timeoutMs / 1000} seconds`\n\t\t\t);\n\t\t}\n\t\treturn result.value;\n\t} catch (e) {\n\t\tif (e instanceof DelayFunctionError) {\n\t\t\tthrow e;\n\t\t}\n\t\tconst message = e instanceof Error ? e.message : String(e);\n\t\tlogger?.warn(\"delay function threw\", { ...logFields, error: message });\n\t\tthrow new DelayFunctionError(`threw an error: ${message}`);\n\t} finally {\n\t\tsettled.abort();\n\t}\n}\n", "export class WorkflowTimeoutError extends Error {\n\tname = \"WorkflowTimeoutError\";\n}\n\nexport class WorkflowInternalError extends Error {\n\tname = \"WorkflowInternalError\";\n}\n\nexport class WorkflowFatalError extends Error {\n\tname = \"WorkflowFatalError\";\n\n\ttoJSON() {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tmessage: this.message,\n\t\t};\n\t}\n}\n\nexport class NonRetryableDelayError extends WorkflowFatalError {\n\tname = \"NonRetryableDelayError\";\n}\n\nexport class PreservedNonRetryableError extends WorkflowFatalError {\n\tname = \"NonRetryableError\";\n\n\tconstructor(err: Error) {\n\t\t// When the error crosses an RPC boundary, the name gets\n\t\t// prepended to the message (e.g. \"NonRetryableError: msg\",\n\t\t// or just \"NonRetryableError\" if the original message was empty).\n\t\t// Parse it back out so we surface the original message.\n\t\tconst message =\n\t\t\terr.name === \"NonRetryableError\"\n\t\t\t\t? err.message\n\t\t\t\t: err.message.replace(/^NonRetryableError:?\\s*/, \"\");\n\t\tsuper(message);\n\t}\n}\n\nexport class WorkflowError extends Error {\n\tname = \"WorkflowError\";\n}\n\nexport class InvalidStepReadableStreamError extends Error {\n\tname = \"InvalidStepReadableStreamError\";\n}\n\nexport class OversizedStreamChunkError extends Error {\n\tname = \"OversizedStreamChunkError\";\n}\n\nexport class UnsupportedStreamChunkError extends Error {\n\tname = \"UnsupportedStreamChunkError\";\n}\n\nexport class StreamOutputStorageLimitError extends Error {\n\tname = \"StreamOutputStorageLimitError\";\n}\n\nexport function createWorkflowError(\n\tmessage: string,\n\terrorCode: string\n): WorkflowError {\n\treturn new WorkflowError(`(${errorCode}) ${message}`);\n}\n\nconst ABORT_PREFIX = \"Aborting engine:\" as const;\n\nexport const ABORT_REASONS = {\n\tUSER_PAUSE: `${ABORT_PREFIX} User called pause`,\n\tUSER_RESTART: `${ABORT_PREFIX} User called restart`,\n\tUSER_TERMINATE: `${ABORT_PREFIX} User called terminate`,\n\tNON_RETRYABLE_ERROR: `${ABORT_PREFIX} A step threw a NonRetryableError`,\n\tNOT_SERIALISABLE: `${ABORT_PREFIX} Value is not serialisable`,\n\tSTORAGE_LIMIT_EXCEEDED: `${ABORT_PREFIX} Storage limit exceeded`,\n\tGRACE_PERIOD_COMPLETE: `${ABORT_PREFIX} Grace period complete`,\n} as const;\n\nconst ABORT_REASON_SET: ReadonlySet<string> = new Set(\n\tObject.values(ABORT_REASONS)\n);\n\nfunction getErrorMessage(e: unknown): string | undefined {\n\tif (e instanceof Error) {\n\t\treturn e.message;\n\t}\n\tif (typeof e === \"object\" && e !== null) {\n\t\tconst msg = (e as { message?: string }).message;\n\t\tif (typeof msg === \"string\") {\n\t\t\treturn msg;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function isAbortError(e: unknown): boolean {\n\tconst msg = getErrorMessage(e);\n\treturn msg !== undefined && ABORT_REASON_SET.has(msg);\n}\n\nexport function isUserTriggeredPause(e: unknown): boolean {\n\treturn getErrorMessage(e) === ABORT_REASONS.USER_PAUSE;\n}\n\nexport function isUserTriggeredRestart(e: unknown): boolean {\n\treturn getErrorMessage(e) === ABORT_REASONS.USER_RESTART;\n}\n\nexport function isUserTriggeredTerminate(e: unknown): boolean {\n\treturn getErrorMessage(e) === ABORT_REASONS.USER_TERMINATE;\n}\n\nfunction getCompatFlag(name: string): boolean {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- safe globalThis access for environments where cloudflare global may not exist\n\treturn (globalThis as any).Cloudflare?.compatibilityFlags?.[name] ?? false;\n}\n\nexport function shouldPreserveNonRetryableError(): boolean {\n\treturn getCompatFlag(\"workflows_preserve_non_retryable_error_message\");\n}\n\nexport function stepNotFoundError(name: string): WorkflowError {\n\treturn createWorkflowError(\n\t\t`Step \"${name}\" not found in execution history`,\n\t\t\"instance.cannot_restart\"\n\t);\n}\n", "export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport { toJSONSchema } from \"../core/json-schema-processors.js\";\nexport { fromJSONSchema } from \"./from-json-schema.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n", "export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport { toJSONSchema } from \"./json-schema-processors.js\";\nexport { JSONSchemaGenerator } from \"./json-schema-generator.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n", "var _a;\n/** A special constant with type `never` */\nexport const NEVER = /*@__PURE__*/ Object.freeze({\n    status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n    function init(inst, def) {\n        if (!inst._zod) {\n            Object.defineProperty(inst, \"_zod\", {\n                value: {\n                    def,\n                    constr: _,\n                    traits: new Set(),\n                },\n                enumerable: false,\n            });\n        }\n        if (inst._zod.traits.has(name)) {\n            return;\n        }\n        inst._zod.traits.add(name);\n        initializer(inst, def);\n        // support prototype modifications\n        const proto = _.prototype;\n        const keys = Object.keys(proto);\n        for (let i = 0; i < keys.length; i++) {\n            const k = keys[i];\n            if (!(k in inst)) {\n                inst[k] = proto[k].bind(inst);\n            }\n        }\n    }\n    // doesn't work if Parent has a constructor with arguments\n    const Parent = params?.Parent ?? Object;\n    class Definition extends Parent {\n    }\n    Object.defineProperty(Definition, \"name\", { value: name });\n    function _(def) {\n        var _a;\n        const inst = params?.Parent ? new Definition() : this;\n        init(inst, def);\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        for (const fn of inst._zod.deferred) {\n            fn();\n        }\n        return inst;\n    }\n    Object.defineProperty(_, \"init\", { value: init });\n    Object.defineProperty(_, Symbol.hasInstance, {\n        value: (inst) => {\n            if (params?.Parent && inst instanceof params.Parent)\n                return true;\n            return inst?._zod?.traits?.has(name);\n        },\n    });\n    Object.defineProperty(_, \"name\", { value: name });\n    return _;\n}\n//////////////////////////////   UTILITIES   ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n    constructor() {\n        super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n    }\n}\nexport class $ZodEncodeError extends Error {\n    constructor(name) {\n        super(`Encountered unidirectional transform during encode: ${name}`);\n        this.name = \"ZodEncodeError\";\n    }\n}\n(_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});\nexport const globalConfig = globalThis.__zod_globalConfig;\nexport function config(newConfig) {\n    if (newConfig)\n        Object.assign(globalConfig, newConfig);\n    return globalConfig;\n}\n", "import { globalConfig } from \"./core.js\";\n// functions\nexport function assertEqual(val) {\n    return val;\n}\nexport function assertNotEqual(val) {\n    return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n    throw new Error(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n    const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n    const values = Object.entries(entries)\n        .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n        .map(([_, v]) => v);\n    return values;\n}\nexport function joinValues(array, separator = \"|\") {\n    return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n    if (typeof value === \"bigint\")\n        return value.toString();\n    return value;\n}\nexport function cached(getter) {\n    const set = false;\n    return {\n        get value() {\n            if (!set) {\n                const value = getter();\n                Object.defineProperty(this, \"value\", { value });\n                return value;\n            }\n            throw new Error(\"cached value already set\");\n        },\n    };\n}\nexport function nullish(input) {\n    return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n    const start = source.startsWith(\"^\") ? 1 : 0;\n    const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n    return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n    const ratio = val / step;\n    const roundedRatio = Math.round(ratio);\n    // Use a relative epsilon scaled to the magnitude of the result\n    const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1);\n    if (Math.abs(ratio - roundedRatio) < tolerance)\n        return 0;\n    return ratio - roundedRatio;\n}\nconst EVALUATING = /* @__PURE__*/ Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n    let value = undefined;\n    Object.defineProperty(object, key, {\n        get() {\n            if (value === EVALUATING) {\n                // Circular reference detected, return undefined to break the cycle\n                return undefined;\n            }\n            if (value === undefined) {\n                value = EVALUATING;\n                value = getter();\n            }\n            return value;\n        },\n        set(v) {\n            Object.defineProperty(object, key, {\n                value: v,\n                // configurable: true,\n            });\n            // object[key] = v;\n        },\n        configurable: true,\n    });\n}\nexport function objectClone(obj) {\n    return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n    Object.defineProperty(target, prop, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true,\n    });\n}\nexport function mergeDefs(...defs) {\n    const mergedDescriptors = {};\n    for (const def of defs) {\n        const descriptors = Object.getOwnPropertyDescriptors(def);\n        Object.assign(mergedDescriptors, descriptors);\n    }\n    return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n    return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n    if (!path)\n        return obj;\n    return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n    const keys = Object.keys(promisesObj);\n    const promises = keys.map((key) => promisesObj[key]);\n    return Promise.all(promises).then((results) => {\n        const resolvedObj = {};\n        for (let i = 0; i < keys.length; i++) {\n            resolvedObj[keys[i]] = results[i];\n        }\n        return resolvedObj;\n    });\n}\nexport function randomString(length = 10) {\n    const chars = \"abcdefghijklmnopqrstuvwxyz\";\n    let str = \"\";\n    for (let i = 0; i < length; i++) {\n        str += chars[Math.floor(Math.random() * chars.length)];\n    }\n    return str;\n}\nexport function esc(str) {\n    return JSON.stringify(str);\n}\nexport function slugify(input) {\n    return input\n        .toLowerCase()\n        .trim()\n        .replace(/[^\\w\\s-]/g, \"\")\n        .replace(/[\\s_-]+/g, \"-\")\n        .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n    return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = /* @__PURE__*/ cached(() => {\n    // Skip the probe under `jitless`: strict CSPs report the caught `new Function`\n    // as a `securitypolicyviolation` even though the throw is swallowed.\n    if (globalConfig.jitless) {\n        return false;\n    }\n    // @ts-ignore\n    if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n        return false;\n    }\n    try {\n        const F = Function;\n        new F(\"\");\n        return true;\n    }\n    catch (_) {\n        return false;\n    }\n});\nexport function isPlainObject(o) {\n    if (isObject(o) === false)\n        return false;\n    // modified constructor\n    const ctor = o.constructor;\n    if (ctor === undefined)\n        return true;\n    if (typeof ctor !== \"function\")\n        return true;\n    // modified prototype\n    const prot = ctor.prototype;\n    if (isObject(prot) === false)\n        return false;\n    // ctor doesn't have static `isPrototypeOf`\n    if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n        return false;\n    }\n    return true;\n}\nexport function shallowClone(o) {\n    if (isPlainObject(o))\n        return { ...o };\n    if (Array.isArray(o))\n        return [...o];\n    if (o instanceof Map)\n        return new Map(o);\n    if (o instanceof Set)\n        return new Set(o);\n    return o;\n}\nexport function numKeys(data) {\n    let keyCount = 0;\n    for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n            keyCount++;\n        }\n    }\n    return keyCount;\n}\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return \"undefined\";\n        case \"string\":\n            return \"string\";\n        case \"number\":\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        case \"boolean\":\n            return \"boolean\";\n        case \"function\":\n            return \"function\";\n        case \"bigint\":\n            return \"bigint\";\n        case \"symbol\":\n            return \"symbol\";\n        case \"object\":\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return \"promise\";\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return \"map\";\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return \"set\";\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return \"date\";\n            }\n            // @ts-ignore\n            if (typeof File !== \"undefined\" && data instanceof File) {\n                return \"file\";\n            }\n            return \"object\";\n        default:\n            throw new Error(`Unknown data type: ${t}`);\n    }\n};\nexport const propertyKeyTypes = /* @__PURE__*/ new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = /* @__PURE__*/ new Set([\n    \"string\",\n    \"number\",\n    \"bigint\",\n    \"boolean\",\n    \"symbol\",\n    \"undefined\",\n]);\nexport function escapeRegex(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n    const cl = new inst._zod.constr(def ?? inst._zod.def);\n    if (!def || params?.parent)\n        cl._zod.parent = inst;\n    return cl;\n}\nexport function normalizeParams(_params) {\n    const params = _params;\n    if (!params)\n        return {};\n    if (typeof params === \"string\")\n        return { error: () => params };\n    if (params?.message !== undefined) {\n        if (params?.error !== undefined)\n            throw new Error(\"Cannot specify both `message` and `error` params\");\n        params.error = params.message;\n    }\n    delete params.message;\n    if (typeof params.error === \"string\")\n        return { ...params, error: () => params.error };\n    return params;\n}\nexport function createTransparentProxy(getter) {\n    let target;\n    return new Proxy({}, {\n        get(_, prop, receiver) {\n            target ?? (target = getter());\n            return Reflect.get(target, prop, receiver);\n        },\n        set(_, prop, value, receiver) {\n            target ?? (target = getter());\n            return Reflect.set(target, prop, value, receiver);\n        },\n        has(_, prop) {\n            target ?? (target = getter());\n            return Reflect.has(target, prop);\n        },\n        deleteProperty(_, prop) {\n            target ?? (target = getter());\n            return Reflect.deleteProperty(target, prop);\n        },\n        ownKeys(_) {\n            target ?? (target = getter());\n            return Reflect.ownKeys(target);\n        },\n        getOwnPropertyDescriptor(_, prop) {\n            target ?? (target = getter());\n            return Reflect.getOwnPropertyDescriptor(target, prop);\n        },\n        defineProperty(_, prop, descriptor) {\n            target ?? (target = getter());\n            return Reflect.defineProperty(target, prop, descriptor);\n        },\n    });\n}\nexport function stringifyPrimitive(value) {\n    if (typeof value === \"bigint\")\n        return value.toString() + \"n\";\n    if (typeof value === \"string\")\n        return `\"${value}\"`;\n    return `${value}`;\n}\nexport function optionalKeys(shape) {\n    return Object.keys(shape).filter((k) => {\n        return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n    });\n}\nexport const NUMBER_FORMAT_RANGES = {\n    safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n    int32: [-2147483648, 2147483647],\n    uint32: [0, 4294967295],\n    float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n    float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n    int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n    uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n    const currDef = schema._zod.def;\n    const checks = currDef.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = {};\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                newShape[key] = currDef.shape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function omit(schema, mask) {\n    const currDef = schema._zod.def;\n    const checks = currDef.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = { ...schema._zod.def.shape };\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                delete newShape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function extend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to extend: expected a plain object\");\n    }\n    const checks = schema._zod.def.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        // Only throw if new shape overlaps with existing shape\n        // Use getOwnPropertyDescriptor to check key existence without accessing values\n        const existingShape = schema._zod.def.shape;\n        for (const key in shape) {\n            if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n                throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n            }\n        }\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n    });\n    return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n    });\n    return clone(schema, def);\n}\nexport function merge(a, b) {\n    if (a._zod.def.checks?.length) {\n        throw new Error(\".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.\");\n    }\n    const def = mergeDefs(a._zod.def, {\n        get shape() {\n            const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        get catchall() {\n            return b._zod.def.catchall;\n        },\n        checks: b._zod.def.checks ?? [],\n    });\n    return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n    const currDef = schema._zod.def;\n    const checks = currDef.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\".partial() cannot be used on object schemas containing refinements\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in oldShape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in shape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n    });\n    return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n    if (x.aborted === true)\n        return true;\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue !== true) {\n            return true;\n        }\n    }\n    return false;\n}\n// Checks for explicit abort (continue === false), as opposed to implicit abort (continue === undefined).\n// Used to respect `abort: true` in .refine() even for checks that have a `when` function.\nexport function explicitlyAborted(x, startIndex = 0) {\n    if (x.aborted === true)\n        return true;\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue === false) {\n            return true;\n        }\n    }\n    return false;\n}\nexport function prefixIssues(path, issues) {\n    return issues.map((iss) => {\n        var _a;\n        (_a = iss).path ?? (_a.path = []);\n        iss.path.unshift(path);\n        return iss;\n    });\n}\nexport function unwrapMessage(message) {\n    return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n    const message = iss.message\n        ? iss.message\n        : (unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n            unwrapMessage(ctx?.error?.(iss)) ??\n            unwrapMessage(config.customError?.(iss)) ??\n            unwrapMessage(config.localeError?.(iss)) ??\n            \"Invalid input\");\n    const { inst: _inst, continue: _continue, input: _input, ...rest } = iss;\n    rest.path ?? (rest.path = []);\n    rest.message = message;\n    if (ctx?.reportInput) {\n        rest.input = _input;\n    }\n    return rest;\n}\nexport function getSizableOrigin(input) {\n    if (input instanceof Set)\n        return \"set\";\n    if (input instanceof Map)\n        return \"map\";\n    // @ts-ignore\n    if (input instanceof File)\n        return \"file\";\n    return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n    if (Array.isArray(input))\n        return \"array\";\n    if (typeof input === \"string\")\n        return \"string\";\n    return \"unknown\";\n}\nexport function parsedType(data) {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        }\n        case \"object\": {\n            if (data === null) {\n                return \"null\";\n            }\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            const obj = data;\n            if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n                return obj.constructor.name;\n            }\n        }\n    }\n    return t;\n}\nexport function issue(...args) {\n    const [iss, input, inst] = args;\n    if (typeof iss === \"string\") {\n        return {\n            message: iss,\n            code: \"custom\",\n            input,\n            inst,\n        };\n    }\n    return { ...iss };\n}\nexport function cleanEnum(obj) {\n    return Object.entries(obj)\n        .filter(([k, _]) => {\n        // return true if NaN, meaning it's not a number, thus a string key\n        return Number.isNaN(Number.parseInt(k, 10));\n    })\n        .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n    const binaryString = atob(base64);\n    const bytes = new Uint8Array(binaryString.length);\n    for (let i = 0; i < binaryString.length; i++) {\n        bytes[i] = binaryString.charCodeAt(i);\n    }\n    return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n    let binaryString = \"\";\n    for (let i = 0; i < bytes.length; i++) {\n        binaryString += String.fromCharCode(bytes[i]);\n    }\n    return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n    const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n    return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n    return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n    const cleanHex = hex.replace(/^0x/, \"\");\n    if (cleanHex.length % 2 !== 0) {\n        throw new Error(\"Invalid hex string length\");\n    }\n    const bytes = new Uint8Array(cleanHex.length / 2);\n    for (let i = 0; i < cleanHex.length; i += 2) {\n        bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n    }\n    return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n    return Array.from(bytes)\n        .map((b) => b.toString(16).padStart(2, \"0\"))\n        .join(\"\");\n}\n// instanceof\nexport class Class {\n    constructor(..._args) { }\n}\n", "import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n    inst.name = \"$ZodError\";\n    Object.defineProperty(inst, \"_zod\", {\n        value: inst._zod,\n        enumerable: false,\n    });\n    Object.defineProperty(inst, \"issues\", {\n        value: def,\n        enumerable: false,\n    });\n    inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n    Object.defineProperty(inst, \"toString\", {\n        value: () => inst.message,\n        enumerable: false,\n    });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = {};\n    const formErrors = [];\n    for (const sub of error.issues) {\n        if (sub.path.length > 0) {\n            fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n            fieldErrors[sub.path[0]].push(mapper(sub));\n        }\n        else {\n            formErrors.push(mapper(sub));\n        }\n    }\n    return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = { _errors: [] };\n    const processError = (error, path = []) => {\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    fieldErrors._errors.push(mapper(issue));\n                }\n                else {\n                    let curr = fieldErrors;\n                    let i = 0;\n                    while (i < fullpath.length) {\n                        const el = fullpath[i];\n                        const terminal = i === fullpath.length - 1;\n                        if (!terminal) {\n                            curr[el] = curr[el] || { _errors: [] };\n                        }\n                        else {\n                            curr[el] = curr[el] || { _errors: [] };\n                            curr[el]._errors.push(mapper(issue));\n                        }\n                        curr = curr[el];\n                        i++;\n                    }\n                }\n            }\n        }\n    };\n    processError(error);\n    return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n    const result = { errors: [] };\n    const processError = (error, path = []) => {\n        var _a, _b;\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                // regular union error\n                issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    result.errors.push(mapper(issue));\n                    continue;\n                }\n                let curr = result;\n                let i = 0;\n                while (i < fullpath.length) {\n                    const el = fullpath[i];\n                    const terminal = i === fullpath.length - 1;\n                    if (typeof el === \"string\") {\n                        curr.properties ?? (curr.properties = {});\n                        (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n                        curr = curr.properties[el];\n                    }\n                    else {\n                        curr.items ?? (curr.items = []);\n                        (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n                        curr = curr.items[el];\n                    }\n                    if (terminal) {\n                        curr.errors.push(mapper(issue));\n                    }\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n *   issues: [\n *     {\n *       expected: 'string',\n *       code: 'invalid_type',\n *       path: [ 'username' ],\n *       message: 'Invalid input: expected string'\n *     },\n *     {\n *       expected: 'number',\n *       code: 'invalid_type',\n *       path: [ 'favoriteNumbers', 1 ],\n *       message: 'Invalid input: expected number'\n *     }\n *   ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n *   \u2716 Expected number, received string at \"username\n * favoriteNumbers[0]\n *   \u2716 Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n    const segs = [];\n    const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n    for (const seg of path) {\n        if (typeof seg === \"number\")\n            segs.push(`[${seg}]`);\n        else if (typeof seg === \"symbol\")\n            segs.push(`[${JSON.stringify(String(seg))}]`);\n        else if (/[^\\w$]/.test(seg))\n            segs.push(`[${JSON.stringify(seg)}]`);\n        else {\n            if (segs.length)\n                segs.push(\".\");\n            segs.push(seg);\n        }\n    }\n    return segs.join(\"\");\n}\nexport function prettifyError(error) {\n    const lines = [];\n    // sort by path length\n    const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n    // Process each issue\n    for (const issue of issues) {\n        lines.push(`\u2716 ${issue.message}`);\n        if (issue.path?.length)\n            lines.push(`  \u2192 at ${toDotPath(issue.path)}`);\n    }\n    // Convert Map to formatted string\n    return lines.join(\"\\n\");\n}\n", "import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    if (result.issues.length) {\n        const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, _params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n    const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    if (result.issues.length) {\n        const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length\n        ? {\n            success: false,\n            error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length\n        ? {\n            success: false,\n            error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n    return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n    return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n    return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n    return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n    return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n    return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n", "import * as util from \"./util.js\";\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const cuid = /^[cC][0-9a-z]{6,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n    if (!version)\n        return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n    return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n    return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const mac = (delimiter) => {\n    const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n    return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\nexport const httpProtocol = /^https?$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\n// E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15\nexport const e164 = /^\\+[1-9]\\d{6,14}$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n    const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n    const regex = typeof args.precision === \"number\"\n        ? args.precision === -1\n            ? `${hhmm}`\n            : args.precision === 0\n                ? `${hhmm}:[0-5]\\\\d`\n                : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n        : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n    return regex;\n}\nexport function time(args) {\n    return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n    const time = timeSource({ precision: args.precision });\n    const opts = [\"Z\"];\n    if (args.local)\n        opts.push(\"\");\n    // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n    if (args.offset)\n        opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n    const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n    return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n    const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n    return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?$/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n    return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n    return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n", "// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n    var _a;\n    inst._zod ?? (inst._zod = {});\n    inst._zod.def = def;\n    (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n    number: \"number\",\n    bigint: \"bigint\",\n    object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n        if (def.value < curr) {\n            if (def.inclusive)\n                bag.maximum = def.value;\n            else\n                bag.exclusiveMaximum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n        if (def.value > curr) {\n            if (def.inclusive)\n                bag.minimum = def.value;\n            else\n                bag.exclusiveMinimum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        var _a;\n        (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n    });\n    inst._zod.check = (payload) => {\n        if (typeof payload.value !== typeof def.value)\n            throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n        const isMultiple = typeof payload.value === \"bigint\"\n            ? payload.value % def.value === BigInt(0)\n            : util.floatSafeRemainder(payload.value, def.value) === 0;\n        if (isMultiple)\n            return;\n        payload.issues.push({\n            origin: typeof payload.value,\n            code: \"not_multiple_of\",\n            divisor: def.value,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    def.format = def.format || \"float64\";\n    const isInt = def.format?.includes(\"int\");\n    const origin = isInt ? \"int\" : \"number\";\n    const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n        if (isInt)\n            bag.pattern = regexes.integer;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (isInt) {\n            if (!Number.isInteger(input)) {\n                // invalid_format issue\n                // payload.issues.push({\n                //   expected: def.format,\n                //   format: def.format,\n                //   code: \"invalid_format\",\n                //   input,\n                //   inst,\n                // });\n                // invalid_type issue\n                payload.issues.push({\n                    expected: origin,\n                    format: def.format,\n                    code: \"invalid_type\",\n                    continue: false,\n                    input,\n                    inst,\n                });\n                return;\n                // not_multiple_of issue\n                // payload.issues.push({\n                //   code: \"not_multiple_of\",\n                //   origin: \"number\",\n                //   input,\n                //   inst,\n                //   divisor: 1,\n                // });\n            }\n            if (!Number.isSafeInteger(input)) {\n                if (input > 0) {\n                    // too_big\n                    payload.issues.push({\n                        input,\n                        code: \"too_big\",\n                        maximum: Number.MAX_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        inclusive: true,\n                        continue: !def.abort,\n                    });\n                }\n                else {\n                    // too_small\n                    payload.issues.push({\n                        input,\n                        code: \"too_small\",\n                        minimum: Number.MIN_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        inclusive: true,\n                        continue: !def.abort,\n                    });\n                }\n                return;\n            }\n        }\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_small\",\n                minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_small\",\n                minimum: minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size <= def.maximum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size >= def.minimum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.size;\n        bag.maximum = def.size;\n        bag.size = def.size;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size === def.size)\n            return;\n        const tooBig = size > def.size;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length <= def.maximum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length >= def.minimum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.length;\n        bag.maximum = def.length;\n        bag.length = def.length;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length === def.length)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        const tooBig = length > def.length;\n        payload.issues.push({\n            origin,\n            ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n    var _a, _b;\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        if (def.pattern) {\n            bag.patterns ?? (bag.patterns = new Set());\n            bag.patterns.add(def.pattern);\n        }\n    });\n    if (def.pattern)\n        (_a = inst._zod).check ?? (_a.check = (payload) => {\n            def.pattern.lastIndex = 0;\n            if (def.pattern.test(payload.value))\n                return;\n            payload.issues.push({\n                origin: \"string\",\n                code: \"invalid_format\",\n                format: def.format,\n                input: payload.value,\n                ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n                inst,\n                continue: !def.abort,\n            });\n        });\n    else\n        (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n    $ZodCheckStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"regex\",\n            input: payload.value,\n            pattern: def.pattern.toString(),\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.lowercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.uppercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const escapedRegex = util.escapeRegex(def.includes);\n    const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n    def.pattern = pattern;\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.includes(def.includes, def.position))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"includes\",\n            includes: def.includes,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.startsWith(def.prefix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"starts_with\",\n            prefix: def.prefix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.endsWith(def.suffix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"ends_with\",\n            suffix: def.suffix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n///////////////////////////////////\n/////    $ZodCheckProperty    /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n    if (result.issues.length) {\n        payload.issues.push(...util.prefixIssues(property, result.issues));\n    }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        const result = def.schema._zod.run({\n            value: payload.value[def.property],\n            issues: [],\n        }, {});\n        if (result instanceof Promise) {\n            return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n        }\n        handleCheckPropertyResult(result, payload, def.property);\n        return;\n    };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const mimeSet = new Set(def.mime);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.mime = def.mime;\n    });\n    inst._zod.check = (payload) => {\n        if (mimeSet.has(payload.value.type))\n            return;\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.mime,\n            input: payload.value.type,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        payload.value = def.tx(payload.value);\n    };\n});\n", "export class Doc {\n    constructor(args = []) {\n        this.content = [];\n        this.indent = 0;\n        if (this)\n            this.args = args;\n    }\n    indented(fn) {\n        this.indent += 1;\n        fn(this);\n        this.indent -= 1;\n    }\n    write(arg) {\n        if (typeof arg === \"function\") {\n            arg(this, { execution: \"sync\" });\n            arg(this, { execution: \"async\" });\n            return;\n        }\n        const content = arg;\n        const lines = content.split(\"\\n\").filter((x) => x);\n        const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n        const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n        for (const line of dedented) {\n            this.content.push(line);\n        }\n    }\n    compile() {\n        const F = Function;\n        const args = this?.args;\n        const content = this?.content ?? [``];\n        const lines = [...content.map((x) => `  ${x}`)];\n        // console.log(lines.join(\"\\n\"));\n        return new F(...args, lines.join(\"\\n\"));\n    }\n}\n", "export const version = {\n    major: 4,\n    minor: 4,\n    patch: 3,\n};\n", "import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n    var _a;\n    inst ?? (inst = {});\n    inst._zod.def = def; // set _def property\n    inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n    inst._zod.version = version;\n    const checks = [...(inst._zod.def.checks ?? [])];\n    // if inst is itself a checks.$ZodCheck, run it as a check\n    if (inst._zod.traits.has(\"$ZodCheck\")) {\n        checks.unshift(inst);\n    }\n    for (const ch of checks) {\n        for (const fn of ch._zod.onattach) {\n            fn(inst);\n        }\n    }\n    if (checks.length === 0) {\n        // deferred initializer\n        // inst._zod.parse is not yet defined\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred?.push(() => {\n            inst._zod.run = inst._zod.parse;\n        });\n    }\n    else {\n        const runChecks = (payload, checks, ctx) => {\n            let isAborted = util.aborted(payload);\n            let asyncResult;\n            for (const ch of checks) {\n                if (ch._zod.def.when) {\n                    if (util.explicitlyAborted(payload))\n                        continue;\n                    const shouldRun = ch._zod.def.when(payload);\n                    if (!shouldRun)\n                        continue;\n                }\n                else if (isAborted) {\n                    continue;\n                }\n                const currLen = payload.issues.length;\n                const _ = ch._zod.check(payload);\n                if (_ instanceof Promise && ctx?.async === false) {\n                    throw new core.$ZodAsyncError();\n                }\n                if (asyncResult || _ instanceof Promise) {\n                    asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n                        await _;\n                        const nextLen = payload.issues.length;\n                        if (nextLen === currLen)\n                            return;\n                        if (!isAborted)\n                            isAborted = util.aborted(payload, currLen);\n                    });\n                }\n                else {\n                    const nextLen = payload.issues.length;\n                    if (nextLen === currLen)\n                        continue;\n                    if (!isAborted)\n                        isAborted = util.aborted(payload, currLen);\n                }\n            }\n            if (asyncResult) {\n                return asyncResult.then(() => {\n                    return payload;\n                });\n            }\n            return payload;\n        };\n        const handleCanaryResult = (canary, payload, ctx) => {\n            // abort if the canary is aborted\n            if (util.aborted(canary)) {\n                canary.aborted = true;\n                return canary;\n            }\n            // run checks first, then\n            const checkResult = runChecks(payload, checks, ctx);\n            if (checkResult instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n            }\n            return inst._zod.parse(checkResult, ctx);\n        };\n        inst._zod.run = (payload, ctx) => {\n            if (ctx.skipChecks) {\n                return inst._zod.parse(payload, ctx);\n            }\n            if (ctx.direction === \"backward\") {\n                // run canary\n                // initial pass (no checks)\n                const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n                if (canary instanceof Promise) {\n                    return canary.then((canary) => {\n                        return handleCanaryResult(canary, payload, ctx);\n                    });\n                }\n                return handleCanaryResult(canary, payload, ctx);\n            }\n            // forward\n            const result = inst._zod.parse(payload, ctx);\n            if (result instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return result.then((result) => runChecks(result, checks, ctx));\n            }\n            return runChecks(result, checks, ctx);\n        };\n    }\n    // Lazy initialize ~standard to avoid creating objects for every schema\n    util.defineLazy(inst, \"~standard\", () => ({\n        validate: (value) => {\n            try {\n                const r = safeParse(inst, value);\n                return r.success ? { value: r.data } : { issues: r.error?.issues };\n            }\n            catch (_) {\n                return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n            }\n        },\n        vendor: \"zod\",\n        version: 1,\n    }));\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n    inst._zod.parse = (payload, _) => {\n        if (def.coerce)\n            try {\n                payload.value = String(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"string\")\n            return payload;\n        payload.issues.push({\n            expected: \"string\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n    // check initialization must come first\n    checks.$ZodCheckStringFormat.init(inst, def);\n    $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.guid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n    if (def.version) {\n        const versionMap = {\n            v1: 1,\n            v2: 2,\n            v3: 3,\n            v4: 4,\n            v5: 5,\n            v6: 6,\n            v7: 7,\n            v8: 8,\n        };\n        const v = versionMap[def.version];\n        if (v === undefined)\n            throw new Error(`Invalid UUID version: \"${def.version}\"`);\n        def.pattern ?? (def.pattern = regexes.uuid(v));\n    }\n    else\n        def.pattern ?? (def.pattern = regexes.uuid());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.email);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        try {\n            // Trim whitespace from input\n            const trimmed = payload.value.trim();\n            // When normalize is off, require :// for http/https URLs\n            // This prevents strings like \"http:example.com\" or \"https:/path\" from being silently accepted\n            if (!def.normalize && def.protocol?.source === regexes.httpProtocol.source) {\n                if (!/^https?:\\/\\//i.test(trimmed)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid URL format\",\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                    return;\n                }\n            }\n            // @ts-ignore\n            const url = new URL(trimmed);\n            if (def.hostname) {\n                def.hostname.lastIndex = 0;\n                if (!def.hostname.test(url.hostname)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid hostname\",\n                        pattern: def.hostname.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            if (def.protocol) {\n                def.protocol.lastIndex = 0;\n                if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid protocol\",\n                        pattern: def.protocol.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            // Set the output value based on normalize flag\n            if (def.normalize) {\n                // Use normalized URL\n                payload.value = url.href;\n            }\n            else {\n                // Preserve the original input (trimmed)\n                payload.value = trimmed;\n            }\n            return;\n        }\n        catch (_) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"url\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.emoji());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.nanoid);\n    $ZodStringFormat.init(inst, def);\n});\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link $ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid2);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ulid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.xid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ksuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.datetime(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.date);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.time(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.duration);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv4);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.bag.format = `ipv4`;\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv6);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.bag.format = `ipv6`;\n    inst._zod.check = (payload) => {\n        try {\n            // @ts-ignore\n            new URL(`http://[${payload.value}]`);\n            // return;\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"ipv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n    $ZodStringFormat.init(inst, def);\n    inst._zod.bag.format = `mac`;\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv4);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        const parts = payload.value.split(\"/\");\n        try {\n            if (parts.length !== 2)\n                throw new Error();\n            const [address, prefix] = parts;\n            if (!prefix)\n                throw new Error();\n            const prefixNum = Number(prefix);\n            if (`${prefixNum}` !== prefix)\n                throw new Error();\n            if (prefixNum < 0 || prefixNum > 128)\n                throw new Error();\n            // @ts-ignore\n            new URL(`http://[${address}]`);\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"cidrv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64(data) {\n    if (data === \"\")\n        return true;\n    // atob ignores whitespace, so reject it up front.\n    if (/\\s/.test(data))\n        return false;\n    if (data.length % 4 !== 0)\n        return false;\n    try {\n        // @ts-ignore\n        atob(data);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.bag.contentEncoding = \"base64\";\n    inst._zod.check = (payload) => {\n        if (isValidBase64(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64URL(data) {\n    if (!regexes.base64url.test(data))\n        return false;\n    const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n    const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n    return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64url);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.bag.contentEncoding = \"base64url\";\n    inst._zod.check = (payload) => {\n        if (isValidBase64URL(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64url\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.e164);\n    $ZodStringFormat.init(inst, def);\n});\n//////////////////////////////   ZodJWT   //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n    try {\n        const tokensParts = token.split(\".\");\n        if (tokensParts.length !== 3)\n            return false;\n        const [header] = tokensParts;\n        if (!header)\n            return false;\n        // @ts-ignore\n        const parsedHeader = JSON.parse(atob(header));\n        if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n            return false;\n        if (!parsedHeader.alg)\n            return false;\n        if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidJWT(payload.value, def.alg))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"jwt\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (def.fn(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: def.format,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Number(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n            return payload;\n        }\n        const received = typeof input === \"number\"\n            ? Number.isNaN(input)\n                ? \"NaN\"\n                : !Number.isFinite(input)\n                    ? \"Infinity\"\n                    : undefined\n            : undefined;\n        payload.issues.push({\n            expected: \"number\",\n            code: \"invalid_type\",\n            input,\n            inst,\n            ...(received ? { received } : {}),\n        });\n        return payload;\n    };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n    checks.$ZodCheckNumberFormat.init(inst, def);\n    $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.boolean;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Boolean(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"boolean\")\n            return payload;\n        payload.issues.push({\n            expected: \"boolean\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.bigint;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = BigInt(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"bigint\")\n            return payload;\n        payload.issues.push({\n            expected: \"bigint\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n    checks.$ZodCheckBigIntFormat.init(inst, def);\n    $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"symbol\")\n            return payload;\n        payload.issues.push({\n            expected: \"symbol\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.undefined;\n    inst._zod.values = new Set([undefined]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"undefined\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.null;\n    inst._zod.values = new Set([null]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (input === null)\n            return payload;\n        payload.issues.push({\n            expected: \"null\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.issues.push({\n            expected: \"never\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"void\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce) {\n            try {\n                payload.value = new Date(payload.value);\n            }\n            catch (_err) { }\n        }\n        const input = payload.value;\n        const isDate = input instanceof Date;\n        const isValidDate = isDate && !Number.isNaN(input.getTime());\n        if (isValidDate)\n            return payload;\n        payload.issues.push({\n            expected: \"date\",\n            code: \"invalid_type\",\n            input,\n            ...(isDate ? { received: \"Invalid Date\" } : {}),\n            inst,\n        });\n        return payload;\n    };\n});\nfunction handleArrayResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                expected: \"array\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = Array(input.length);\n        const proms = [];\n        for (let i = 0; i < input.length; i++) {\n            const item = input[i];\n            const result = def.element._zod.run({\n                value: item,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n            }\n            else {\n                handleArrayResult(result, payload, i);\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload; //handleArrayResultsAsync(parseResults, final);\n    };\n});\nfunction handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) {\n    const isPresent = key in input;\n    if (result.issues.length) {\n        // For optional-in/out schemas, ignore errors on absent keys.\n        if (isOptionalIn && isOptionalOut && !isPresent) {\n            return;\n        }\n        final.issues.push(...util.prefixIssues(key, result.issues));\n    }\n    if (!isPresent && !isOptionalIn) {\n        if (!result.issues.length) {\n            final.issues.push({\n                code: \"invalid_type\",\n                expected: \"nonoptional\",\n                input: undefined,\n                path: [key],\n            });\n        }\n        return;\n    }\n    if (result.value === undefined) {\n        if (isPresent) {\n            final.value[key] = undefined;\n        }\n    }\n    else {\n        final.value[key] = result.value;\n    }\n}\nfunction normalizeDef(def) {\n    const keys = Object.keys(def.shape);\n    for (const k of keys) {\n        if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n            throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n        }\n    }\n    const okeys = util.optionalKeys(def.shape);\n    return {\n        ...def,\n        keys,\n        keySet: new Set(keys),\n        numKeys: keys.length,\n        optionalKeys: new Set(okeys),\n    };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n    const unrecognized = [];\n    const keySet = def.keySet;\n    const _catchall = def.catchall._zod;\n    const t = _catchall.def.type;\n    const isOptionalIn = _catchall.optin === \"optional\";\n    const isOptionalOut = _catchall.optout === \"optional\";\n    for (const key in input) {\n        // skip __proto__ so it can't replace the result prototype via the\n        // assignment setter on the plain {} we build into\n        if (key === \"__proto__\")\n            continue;\n        if (keySet.has(key))\n            continue;\n        if (t === \"never\") {\n            unrecognized.push(key);\n            continue;\n        }\n        const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n        if (r instanceof Promise) {\n            proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut)));\n        }\n        else {\n            handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut);\n        }\n    }\n    if (unrecognized.length) {\n        payload.issues.push({\n            code: \"unrecognized_keys\",\n            keys: unrecognized,\n            input,\n            inst,\n        });\n    }\n    if (!proms.length)\n        return payload;\n    return Promise.all(proms).then(() => {\n        return payload;\n    });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodType.init(inst, def);\n    // const sh = def.shape;\n    const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n    if (!desc?.get) {\n        const sh = def.shape;\n        Object.defineProperty(def, \"shape\", {\n            get: () => {\n                const newSh = { ...sh };\n                Object.defineProperty(def, \"shape\", {\n                    value: newSh,\n                });\n                return newSh;\n            },\n        });\n    }\n    const _normalized = util.cached(() => normalizeDef(def));\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const shape = def.shape;\n        const propValues = {};\n        for (const key in shape) {\n            const field = shape[key]._zod;\n            if (field.values) {\n                propValues[key] ?? (propValues[key] = new Set());\n                for (const v of field.values)\n                    propValues[key].add(v);\n            }\n        }\n        return propValues;\n    });\n    const isObject = util.isObject;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = {};\n        const proms = [];\n        const shape = value.shape;\n        for (const key of value.keys) {\n            const el = shape[key];\n            const isOptionalIn = el._zod.optin === \"optional\";\n            const isOptionalOut = el._zod.optout === \"optional\";\n            const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut)));\n            }\n            else {\n                handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut);\n            }\n        }\n        if (!catchall) {\n            return proms.length ? Promise.all(proms).then(() => payload) : payload;\n        }\n        return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n    };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodObject.init(inst, def);\n    const superParse = inst._zod.parse;\n    const _normalized = util.cached(() => normalizeDef(def));\n    const generateFastpass = (shape) => {\n        const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n        const normalized = _normalized.value;\n        const parseStr = (key) => {\n            const k = util.esc(key);\n            return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n        };\n        doc.write(`const input = payload.value;`);\n        const ids = Object.create(null);\n        let counter = 0;\n        for (const key of normalized.keys) {\n            ids[key] = `key_${counter++}`;\n        }\n        // A: preserve key order {\n        doc.write(`const newResult = {};`);\n        for (const key of normalized.keys) {\n            const id = ids[key];\n            const k = util.esc(key);\n            const schema = shape[key];\n            const isOptionalIn = schema?._zod?.optin === \"optional\";\n            const isOptionalOut = schema?._zod?.optout === \"optional\";\n            doc.write(`const ${id} = ${parseStr(key)};`);\n            if (isOptionalIn && isOptionalOut) {\n                // For optional-in/out schemas, ignore errors on absent keys\n                doc.write(`\n        if (${id}.issues.length) {\n          if (${k} in input) {\n            payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n              ...iss,\n              path: iss.path ? [${k}, ...iss.path] : [${k}]\n            })));\n          }\n        }\n        \n        if (${id}.value === undefined) {\n          if (${k} in input) {\n            newResult[${k}] = undefined;\n          }\n        } else {\n          newResult[${k}] = ${id}.value;\n        }\n        \n      `);\n            }\n            else if (!isOptionalIn) {\n                doc.write(`\n        const ${id}_present = ${k} in input;\n        if (${id}.issues.length) {\n          payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n            ...iss,\n            path: iss.path ? [${k}, ...iss.path] : [${k}]\n          })));\n        }\n        if (!${id}_present && !${id}.issues.length) {\n          payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: undefined,\n            path: [${k}]\n          });\n        }\n\n        if (${id}_present) {\n          if (${id}.value === undefined) {\n            newResult[${k}] = undefined;\n          } else {\n            newResult[${k}] = ${id}.value;\n          }\n        }\n\n      `);\n            }\n            else {\n                doc.write(`\n        if (${id}.issues.length) {\n          payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n            ...iss,\n            path: iss.path ? [${k}, ...iss.path] : [${k}]\n          })));\n        }\n        \n        if (${id}.value === undefined) {\n          if (${k} in input) {\n            newResult[${k}] = undefined;\n          }\n        } else {\n          newResult[${k}] = ${id}.value;\n        }\n        \n      `);\n            }\n        }\n        doc.write(`payload.value = newResult;`);\n        doc.write(`return payload;`);\n        const fn = doc.compile();\n        return (payload, ctx) => fn(shape, payload, ctx);\n    };\n    let fastpass;\n    const isObject = util.isObject;\n    const jit = !core.globalConfig.jitless;\n    const allowsEval = util.allowsEval;\n    const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n            // always synchronous\n            if (!fastpass)\n                fastpass = generateFastpass(def.shape);\n            payload = fastpass(payload, ctx);\n            if (!catchall)\n                return payload;\n            return handleCatchall([], input, payload, ctx, value, inst);\n        }\n        return superParse(payload, ctx);\n    };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n    for (const result of results) {\n        if (result.issues.length === 0) {\n            final.value = result.value;\n            return final;\n        }\n    }\n    const nonaborted = results.filter((r) => !util.aborted(r));\n    if (nonaborted.length === 1) {\n        final.value = nonaborted[0].value;\n        return nonaborted[0];\n    }\n    final.issues.push({\n        code: \"invalid_union\",\n        input: final.value,\n        inst,\n        errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n    });\n    return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"values\", () => {\n        if (def.options.every((o) => o._zod.values)) {\n            return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n        }\n        return undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        if (def.options.every((o) => o._zod.pattern)) {\n            const patterns = def.options.map((o) => o._zod.pattern);\n            return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n        }\n        return undefined;\n    });\n    const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n    inst._zod.parse = (payload, ctx) => {\n        if (first) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                if (result.issues.length === 0)\n                    return result;\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nfunction handleExclusiveUnionResults(results, final, inst, ctx) {\n    const successes = results.filter((r) => r.issues.length === 0);\n    if (successes.length === 1) {\n        final.value = successes[0].value;\n        return final;\n    }\n    if (successes.length === 0) {\n        // No matches - same as regular union\n        final.issues.push({\n            code: \"invalid_union\",\n            input: final.value,\n            inst,\n            errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        });\n    }\n    else {\n        // Multiple matches - exclusive union failure\n        final.issues.push({\n            code: \"invalid_union\",\n            input: final.value,\n            inst,\n            errors: [],\n            inclusive: false,\n        });\n    }\n    return final;\n}\nexport const $ZodXor = /*@__PURE__*/ core.$constructor(\"$ZodXor\", (inst, def) => {\n    $ZodUnion.init(inst, def);\n    def.inclusive = false;\n    const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n    inst._zod.parse = (payload, ctx) => {\n        if (first) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleExclusiveUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleExclusiveUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n    def.inclusive = false;\n    $ZodUnion.init(inst, def);\n    const _super = inst._zod.parse;\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const propValues = {};\n        for (const option of def.options) {\n            const pv = option._zod.propValues;\n            if (!pv || Object.keys(pv).length === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n            for (const [k, v] of Object.entries(pv)) {\n                if (!propValues[k])\n                    propValues[k] = new Set();\n                for (const val of v) {\n                    propValues[k].add(val);\n                }\n            }\n        }\n        return propValues;\n    });\n    const disc = util.cached(() => {\n        const opts = def.options;\n        const map = new Map();\n        for (const o of opts) {\n            const values = o._zod.propValues?.[def.discriminator];\n            if (!values || values.size === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n            for (const v of values) {\n                if (map.has(v)) {\n                    throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n                }\n                map.set(v, o);\n            }\n        }\n        return map;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isObject(input)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"object\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const opt = disc.value.get(input?.[def.discriminator]);\n        if (opt) {\n            return opt._zod.run(payload, ctx);\n        }\n        // Fall back to union matching when the fast discriminator path fails:\n        // - explicitly enabled via unionFallback, or\n        // - during backward direction (encode), since codec-based discriminators\n        //   have different values in forward vs backward directions\n        if (def.unionFallback || ctx.direction === \"backward\") {\n            return _super(payload, ctx);\n        }\n        // no matching discriminator\n        payload.issues.push({\n            code: \"invalid_union\",\n            errors: [],\n            note: \"No matching discriminator\",\n            discriminator: def.discriminator,\n            options: Array.from(disc.value.keys()),\n            input,\n            path: [def.discriminator],\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n        const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n        const async = left instanceof Promise || right instanceof Promise;\n        if (async) {\n            return Promise.all([left, right]).then(([left, right]) => {\n                return handleIntersectionResults(payload, left, right);\n            });\n        }\n        return handleIntersectionResults(payload, left, right);\n    };\n});\nfunction mergeValues(a, b) {\n    // const aType = parse.t(a);\n    // const bType = parse.t(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    if (a instanceof Date && b instanceof Date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    if (util.isPlainObject(a) && util.isPlainObject(b)) {\n        const bKeys = Object.keys(b);\n        const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) {\n            return { valid: false, mergeErrorPath: [] };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n    // Track which side(s) report each key as unrecognized\n    const unrecKeys = new Map();\n    let unrecIssue;\n    for (const iss of left.issues) {\n        if (iss.code === \"unrecognized_keys\") {\n            unrecIssue ?? (unrecIssue = iss);\n            for (const k of iss.keys) {\n                if (!unrecKeys.has(k))\n                    unrecKeys.set(k, {});\n                unrecKeys.get(k).l = true;\n            }\n        }\n        else {\n            result.issues.push(iss);\n        }\n    }\n    for (const iss of right.issues) {\n        if (iss.code === \"unrecognized_keys\") {\n            for (const k of iss.keys) {\n                if (!unrecKeys.has(k))\n                    unrecKeys.set(k, {});\n                unrecKeys.get(k).r = true;\n            }\n        }\n        else {\n            result.issues.push(iss);\n        }\n    }\n    // Report only keys unrecognized by BOTH sides\n    const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k);\n    if (bothKeys.length && unrecIssue) {\n        result.issues.push({ ...unrecIssue, keys: bothKeys });\n    }\n    if (util.aborted(result))\n        return result;\n    const merged = mergeValues(left.value, right.value);\n    if (!merged.valid) {\n        throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n    }\n    result.value = merged.data;\n    return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const items = def.items;\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"tuple\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        payload.value = [];\n        const proms = [];\n        const optinStart = getTupleOptStart(items, \"optin\");\n        const optoutStart = getTupleOptStart(items, \"optout\");\n        if (!def.rest) {\n            if (input.length < optinStart) {\n                payload.issues.push({\n                    code: \"too_small\",\n                    minimum: optinStart,\n                    inclusive: true,\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n                return payload;\n            }\n            if (input.length > items.length) {\n                payload.issues.push({\n                    code: \"too_big\",\n                    maximum: items.length,\n                    inclusive: true,\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n            }\n        }\n        // Run every item in parallel, collecting results into an indexed\n        // array. The post-processing in `handleTupleResults` walks them in\n        // order so it can decide whether an absent optional-output error can\n        // truncate the tail or must be reported to preserve required output.\n        const itemResults = new Array(items.length);\n        for (let i = 0; i < items.length; i++) {\n            const r = items[i]._zod.run({ value: input[i], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((rr) => {\n                    itemResults[i] = rr;\n                }));\n            }\n            else {\n                itemResults[i] = r;\n            }\n        }\n        if (def.rest) {\n            let i = items.length - 1;\n            const rest = input.slice(items.length);\n            for (const el of rest) {\n                i++;\n                const result = def.rest._zod.run({ value: el, issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((r) => handleTupleResult(r, payload, i)));\n                }\n                else {\n                    handleTupleResult(result, payload, i);\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart));\n        }\n        return handleTupleResults(itemResults, payload, items, input, optoutStart);\n    };\n});\nfunction getTupleOptStart(items, key) {\n    for (let i = items.length - 1; i >= 0; i--) {\n        if (items[i]._zod[key] !== \"optional\")\n            return i + 1;\n    }\n    return 0;\n}\nfunction handleTupleResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nfunction handleTupleResults(itemResults, final, items, input, optoutStart) {\n    // Walk results in order. Mirror $ZodObject's swallow-on-absent-optional\n    // rule, but only after `optoutStart`: the first index where the output\n    // tuple tail can be absent.\n    for (let i = 0; i < items.length; i++) {\n        const r = itemResults[i];\n        const isPresent = i < input.length;\n        if (r.issues.length) {\n            if (!isPresent && i >= optoutStart) {\n                final.value.length = i;\n                break;\n            }\n            final.issues.push(...util.prefixIssues(i, r.issues));\n        }\n        final.value[i] = r.value;\n    }\n    // Drop trailing slots that produced `undefined` for absent input\n    // (the array analog of an absent optional key on an object). The\n    // `i >= input.length` floor is critical: an explicit `undefined`\n    // *inside* the input must be preserved even when the schema is\n    // optional-out (e.g. `z.string().or(z.undefined())` accepting an\n    // explicit undefined value).\n    for (let i = final.value.length - 1; i >= input.length; i--) {\n        if (items[i]._zod.optout === \"optional\" && final.value[i] === undefined) {\n            final.value.length = i;\n        }\n        else {\n            break;\n        }\n    }\n    return final;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isPlainObject(input)) {\n            payload.issues.push({\n                expected: \"record\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        const values = def.keyType._zod.values;\n        if (values) {\n            payload.value = {};\n            const recordKeys = new Set();\n            for (const key of values) {\n                if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n                    recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n                    const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                    if (keyResult instanceof Promise) {\n                        throw new Error(\"Async schemas not supported in object keys currently\");\n                    }\n                    if (keyResult.issues.length) {\n                        payload.issues.push({\n                            code: \"invalid_key\",\n                            origin: \"record\",\n                            issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                            input: key,\n                            path: [key],\n                            inst,\n                        });\n                        continue;\n                    }\n                    const outKey = keyResult.value;\n                    const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                    if (result instanceof Promise) {\n                        proms.push(result.then((result) => {\n                            if (result.issues.length) {\n                                payload.issues.push(...util.prefixIssues(key, result.issues));\n                            }\n                            payload.value[outKey] = result.value;\n                        }));\n                    }\n                    else {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[outKey] = result.value;\n                    }\n                }\n            }\n            let unrecognized;\n            for (const key in input) {\n                if (!recordKeys.has(key)) {\n                    unrecognized = unrecognized ?? [];\n                    unrecognized.push(key);\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                });\n            }\n        }\n        else {\n            payload.value = {};\n            // Reflect.ownKeys for Symbol-key support; filter non-enumerable to match z.object()\n            for (const key of Reflect.ownKeys(input)) {\n                if (key === \"__proto__\")\n                    continue;\n                if (!Object.prototype.propertyIsEnumerable.call(input, key))\n                    continue;\n                let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                if (keyResult instanceof Promise) {\n                    throw new Error(\"Async schemas not supported in object keys currently\");\n                }\n                // Numeric string fallback: if key is a numeric string and failed, retry with Number(key)\n                // This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals\n                const checkNumericKey = typeof key === \"string\" && regexes.number.test(key) && keyResult.issues.length;\n                if (checkNumericKey) {\n                    const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);\n                    if (retryResult instanceof Promise) {\n                        throw new Error(\"Async schemas not supported in object keys currently\");\n                    }\n                    if (retryResult.issues.length === 0) {\n                        keyResult = retryResult;\n                    }\n                }\n                if (keyResult.issues.length) {\n                    if (def.mode === \"loose\") {\n                        // Pass through unchanged\n                        payload.value[key] = input[key];\n                    }\n                    else {\n                        // Default \"strict\" behavior: error on invalid key\n                        payload.issues.push({\n                            code: \"invalid_key\",\n                            origin: \"record\",\n                            issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                            input: key,\n                            path: [key],\n                            inst,\n                        });\n                    }\n                    continue;\n                }\n                const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[keyResult.value] = result.value;\n                    }));\n                }\n                else {\n                    if (result.issues.length) {\n                        payload.issues.push(...util.prefixIssues(key, result.issues));\n                    }\n                    payload.value[keyResult.value] = result.value;\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload;\n    };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Map)) {\n            payload.issues.push({\n                expected: \"map\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Map();\n        for (const [key, value] of input) {\n            const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n            const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n            if (keyResult instanceof Promise || valueResult instanceof Promise) {\n                proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n                    handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n                }));\n            }\n            else {\n                handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n    if (keyResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, keyResult.issues));\n        }\n        else {\n            final.issues.push({\n                code: \"invalid_key\",\n                origin: \"map\",\n                input,\n                inst,\n                issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    if (valueResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, valueResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_element\",\n                input,\n                inst,\n                key: key,\n                issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Set)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"set\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Set();\n        for (const item of input) {\n            const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleSetResult(result, payload)));\n            }\n            else\n                handleSetResult(result, payload);\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleSetResult(result, final) {\n    if (result.issues.length) {\n        final.issues.push(...result.issues);\n    }\n    final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = util.getEnumValues(def.entries);\n    const valuesSet = new Set(values);\n    inst._zod.values = valuesSet;\n    inst._zod.pattern = new RegExp(`^(${values\n        .filter((k) => util.propertyKeyTypes.has(typeof k))\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (valuesSet.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    if (def.values.length === 0) {\n        throw new Error(\"Cannot create literal schema with no valid values\");\n    }\n    const values = new Set(def.values);\n    inst._zod.values = values;\n    inst._zod.pattern = new RegExp(`^(${def.values\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        // @ts-ignore\n        if (input instanceof File)\n            return payload;\n        payload.issues.push({\n            expected: \"file\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        const _out = def.transform(payload.value, payload);\n        if (ctx.async) {\n            const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n            return output.then((output) => {\n                payload.value = output;\n                payload.fallback = true;\n                return payload;\n            });\n        }\n        if (_out instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        payload.value = _out;\n        payload.fallback = true;\n        return payload;\n    };\n});\nfunction handleOptionalResult(result, input) {\n    if (input === undefined && (result.issues.length || result.fallback)) {\n        return { issues: [], value: undefined };\n    }\n    return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (def.innerType._zod.optin === \"optional\") {\n            const input = payload.value;\n            const result = def.innerType._zod.run(payload, ctx);\n            if (result instanceof Promise)\n                return result.then((r) => handleOptionalResult(r, input));\n            return handleOptionalResult(result, input);\n        }\n        if (payload.value === undefined) {\n            return payload;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodExactOptional = /*@__PURE__*/ core.$constructor(\"$ZodExactOptional\", (inst, def) => {\n    // Call parent init - inherits optin/optout = \"optional\"\n    $ZodOptional.init(inst, def);\n    // Override values/pattern to NOT add undefined\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    util.defineLazy(inst._zod, \"pattern\", () => def.innerType._zod.pattern);\n    // Override parse to just delegate (no undefined handling)\n    inst._zod.parse = (payload, ctx) => {\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n    });\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        // Forward direction (decode): allow null to pass through\n        if (payload.value === null)\n            return payload;\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // inst._zod.qin = \"true\";\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply defaults for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n            /**\n             * $ZodDefault returns the default value immediately in forward direction.\n             * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe.   */\n            return payload;\n        }\n        // Forward direction: continue with default handling\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleDefaultResult(result, def));\n        }\n        return handleDefaultResult(result, def);\n    };\n});\nfunction handleDefaultResult(payload, def) {\n    if (payload.value === undefined) {\n        payload.value = def.defaultValue;\n    }\n    return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply prefault for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => {\n        const v = def.innerType._zod.values;\n        return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleNonOptionalResult(result, inst));\n        }\n        return handleNonOptionalResult(result, inst);\n    };\n});\nfunction handleNonOptionalResult(payload, inst) {\n    if (!payload.issues.length && payload.value === undefined) {\n        payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: payload.value,\n            inst,\n        });\n    }\n    return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(\"ZodSuccess\");\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.issues.length === 0;\n                return payload;\n            });\n        }\n        payload.value = result.issues.length === 0;\n        return payload;\n    };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply catch logic\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.value;\n                if (result.issues.length) {\n                    payload.value = def.catchValue({\n                        ...payload,\n                        error: {\n                            issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        },\n                        input: payload.value,\n                    });\n                    payload.issues = [];\n                    payload.fallback = true;\n                }\n                return payload;\n            });\n        }\n        payload.value = result.value;\n        if (result.issues.length) {\n            payload.value = def.catchValue({\n                ...payload,\n                error: {\n                    issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                },\n                input: payload.value,\n            });\n            payload.issues = [];\n            payload.fallback = true;\n        }\n        return payload;\n    };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"nan\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handlePipeResult(right, def.in, ctx));\n            }\n            return handlePipeResult(right, def.in, ctx);\n        }\n        const left = def.in._zod.run(payload, ctx);\n        if (left instanceof Promise) {\n            return left.then((left) => handlePipeResult(left, def.out, ctx));\n        }\n        return handlePipeResult(left, def.out, ctx);\n    };\n});\nfunction handlePipeResult(left, next, ctx) {\n    if (left.issues.length) {\n        // prevent further checks\n        left.aborted = true;\n        return left;\n    }\n    return next._zod.run({ value: left.value, issues: left.issues, fallback: left.fallback }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        const direction = ctx.direction || \"forward\";\n        if (direction === \"forward\") {\n            const left = def.in._zod.run(payload, ctx);\n            if (left instanceof Promise) {\n                return left.then((left) => handleCodecAResult(left, def, ctx));\n            }\n            return handleCodecAResult(left, def, ctx);\n        }\n        else {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handleCodecAResult(right, def, ctx));\n            }\n            return handleCodecAResult(right, def, ctx);\n        }\n    };\n});\nfunction handleCodecAResult(result, def, ctx) {\n    if (result.issues.length) {\n        // prevent further checks\n        result.aborted = true;\n        return result;\n    }\n    const direction = ctx.direction || \"forward\";\n    if (direction === \"forward\") {\n        const transformed = def.transform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.out, ctx);\n    }\n    else {\n        const transformed = def.reverseTransform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.in, ctx);\n    }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n    // Check if transform added any issues\n    if (left.issues.length) {\n        left.aborted = true;\n        return left;\n    }\n    return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodPreprocess = /*@__PURE__*/ core.$constructor(\"$ZodPreprocess\", (inst, def) => {\n    $ZodPipe.init(inst, def);\n});\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType?._zod?.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType?._zod?.optout);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then(handleReadonlyResult);\n        }\n        return handleReadonlyResult(result);\n    };\n});\nfunction handleReadonlyResult(payload) {\n    payload.value = Object.freeze(payload.value);\n    return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const regexParts = [];\n    for (const part of def.parts) {\n        if (typeof part === \"object\" && part !== null) {\n            // is Zod schema\n            if (!part._zod.pattern) {\n                // if (!source)\n                throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n            }\n            const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n            if (!source)\n                throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n            const start = source.startsWith(\"^\") ? 1 : 0;\n            const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n            regexParts.push(source.slice(start, end));\n        }\n        else if (part === null || util.primitiveTypes.has(typeof part)) {\n            regexParts.push(util.escapeRegex(`${part}`));\n        }\n        else {\n            throw new Error(`Invalid template literal part: ${part}`);\n        }\n    }\n    inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"string\") {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"string\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        inst._zod.pattern.lastIndex = 0;\n        if (!inst._zod.pattern.test(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                code: \"invalid_format\",\n                format: def.format ?? \"template_literal\",\n                pattern: inst._zod.pattern.source,\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._def = def;\n    inst._zod.def = def;\n    inst.implement = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implement() must be called with a function\");\n        }\n        return function (...args) {\n            const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n            const result = Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return parse(inst._def.output, result);\n            }\n            return result;\n        };\n    };\n    inst.implementAsync = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implementAsync() must be called with a function\");\n        }\n        return async function (...args) {\n            const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n            const result = await Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return await parseAsync(inst._def.output, result);\n            }\n            return result;\n        };\n    };\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"function\") {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"function\",\n                input: payload.value,\n                inst,\n            });\n            return payload;\n        }\n        // Check if output is a promise type to determine if we should use async implementation\n        const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n        if (hasPromiseOutput) {\n            payload.value = inst.implementAsync(payload.value);\n        }\n        else {\n            payload.value = inst.implement(payload.value);\n        }\n        return payload;\n    };\n    inst.input = (...args) => {\n        const F = inst.constructor;\n        if (Array.isArray(args[0])) {\n            return new F({\n                type: \"function\",\n                input: new $ZodTuple({\n                    type: \"tuple\",\n                    items: args[0],\n                    rest: args[1],\n                }),\n                output: inst._def.output,\n            });\n        }\n        return new F({\n            type: \"function\",\n            input: args[0],\n            output: inst._def.output,\n        });\n    };\n    inst.output = (output) => {\n        const F = inst.constructor;\n        return new F({\n            type: \"function\",\n            input: inst._def.input,\n            output,\n        });\n    };\n    return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n    };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // Cache the resolved inner type on the shared `def` so all clones of this\n    // lazy (e.g. via `.describe()`/`.meta()`) share the same inner instance,\n    // preserving identity for cycle detection on recursive schemas.\n    util.defineLazy(inst._zod, \"innerType\", () => {\n        const d = def;\n        if (!d._cachedInner)\n            d._cachedInner = def.getter();\n        return d._cachedInner;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType?._zod?.pattern);\n    util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType?._zod?.propValues);\n    util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType?._zod?.optin ?? undefined);\n    util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType?._zod?.optout ?? undefined);\n    inst._zod.parse = (payload, ctx) => {\n        const inner = inst._zod.innerType;\n        return inner._zod.run(payload, ctx);\n    };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n    checks.$ZodCheck.init(inst, def);\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _) => {\n        return payload;\n    };\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const r = def.fn(input);\n        if (r instanceof Promise) {\n            return r.then((r) => handleRefineResult(r, payload, input, inst));\n        }\n        handleRefineResult(r, payload, input, inst);\n        return;\n    };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n    if (!result) {\n        const _iss = {\n            code: \"custom\",\n            input,\n            inst, // incorporates params.error into issue reporting\n            path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n            continue: !inst._zod.def.abort,\n            // params: inst._zod.def.params,\n        };\n        if (inst._zod.def.params)\n            _iss.params = inst._zod.def.params;\n        payload.issues.push(util.issue(_iss));\n    }\n}\n", "export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as bg } from \"./bg.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as el } from \"./el.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hr } from \"./hr.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as hy } from \"./hy.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as ka } from \"./ka.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as km } from \"./km.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as lt } from \"./lt.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ro } from \"./ro.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as uk } from \"./uk.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as uz } from \"./uz.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u062D\u0631\u0641\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n        file: { unit: \"\u0628\u0627\u064A\u062A\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n        array: { unit: \"\u0639\u0646\u0635\u0631\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n        set: { unit: \"\u0639\u0646\u0635\u0631\", verb: \"\u0623\u0646 \u064A\u062D\u0648\u064A\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0645\u062F\u062E\u0644\",\n        email: \"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\",\n        url: \"\u0631\u0627\u0628\u0637\",\n        emoji: \"\u0625\u064A\u0645\u0648\u062C\u064A\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n        date: \"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n        time: \"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n        duration: \"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO\",\n        ipv4: \"\u0639\u0646\u0648\u0627\u0646 IPv4\",\n        ipv6: \"\u0639\u0646\u0648\u0627\u0646 IPv6\",\n        cidrv4: \"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4\",\n        cidrv6: \"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6\",\n        base64: \"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded\",\n        base64url: \"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded\",\n        json_string: \"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON\",\n        e164: \"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u0645\u062F\u062E\u0644\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${issue.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`;\n                }\n                return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return ` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue.origin ?? \"\u0627\u0644\u0642\u064A\u0645\u0629\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\"}`;\n                return `\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue.origin ?? \"\u0627\u0644\u0642\u064A\u0645\u0629\"} ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 \"${issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`;\n            }\n            case \"not_multiple_of\":\n                return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u0645\u0639\u0631\u0641${issue.keys.length > 1 ? \"\u0627\u062A\" : \"\"} \u063A\u0631\u064A\u0628${issue.keys.length > 1 ? \"\u0629\" : \"\"}: ${util.joinValues(issue.keys, \"\u060C \")}`;\n            case \"invalid_key\":\n                return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\";\n            case \"invalid_element\":\n                return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue.origin}`;\n            default:\n                return \"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"simvol\", verb: \"olmal\u0131d\u0131r\" },\n        file: { unit: \"bayt\", verb: \"olmal\u0131d\u0131r\" },\n        array: { unit: \"element\", verb: \"olmal\u0131d\u0131r\" },\n        set: { unit: \"element\", verb: \"olmal\u0131d\u0131r\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"email address\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datetime\",\n        date: \"ISO date\",\n        time: \"ISO time\",\n        duration: \"ISO duration\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded string\",\n        base64url: \"base64url-encoded string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 number\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n instanceof ${issue.expected}, daxil olan ${received}`;\n                }\n                return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n ${expected}, daxil olan ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Yanl\u0131\u015F d\u0259y\u0259r: g\u00F6zl\u0259nil\u0259n ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Yanl\u0131\u015F se\u00E7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u00C7ox b\u00F6y\u00FCk: g\u00F6zl\u0259nil\u0259n ${issue.origin ?? \"d\u0259y\u0259r\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n                return `\u00C7ox b\u00F6y\u00FCk: g\u00F6zl\u0259nil\u0259n ${issue.origin ?? \"d\u0259y\u0259r\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u00C7ox ki\u00E7ik: g\u00F6zl\u0259nil\u0259n ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                return `\u00C7ox ki\u00E7ik: g\u00F6zl\u0259nil\u0259n ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Yanl\u0131\u015F m\u0259tn: \"${_issue.prefix}\" il\u0259 ba\u015Flamal\u0131d\u0131r`;\n                if (_issue.format === \"ends_with\")\n                    return `Yanl\u0131\u015F m\u0259tn: \"${_issue.suffix}\" il\u0259 bitm\u0259lidir`;\n                if (_issue.format === \"includes\")\n                    return `Yanl\u0131\u015F m\u0259tn: \"${_issue.includes}\" daxil olmal\u0131d\u0131r`;\n                if (_issue.format === \"regex\")\n                    return `Yanl\u0131\u015F m\u0259tn: ${_issue.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`;\n                return `Yanl\u0131\u015F ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Yanl\u0131\u015F \u0259d\u0259d: ${issue.divisor} il\u0259 b\u00F6l\u00FCn\u0259 bil\u0259n olmal\u0131d\u0131r`;\n            case \"unrecognized_keys\":\n                return `Tan\u0131nmayan a\u00E7ar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} daxilind\u0259 yanl\u0131\u015F a\u00E7ar`;\n            case \"invalid_union\":\n                return \"Yanl\u0131\u015F d\u0259y\u0259r\";\n            case \"invalid_element\":\n                return `${issue.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;\n            default:\n                return `Yanl\u0131\u015F d\u0259y\u0259r`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n    const absCount = Math.abs(count);\n    const lastDigit = absCount % 10;\n    const lastTwoDigits = absCount % 100;\n    if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n        return many;\n    }\n    if (lastDigit === 1) {\n        return one;\n    }\n    if (lastDigit >= 2 && lastDigit <= 4) {\n        return few;\n    }\n    return many;\n}\nconst error = () => {\n    const Sizable = {\n        string: {\n            unit: {\n                one: \"\u0441\u0456\u043C\u0432\u0430\u043B\",\n                few: \"\u0441\u0456\u043C\u0432\u0430\u043B\u044B\",\n                many: \"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E\",\n            },\n            verb: \"\u043C\u0435\u0446\u044C\",\n        },\n        array: {\n            unit: {\n                one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n                few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B\",\n                many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E\",\n            },\n            verb: \"\u043C\u0435\u0446\u044C\",\n        },\n        set: {\n            unit: {\n                one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n                few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B\",\n                many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E\",\n            },\n            verb: \"\u043C\u0435\u0446\u044C\",\n        },\n        file: {\n            unit: {\n                one: \"\u0431\u0430\u0439\u0442\",\n                few: \"\u0431\u0430\u0439\u0442\u044B\",\n                many: \"\u0431\u0430\u0439\u0442\u0430\u045E\",\n            },\n            verb: \"\u043C\u0435\u0446\u044C\",\n        },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0443\u0432\u043E\u0434\",\n        email: \"email \u0430\u0434\u0440\u0430\u0441\",\n        url: \"URL\",\n        emoji: \"\u044D\u043C\u043E\u0434\u0437\u0456\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441\",\n        date: \"ISO \u0434\u0430\u0442\u0430\",\n        time: \"ISO \u0447\u0430\u0441\",\n        duration: \"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C\",\n        ipv4: \"IPv4 \u0430\u0434\u0440\u0430\u0441\",\n        ipv6: \"IPv6 \u0430\u0434\u0440\u0430\u0441\",\n        cidrv4: \"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D\",\n        cidrv6: \"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D\",\n        base64: \"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64\",\n        base64url: \"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url\",\n        json_string: \"JSON \u0440\u0430\u0434\u043E\u043A\",\n        e164: \"\u043D\u0443\u043C\u0430\u0440 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u0443\u0432\u043E\u0434\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u043B\u0456\u043A\",\n        array: \"\u043C\u0430\u0441\u0456\u045E\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${issue.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`;\n                }\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const maxValue = Number(issue.maximum);\n                    const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435\"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n                }\n                return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435\"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const minValue = Number(issue.minimum);\n                    const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n                }\n                return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${issue.keys.length > 1 ? \"\u043A\u043B\u044E\u0447\u044B\" : \"\u043A\u043B\u044E\u0447\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434\";\n            case \"invalid_element\":\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${issue.origin}`;\n            default:\n                return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n        file: { unit: \"\u0431\u0430\u0439\u0442\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n        array: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n        set: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\", verb: \"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0432\u0445\u043E\u0434\",\n        email: \"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441\",\n        url: \"URL\",\n        emoji: \"\u0435\u043C\u043E\u0434\u0436\u0438\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n        date: \"ISO \u0434\u0430\u0442\u0430\",\n        time: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n        duration: \"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442\",\n        ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\",\n        ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\",\n        cidrv4: \"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n        cidrv6: \"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n        base64: \"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437\",\n        base64url: \"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437\",\n        json_string: \"JSON \u043D\u0438\u0437\",\n        e164: \"E.164 \u043D\u043E\u043C\u0435\u0440\",\n        jwt: \"JWT\",\n        template_literal: \"\u0432\u0445\u043E\u0434\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0447\u0438\u0441\u043B\u043E\",\n        array: \"\u043C\u0430\u0441\u0438\u0432\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${issue.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`;\n                }\n                return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin ?? \"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430\"}`;\n                return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin ?? \"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${_issue.pattern}`;\n                let invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D\";\n                if (_issue.format === \"emoji\")\n                    invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E\";\n                if (_issue.format === \"datetime\")\n                    invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E\";\n                if (_issue.format === \"date\")\n                    invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430\";\n                if (_issue.format === \"time\")\n                    invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E\";\n                if (_issue.format === \"duration\")\n                    invalid_adj = \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430\";\n                return `${invalid_adj} ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${issue.keys.length > 1 ? \"\u0438\" : \"\"} \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u043E\u0432\u0435\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434\";\n            case \"invalid_element\":\n                return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${issue.origin}`;\n            default:\n                return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"car\u00E0cters\", verb: \"contenir\" },\n        file: { unit: \"bytes\", verb: \"contenir\" },\n        array: { unit: \"elements\", verb: \"contenir\" },\n        set: { unit: \"elements\", verb: \"contenir\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"entrada\",\n        email: \"adre\u00E7a electr\u00F2nica\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data i hora ISO\",\n        date: \"data ISO\",\n        time: \"hora ISO\",\n        duration: \"durada ISO\",\n        ipv4: \"adre\u00E7a IPv4\",\n        ipv6: \"adre\u00E7a IPv6\",\n        cidrv4: \"rang IPv4\",\n        cidrv6: \"rang IPv6\",\n        base64: \"cadena codificada en base64\",\n        base64url: \"cadena codificada en base64url\",\n        json_string: \"cadena JSON\",\n        e164: \"n\u00FAmero E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrada\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Tipus inv\u00E0lid: s'esperava instanceof ${issue.expected}, s'ha rebut ${received}`;\n                }\n                return `Tipus inv\u00E0lid: s'esperava ${expected}, s'ha rebut ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Valor inv\u00E0lid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opci\u00F3 inv\u00E0lida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"com a m\u00E0xim\" : \"menys de\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingu\u00E9s ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"com a m\u00EDnim\" : \"m\u00E9s de\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Massa petit: s'esperava que ${issue.origin} contingu\u00E9s ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Format inv\u00E0lid: ha de comen\u00E7ar amb \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Format inv\u00E0lid: ha d'acabar amb \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Format inv\u00E0lid: ha d'incloure \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Format inv\u00E0lid: ha de coincidir amb el patr\u00F3 ${_issue.pattern}`;\n                return `Format inv\u00E0lid per a ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `N\u00FAmero inv\u00E0lid: ha de ser m\u00FAltiple de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Clau inv\u00E0lida a ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrada inv\u00E0lida\"; // Could also be \"Tipus d'uni\u00F3 inv\u00E0lid\" but \"Entrada inv\u00E0lida\" is more general\n            case \"invalid_element\":\n                return `Element inv\u00E0lid a ${issue.origin}`;\n            default:\n                return `Entrada inv\u00E0lida`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znak\u016F\", verb: \"m\u00EDt\" },\n        file: { unit: \"bajt\u016F\", verb: \"m\u00EDt\" },\n        array: { unit: \"prvk\u016F\", verb: \"m\u00EDt\" },\n        set: { unit: \"prvk\u016F\", verb: \"m\u00EDt\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"regul\u00E1rn\u00ED v\u00FDraz\",\n        email: \"e-mailov\u00E1 adresa\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"datum a \u010Das ve form\u00E1tu ISO\",\n        date: \"datum ve form\u00E1tu ISO\",\n        time: \"\u010Das ve form\u00E1tu ISO\",\n        duration: \"doba trv\u00E1n\u00ED ISO\",\n        ipv4: \"IPv4 adresa\",\n        ipv6: \"IPv6 adresa\",\n        cidrv4: \"rozsah IPv4\",\n        cidrv6: \"rozsah IPv6\",\n        base64: \"\u0159et\u011Bzec zak\u00F3dovan\u00FD ve form\u00E1tu base64\",\n        base64url: \"\u0159et\u011Bzec zak\u00F3dovan\u00FD ve form\u00E1tu base64url\",\n        json_string: \"\u0159et\u011Bzec ve form\u00E1tu JSON\",\n        e164: \"\u010D\u00EDslo E.164\",\n        jwt: \"JWT\",\n        template_literal: \"vstup\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u010D\u00EDslo\",\n        string: \"\u0159et\u011Bzec\",\n        function: \"funkce\",\n        array: \"pole\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no instanceof ${issue.expected}, obdr\u017Eeno ${received}`;\n                }\n                return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no ${expected}, obdr\u017Eeno ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Neplatn\u00FD vstup: o\u010Dek\u00E1v\u00E1no ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Neplatn\u00E1 mo\u017Enost: o\u010Dek\u00E1v\u00E1na jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Hodnota je p\u0159\u00EDli\u0161 velk\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED m\u00EDt ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvk\u016F\"}`;\n                }\n                return `Hodnota je p\u0159\u00EDli\u0161 velk\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED b\u00FDt ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Hodnota je p\u0159\u00EDli\u0161 mal\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED m\u00EDt ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvk\u016F\"}`;\n                }\n                return `Hodnota je p\u0159\u00EDli\u0161 mal\u00E1: ${issue.origin ?? \"hodnota\"} mus\u00ED b\u00FDt ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED za\u010D\u00EDnat na \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED kon\u010Dit na \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED obsahovat \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Neplatn\u00FD \u0159et\u011Bzec: mus\u00ED odpov\u00EDdat vzoru ${_issue.pattern}`;\n                return `Neplatn\u00FD form\u00E1t ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Neplatn\u00E9 \u010D\u00EDslo: mus\u00ED b\u00FDt n\u00E1sobkem ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Nezn\u00E1m\u00E9 kl\u00ED\u010De: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Neplatn\u00FD kl\u00ED\u010D v ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Neplatn\u00FD vstup\";\n            case \"invalid_element\":\n                return `Neplatn\u00E1 hodnota v ${issue.origin}`;\n            default:\n                return `Neplatn\u00FD vstup`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tegn\", verb: \"havde\" },\n        file: { unit: \"bytes\", verb: \"havde\" },\n        array: { unit: \"elementer\", verb: \"indeholdt\" },\n        set: { unit: \"elementer\", verb: \"indeholdt\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"e-mailadresse\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO dato- og klokkesl\u00E6t\",\n        date: \"ISO-dato\",\n        time: \"ISO-klokkesl\u00E6t\",\n        duration: \"ISO-varighed\",\n        ipv4: \"IPv4-omr\u00E5de\",\n        ipv6: \"IPv6-omr\u00E5de\",\n        cidrv4: \"IPv4-spektrum\",\n        cidrv6: \"IPv6-spektrum\",\n        base64: \"base64-kodet streng\",\n        base64url: \"base64url-kodet streng\",\n        json_string: \"JSON-streng\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        string: \"streng\",\n        number: \"tal\",\n        boolean: \"boolean\",\n        array: \"liste\",\n        object: \"objekt\",\n        set: \"s\u00E6t\",\n        file: \"fil\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Ugyldigt input: forventede instanceof ${issue.expected}, fik ${received}`;\n                }\n                return `Ugyldigt input: forventede ${expected}, fik ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ugyldig v\u00E6rdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ugyldigt valg: forventede en af f\u00F8lgende ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                if (sizing)\n                    return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n                return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                if (sizing) {\n                    return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ugyldig streng: skal matche m\u00F8nsteret ${_issue.pattern}`;\n                return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ugyldigt tal: skal v\u00E6re deleligt med ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Ukendte n\u00F8gler\" : \"Ukendt n\u00F8gle\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ugyldig n\u00F8gle i ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n            case \"invalid_element\":\n                return `Ugyldig v\u00E6rdi i ${issue.origin}`;\n            default:\n                return `Ugyldigt input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"Zeichen\", verb: \"zu haben\" },\n        file: { unit: \"Bytes\", verb: \"zu haben\" },\n        array: { unit: \"Elemente\", verb: \"zu haben\" },\n        set: { unit: \"Elemente\", verb: \"zu haben\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"Eingabe\",\n        email: \"E-Mail-Adresse\",\n        url: \"URL\",\n        emoji: \"Emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-Datum und -Uhrzeit\",\n        date: \"ISO-Datum\",\n        time: \"ISO-Uhrzeit\",\n        duration: \"ISO-Dauer\",\n        ipv4: \"IPv4-Adresse\",\n        ipv6: \"IPv6-Adresse\",\n        cidrv4: \"IPv4-Bereich\",\n        cidrv6: \"IPv6-Bereich\",\n        base64: \"Base64-codierter String\",\n        base64url: \"Base64-URL-codierter String\",\n        json_string: \"JSON-String\",\n        e164: \"E.164-Nummer\",\n        jwt: \"JWT\",\n        template_literal: \"Eingabe\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"Zahl\",\n        array: \"Array\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Ung\u00FCltige Eingabe: erwartet instanceof ${issue.expected}, erhalten ${received}`;\n                }\n                return `Ung\u00FCltige Eingabe: erwartet ${expected}, erhalten ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ung\u00FCltige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ung\u00FCltige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Zu gro\u00DF: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n                return `Zu gro\u00DF: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n                }\n                return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ung\u00FCltiger String: muss mit \"${_issue.prefix}\" beginnen`;\n                if (_issue.format === \"ends_with\")\n                    return `Ung\u00FCltiger String: muss mit \"${_issue.suffix}\" enden`;\n                if (_issue.format === \"includes\")\n                    return `Ung\u00FCltiger String: muss \"${_issue.includes}\" enthalten`;\n                if (_issue.format === \"regex\")\n                    return `Ung\u00FCltiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n                return `Ung\u00FCltig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ung\u00FCltige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Unbekannte Schl\u00FCssel\" : \"Unbekannter Schl\u00FCssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ung\u00FCltiger Schl\u00FCssel in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ung\u00FCltige Eingabe\";\n            case \"invalid_element\":\n                return `Ung\u00FCltiger Wert in ${issue.origin}`;\n            default:\n                return `Ung\u00FCltige Eingabe`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2\", verb: \"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9\" },\n        file: { unit: \"bytes\", verb: \"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9\" },\n        array: { unit: \"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1\", verb: \"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9\" },\n        set: { unit: \"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1\", verb: \"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9\" },\n        map: { unit: \"\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2\", verb: \"\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2\",\n        email: \"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1\",\n        date: \"ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1\",\n        time: \"ISO \u03CE\u03C1\u03B1\",\n        duration: \"ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1\",\n        ipv4: \"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4\",\n        ipv6: \"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6\",\n        mac: \"\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC\",\n        cidrv4: \"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4\",\n        cidrv6: \"\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6\",\n        base64: \"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64\",\n        base64url: \"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url\",\n        json_string: \"\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON\",\n        e164: \"\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (typeof issue.expected === \"string\" && /^[A-Z]/.test(issue.expected)) {\n                    return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${issue.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`;\n                }\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue.origin ?? \"\u03C4\u03B9\u03BC\u03AE\"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1\"}`;\n                return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue.origin ?? \"\u03C4\u03B9\u03BC\u03AE\"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${_issue.pattern}`;\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${issue.keys.length > 1 ? \"\u03B1\" : \"\u03BF\"} \u03BA\u03BB\u03B5\u03B9\u03B4${issue.keys.length > 1 ? \"\u03B9\u03AC\" : \"\u03AF\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2\";\n            case \"invalid_element\":\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${issue.origin}`;\n            default:\n                return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"characters\", verb: \"to have\" },\n        file: { unit: \"bytes\", verb: \"to have\" },\n        array: { unit: \"items\", verb: \"to have\" },\n        set: { unit: \"items\", verb: \"to have\" },\n        map: { unit: \"entries\", verb: \"to have\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"email address\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datetime\",\n        date: \"ISO date\",\n        time: \"ISO time\",\n        duration: \"ISO duration\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        mac: \"MAC address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded string\",\n        base64url: \"base64url-encoded string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 number\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    // type names: missing keys = do not translate (use raw value via ?? fallback)\n    const TypeDictionary = {\n        // Compatibility: \"nan\" -> \"NaN\" for display\n        nan: \"NaN\",\n        // All other type names omitted - they fall back to raw values via ?? operator\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                return `Invalid input: expected ${expected}, received ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Invalid string: must start with \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Invalid string: must end with \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Invalid string: must include \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Invalid string: must match pattern ${_issue.pattern}`;\n                return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Invalid number: must be a multiple of ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Invalid key in ${issue.origin}`;\n            case \"invalid_union\":\n                if (issue.options && Array.isArray(issue.options) && issue.options.length > 0) {\n                    const opts = issue.options.map((o) => `'${o}'`).join(\" | \");\n                    return `Invalid discriminator value. Expected ${opts}`;\n                }\n                return \"Invalid input\";\n            case \"invalid_element\":\n                return `Invalid value in ${issue.origin}`;\n            default:\n                return `Invalid input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karaktrojn\", verb: \"havi\" },\n        file: { unit: \"bajtojn\", verb: \"havi\" },\n        array: { unit: \"elementojn\", verb: \"havi\" },\n        set: { unit: \"elementojn\", verb: \"havi\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"enigo\",\n        email: \"retadreso\",\n        url: \"URL\",\n        emoji: \"emo\u011Dio\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-datotempo\",\n        date: \"ISO-dato\",\n        time: \"ISO-tempo\",\n        duration: \"ISO-da\u016Dro\",\n        ipv4: \"IPv4-adreso\",\n        ipv6: \"IPv6-adreso\",\n        cidrv4: \"IPv4-rango\",\n        cidrv6: \"IPv6-rango\",\n        base64: \"64-ume kodita karaktraro\",\n        base64url: \"URL-64-ume kodita karaktraro\",\n        json_string: \"JSON-karaktraro\",\n        e164: \"E.164-nombro\",\n        jwt: \"JWT\",\n        template_literal: \"enigo\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"nombro\",\n        array: \"tabelo\",\n        null: \"senvalora\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Nevalida enigo: atendi\u011Dis instanceof ${issue.expected}, ricevi\u011Dis ${received}`;\n                }\n                return `Nevalida enigo: atendi\u011Dis ${expected}, ricevi\u011Dis ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Nevalida enigo: atendi\u011Dis ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Nevalida opcio: atendi\u011Dis unu el ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Tro granda: atendi\u011Dis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n                return `Tro granda: atendi\u011Dis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Tro malgranda: atendi\u011Dis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Tro malgranda: atendi\u011Dis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Nevalida karaktraro: devas komenci\u011Di per \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Nevalida karaktraro: devas fini\u011Di per \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n                return `Nevalida ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} \u015Dlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Nevalida \u015Dlosilo en ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Nevalida enigo\";\n            case \"invalid_element\":\n                return `Nevalida valoro en ${issue.origin}`;\n            default:\n                return `Nevalida enigo`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caracteres\", verb: \"tener\" },\n        file: { unit: \"bytes\", verb: \"tener\" },\n        array: { unit: \"elementos\", verb: \"tener\" },\n        set: { unit: \"elementos\", verb: \"tener\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"entrada\",\n        email: \"direcci\u00F3n de correo electr\u00F3nico\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"fecha y hora ISO\",\n        date: \"fecha ISO\",\n        time: \"hora ISO\",\n        duration: \"duraci\u00F3n ISO\",\n        ipv4: \"direcci\u00F3n IPv4\",\n        ipv6: \"direcci\u00F3n IPv6\",\n        cidrv4: \"rango IPv4\",\n        cidrv6: \"rango IPv6\",\n        base64: \"cadena codificada en base64\",\n        base64url: \"URL codificada en base64\",\n        json_string: \"cadena JSON\",\n        e164: \"n\u00FAmero E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrada\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        string: \"texto\",\n        number: \"n\u00FAmero\",\n        boolean: \"booleano\",\n        array: \"arreglo\",\n        object: \"objeto\",\n        set: \"conjunto\",\n        file: \"archivo\",\n        date: \"fecha\",\n        bigint: \"n\u00FAmero grande\",\n        symbol: \"s\u00EDmbolo\",\n        undefined: \"indefinido\",\n        null: \"nulo\",\n        function: \"funci\u00F3n\",\n        map: \"mapa\",\n        record: \"registro\",\n        tuple: \"tupla\",\n        enum: \"enumeraci\u00F3n\",\n        union: \"uni\u00F3n\",\n        literal: \"literal\",\n        promise: \"promesa\",\n        void: \"vac\u00EDo\",\n        never: \"nunca\",\n        unknown: \"desconocido\",\n        any: \"cualquiera\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Entrada inv\u00E1lida: se esperaba instanceof ${issue.expected}, recibido ${received}`;\n                }\n                return `Entrada inv\u00E1lida: se esperaba ${expected}, recibido ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entrada inv\u00E1lida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opci\u00F3n inv\u00E1lida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                if (sizing)\n                    return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n                return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                if (sizing) {\n                    return `Demasiado peque\u00F1o: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Demasiado peque\u00F1o: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Cadena inv\u00E1lida: debe comenzar con \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Cadena inv\u00E1lida: debe terminar en \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Cadena inv\u00E1lida: debe incluir \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Cadena inv\u00E1lida: debe coincidir con el patr\u00F3n ${_issue.pattern}`;\n                return `Inv\u00E1lido ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `N\u00FAmero inv\u00E1lido: debe ser m\u00FAltiplo de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Llave inv\u00E1lida en ${TypeDictionary[issue.origin] ?? issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrada inv\u00E1lida\";\n            case \"invalid_element\":\n                return `Valor inv\u00E1lido en ${TypeDictionary[issue.origin] ?? issue.origin}`;\n            default:\n                return `Entrada inv\u00E1lida`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n        file: { unit: \"\u0628\u0627\u06CC\u062A\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n        array: { unit: \"\u0622\u06CC\u062A\u0645\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n        set: { unit: \"\u0622\u06CC\u062A\u0645\", verb: \"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0648\u0631\u0648\u062F\u06CC\",\n        email: \"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644\",\n        url: \"URL\",\n        emoji: \"\u0627\u06CC\u0645\u0648\u062C\u06CC\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n        date: \"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648\",\n        time: \"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n        duration: \"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648\",\n        ipv4: \"IPv4 \u0622\u062F\u0631\u0633\",\n        ipv6: \"IPv6 \u0622\u062F\u0631\u0633\",\n        cidrv4: \"IPv4 \u062F\u0627\u0645\u0646\u0647\",\n        cidrv6: \"IPv6 \u062F\u0627\u0645\u0646\u0647\",\n        base64: \"base64-encoded \u0631\u0634\u062A\u0647\",\n        base64url: \"base64url-encoded \u0631\u0634\u062A\u0647\",\n        json_string: \"JSON \u0631\u0634\u062A\u0647\",\n        e164: \"E.164 \u0639\u062F\u062F\",\n        jwt: \"JWT\",\n        template_literal: \"\u0648\u0631\u0648\u062F\u06CC\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0639\u062F\u062F\",\n        array: \"\u0622\u0631\u0627\u06CC\u0647\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${issue.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;\n                }\n                return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1) {\n                    return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${util.stringifyPrimitive(issue.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`;\n                }\n                return `\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${util.joinValues(issue.values, \"|\")} \u0645\u06CC\u200C\u0628\u0648\u062F`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue.origin ?? \"\u0645\u0642\u062F\u0627\u0631\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\"} \u0628\u0627\u0634\u062F`;\n                }\n                return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue.origin ?? \"\u0645\u0642\u062F\u0627\u0631\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} \u0628\u0627\u0634\u062F`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} ${sizing.unit} \u0628\u0627\u0634\u062F`;\n                }\n                return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} \u0628\u0627\u0634\u062F`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \"${_issue.prefix}\" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`;\n                }\n                if (_issue.format === \"ends_with\") {\n                    return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \"${_issue.suffix}\" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`;\n                }\n                if (_issue.format === \"includes\") {\n                    return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 \"${_issue.includes}\" \u0628\u0627\u0634\u062F`;\n                }\n                if (_issue.format === \"regex\") {\n                    return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_issue.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`;\n                }\n                return `${FormatDictionary[_issue.format] ?? issue.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n            }\n            case \"not_multiple_of\":\n                return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${issue.divisor} \u0628\u0627\u0634\u062F`;\n            case \"unrecognized_keys\":\n                return `\u06A9\u0644\u06CC\u062F${issue.keys.length > 1 ? \"\u0647\u0627\u06CC\" : \"\"} \u0646\u0627\u0634\u0646\u0627\u0633: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${issue.origin}`;\n            case \"invalid_union\":\n                return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n            case \"invalid_element\":\n                return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${issue.origin}`;\n            default:\n                return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"merkki\u00E4\", subject: \"merkkijonon\" },\n        file: { unit: \"tavua\", subject: \"tiedoston\" },\n        array: { unit: \"alkiota\", subject: \"listan\" },\n        set: { unit: \"alkiota\", subject: \"joukon\" },\n        number: { unit: \"\", subject: \"luvun\" },\n        bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n        int: { unit: \"\", subject: \"kokonaisluvun\" },\n        date: { unit: \"\", subject: \"p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4n\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"s\u00E4\u00E4nn\u00F6llinen lauseke\",\n        email: \"s\u00E4hk\u00F6postiosoite\",\n        url: \"URL-osoite\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-aikaleima\",\n        date: \"ISO-p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4\",\n        time: \"ISO-aika\",\n        duration: \"ISO-kesto\",\n        ipv4: \"IPv4-osoite\",\n        ipv6: \"IPv6-osoite\",\n        cidrv4: \"IPv4-alue\",\n        cidrv6: \"IPv6-alue\",\n        base64: \"base64-koodattu merkkijono\",\n        base64url: \"base64url-koodattu merkkijono\",\n        json_string: \"JSON-merkkijono\",\n        e164: \"E.164-luku\",\n        jwt: \"JWT\",\n        template_literal: \"templaattimerkkijono\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Virheellinen tyyppi: odotettiin instanceof ${issue.expected}, oli ${received}`;\n                }\n                return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Virheellinen sy\u00F6te: t\u00E4ytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Virheellinen valinta: t\u00E4ytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Liian suuri: ${sizing.subject} t\u00E4ytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n                }\n                return `Liian suuri: arvon t\u00E4ytyy olla ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Liian pieni: ${sizing.subject} t\u00E4ytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n                }\n                return `Liian pieni: arvon t\u00E4ytyy olla ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Virheellinen sy\u00F6te: t\u00E4ytyy alkaa \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Virheellinen sy\u00F6te: t\u00E4ytyy loppua \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Virheellinen sy\u00F6te: t\u00E4ytyy sis\u00E4lt\u00E4\u00E4 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\") {\n                    return `Virheellinen sy\u00F6te: t\u00E4ytyy vastata s\u00E4\u00E4nn\u00F6llist\u00E4 lauseketta ${_issue.pattern}`;\n                }\n                return `Virheellinen ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Virheellinen luku: t\u00E4ytyy olla luvun ${issue.divisor} monikerta`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return \"Virheellinen avain tietueessa\";\n            case \"invalid_union\":\n                return \"Virheellinen unioni\";\n            case \"invalid_element\":\n                return \"Virheellinen arvo joukossa\";\n            default:\n                return `Virheellinen sy\u00F6te`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caract\u00E8res\", verb: \"avoir\" },\n        file: { unit: \"octets\", verb: \"avoir\" },\n        array: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n        set: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"entr\u00E9e\",\n        email: \"adresse e-mail\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"date et heure ISO\",\n        date: \"date ISO\",\n        time: \"heure ISO\",\n        duration: \"dur\u00E9e ISO\",\n        ipv4: \"adresse IPv4\",\n        ipv6: \"adresse IPv6\",\n        cidrv4: \"plage IPv4\",\n        cidrv6: \"plage IPv6\",\n        base64: \"cha\u00EEne encod\u00E9e en base64\",\n        base64url: \"cha\u00EEne encod\u00E9e en base64url\",\n        json_string: \"cha\u00EEne JSON\",\n        e164: \"num\u00E9ro E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entr\u00E9e\",\n    };\n    const TypeDictionary = {\n        string: \"cha\u00EEne\",\n        number: \"nombre\",\n        int: \"entier\",\n        boolean: \"bool\u00E9en\",\n        bigint: \"grand entier\",\n        symbol: \"symbole\",\n        undefined: \"ind\u00E9fini\",\n        null: \"null\",\n        never: \"jamais\",\n        void: \"vide\",\n        date: \"date\",\n        array: \"tableau\",\n        object: \"objet\",\n        tuple: \"tuple\",\n        record: \"enregistrement\",\n        map: \"carte\",\n        set: \"ensemble\",\n        file: \"fichier\",\n        nonoptional: \"non-optionnel\",\n        nan: \"NaN\",\n        function: \"fonction\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Entr\u00E9e invalide : instanceof ${issue.expected} attendu, ${received} re\u00E7u`;\n                }\n                return `Entr\u00E9e invalide : ${expected} attendu, ${received} re\u00E7u`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entr\u00E9e invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n                return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Trop grand : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u00E9l\u00E9ment(s)\"}`;\n                return `Trop grand : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit \u00EAtre ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Trop petit : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                return `Trop petit : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit \u00EAtre ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Cha\u00EEne invalide : doit commencer par \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Cha\u00EEne invalide : doit se terminer par \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Cha\u00EEne invalide : doit inclure \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Cha\u00EEne invalide : doit correspondre au mod\u00E8le ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;\n            }\n            case \"not_multiple_of\":\n                return `Nombre invalide : doit \u00EAtre un multiple de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Cl\u00E9${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Cl\u00E9 invalide dans ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entr\u00E9e invalide\";\n            case \"invalid_element\":\n                return `Valeur invalide dans ${issue.origin}`;\n            default:\n                return `Entr\u00E9e invalide`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caract\u00E8res\", verb: \"avoir\" },\n        file: { unit: \"octets\", verb: \"avoir\" },\n        array: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n        set: { unit: \"\u00E9l\u00E9ments\", verb: \"avoir\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"entr\u00E9e\",\n        email: \"adresse courriel\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"date-heure ISO\",\n        date: \"date ISO\",\n        time: \"heure ISO\",\n        duration: \"dur\u00E9e ISO\",\n        ipv4: \"adresse IPv4\",\n        ipv6: \"adresse IPv6\",\n        cidrv4: \"plage IPv4\",\n        cidrv6: \"plage IPv6\",\n        base64: \"cha\u00EEne encod\u00E9e en base64\",\n        base64url: \"cha\u00EEne encod\u00E9e en base64url\",\n        json_string: \"cha\u00EEne JSON\",\n        e164: \"num\u00E9ro E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entr\u00E9e\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Entr\u00E9e invalide : attendu instanceof ${issue.expected}, re\u00E7u ${received}`;\n                }\n                return `Entr\u00E9e invalide : attendu ${expected}, re\u00E7u ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entr\u00E9e invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"\u2264\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n                return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"\u2265\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Cha\u00EEne invalide : doit commencer par \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Cha\u00EEne invalide : doit se terminer par \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Cha\u00EEne invalide : doit inclure \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Cha\u00EEne invalide : doit correspondre au motif ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;\n            }\n            case \"not_multiple_of\":\n                return `Nombre invalide : doit \u00EAtre un multiple de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Cl\u00E9${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Cl\u00E9 invalide dans ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entr\u00E9e invalide\";\n            case \"invalid_element\":\n                return `Valeur invalide dans ${issue.origin}`;\n            default:\n                return `Entr\u00E9e invalide`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    // Hebrew labels + grammatical gender\n    const TypeNames = {\n        string: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA\", gender: \"f\" },\n        number: { label: \"\u05DE\u05E1\u05E4\u05E8\", gender: \"m\" },\n        boolean: { label: \"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9\", gender: \"m\" },\n        bigint: { label: \"BigInt\", gender: \"m\" },\n        date: { label: \"\u05EA\u05D0\u05E8\u05D9\u05DA\", gender: \"m\" },\n        array: { label: \"\u05DE\u05E2\u05E8\u05DA\", gender: \"m\" },\n        object: { label: \"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8\", gender: \"m\" },\n        null: { label: \"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)\", gender: \"m\" },\n        undefined: { label: \"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)\", gender: \"m\" },\n        symbol: { label: \"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)\", gender: \"m\" },\n        function: { label: \"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4\", gender: \"f\" },\n        map: { label: \"\u05DE\u05E4\u05D4 (Map)\", gender: \"f\" },\n        set: { label: \"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)\", gender: \"f\" },\n        file: { label: \"\u05E7\u05D5\u05D1\u05E5\", gender: \"m\" },\n        promise: { label: \"Promise\", gender: \"m\" },\n        NaN: { label: \"NaN\", gender: \"m\" },\n        unknown: { label: \"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2\", gender: \"m\" },\n        value: { label: \"\u05E2\u05E8\u05DA\", gender: \"m\" },\n    };\n    // Sizing units for size-related messages + localized origin labels\n    const Sizable = {\n        string: { unit: \"\u05EA\u05D5\u05D5\u05D9\u05DD\", shortLabel: \"\u05E7\u05E6\u05E8\", longLabel: \"\u05D0\u05E8\u05D5\u05DA\" },\n        file: { unit: \"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" },\n        array: { unit: \"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" },\n        set: { unit: \"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" },\n        number: { unit: \"\", shortLabel: \"\u05E7\u05D8\u05DF\", longLabel: \"\u05D2\u05D3\u05D5\u05DC\" }, // no unit\n    };\n    // Helpers \u2014 labels, articles, and verbs\n    const typeEntry = (t) => (t ? TypeNames[t] : undefined);\n    const typeLabel = (t) => {\n        const e = typeEntry(t);\n        if (e)\n            return e.label;\n        // fallback: show raw string if unknown\n        return t ?? TypeNames.unknown.label;\n    };\n    const withDefinite = (t) => `\u05D4${typeLabel(t)}`;\n    const verbFor = (t) => {\n        const e = typeEntry(t);\n        const gender = e?.gender ?? \"m\";\n        return gender === \"f\" ? \"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA\" : \"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA\";\n    };\n    const getSizing = (origin) => {\n        if (!origin)\n            return null;\n        return Sizable[origin] ?? null;\n    };\n    const FormatDictionary = {\n        regex: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n        email: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC\", gender: \"f\" },\n        url: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA\", gender: \"f\" },\n        emoji: { label: \"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9\", gender: \"m\" },\n        uuid: { label: \"UUID\", gender: \"m\" },\n        nanoid: { label: \"nanoid\", gender: \"m\" },\n        guid: { label: \"GUID\", gender: \"m\" },\n        cuid: { label: \"cuid\", gender: \"m\" },\n        cuid2: { label: \"cuid2\", gender: \"m\" },\n        ulid: { label: \"ULID\", gender: \"m\" },\n        xid: { label: \"XID\", gender: \"m\" },\n        ksuid: { label: \"KSUID\", gender: \"m\" },\n        datetime: { label: \"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO\", gender: \"m\" },\n        date: { label: \"\u05EA\u05D0\u05E8\u05D9\u05DA ISO\", gender: \"m\" },\n        time: { label: \"\u05D6\u05DE\u05DF ISO\", gender: \"m\" },\n        duration: { label: \"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO\", gender: \"m\" },\n        ipv4: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4\", gender: \"f\" },\n        ipv6: { label: \"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6\", gender: \"f\" },\n        cidrv4: { label: \"\u05D8\u05D5\u05D5\u05D7 IPv4\", gender: \"m\" },\n        cidrv6: { label: \"\u05D8\u05D5\u05D5\u05D7 IPv6\", gender: \"m\" },\n        base64: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64\", gender: \"f\" },\n        base64url: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA\", gender: \"f\" },\n        json_string: { label: \"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON\", gender: \"f\" },\n        e164: { label: \"\u05DE\u05E1\u05E4\u05E8 E.164\", gender: \"m\" },\n        jwt: { label: \"JWT\", gender: \"m\" },\n        ends_with: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n        includes: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n        lowercase: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n        starts_with: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n        uppercase: { label: \"\u05E7\u05DC\u05D8\", gender: \"m\" },\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                // Expected type: show without definite article for clearer Hebrew\n                const expectedKey = issue.expected;\n                const expected = TypeDictionary[expectedKey ?? \"\"] ?? typeLabel(expectedKey);\n                // Received: show localized label if known, otherwise constructor/raw\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${issue.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`;\n                }\n                return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`;\n            }\n            case \"invalid_value\": {\n                if (issue.values.length === 1) {\n                    return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${util.stringifyPrimitive(issue.values[0])}`;\n                }\n                // Join values with proper Hebrew formatting\n                const stringified = issue.values.map((v) => util.stringifyPrimitive(v));\n                if (issue.values.length === 2) {\n                    return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${stringified[0]} \u05D0\u05D5 ${stringified[1]}`;\n                }\n                // For 3+ values: \"a\", \"b\" \u05D0\u05D5 \"c\"\n                const lastValue = stringified[stringified.length - 1];\n                const restValues = stringified.slice(0, -1).join(\", \");\n                return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${restValues} \u05D0\u05D5 ${lastValue}`;\n            }\n            case \"too_big\": {\n                const sizing = getSizing(issue.origin);\n                const subject = withDefinite(issue.origin ?? \"value\");\n                if (issue.origin === \"string\") {\n                    // Special handling for strings - more natural Hebrew\n                    return `${sizing?.longLabel ?? \"\u05D0\u05E8\u05D5\u05DA\"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue.maximum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA\" : \"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8\"}`.trim();\n                }\n                if (issue.origin === \"number\") {\n                    // Natural Hebrew for numbers\n                    const comparison = issue.inclusive ? `\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue.maximum}` : `\u05E7\u05D8\u05DF \u05DE-${issue.maximum}`;\n                    return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`;\n                }\n                if (issue.origin === \"array\" || issue.origin === \"set\") {\n                    // Natural Hebrew for arrays and sets\n                    const verb = issue.origin === \"set\" ? \"\u05E6\u05E8\u05D9\u05DB\u05D4\" : \"\u05E6\u05E8\u05D9\u05DA\";\n                    const comparison = issue.inclusive\n                        ? `${issue.maximum} ${sizing?.unit ?? \"\"} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`\n                        : `\u05E4\u05D7\u05D5\u05EA \u05DE-${issue.maximum} ${sizing?.unit ?? \"\"}`;\n                    return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim();\n                }\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const be = verbFor(issue.origin ?? \"value\");\n                if (sizing?.unit) {\n                    return `${sizing.longLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n                }\n                return `${sizing?.longLabel ?? \"\u05D2\u05D3\u05D5\u05DC\"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const sizing = getSizing(issue.origin);\n                const subject = withDefinite(issue.origin ?? \"value\");\n                if (issue.origin === \"string\") {\n                    // Special handling for strings - more natural Hebrew\n                    return `${sizing?.shortLabel ?? \"\u05E7\u05E6\u05E8\"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue.minimum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8\" : \"\u05DC\u05E4\u05D7\u05D5\u05EA\"}`.trim();\n                }\n                if (issue.origin === \"number\") {\n                    // Natural Hebrew for numbers\n                    const comparison = issue.inclusive ? `\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue.minimum}` : `\u05D2\u05D3\u05D5\u05DC \u05DE-${issue.minimum}`;\n                    return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`;\n                }\n                if (issue.origin === \"array\" || issue.origin === \"set\") {\n                    // Natural Hebrew for arrays and sets\n                    const verb = issue.origin === \"set\" ? \"\u05E6\u05E8\u05D9\u05DB\u05D4\" : \"\u05E6\u05E8\u05D9\u05DA\";\n                    // Special case for singular (minimum === 1)\n                    if (issue.minimum === 1 && issue.inclusive) {\n                        const singularPhrase = issue.origin === \"set\" ? \"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3\" : \"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3\";\n                        return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${singularPhrase}`;\n                    }\n                    const comparison = issue.inclusive\n                        ? `${issue.minimum} ${sizing?.unit ?? \"\"} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`\n                        : `\u05D9\u05D5\u05EA\u05E8 \u05DE-${issue.minimum} ${sizing?.unit ?? \"\"}`;\n                    return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim();\n                }\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const be = verbFor(issue.origin ?? \"value\");\n                if (sizing?.unit) {\n                    return `${sizing.shortLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `${sizing?.shortLabel ?? \"\u05E7\u05D8\u05DF\"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                // These apply to strings \u2014 use feminine grammar + \u05D4\u05F3 \u05D4\u05D9\u05D3\u05D9\u05E2\u05D4\n                if (_issue.format === \"starts_with\")\n                    return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${_issue.pattern}`;\n                // Handle gender agreement for formats\n                const nounEntry = FormatDictionary[_issue.format];\n                const noun = nounEntry?.label ?? _issue.format;\n                const gender = nounEntry?.gender ?? \"m\";\n                const adjective = gender === \"f\" ? \"\u05EA\u05E7\u05D9\u05E0\u05D4\" : \"\u05EA\u05E7\u05D9\u05DF\";\n                return `${noun} \u05DC\u05D0 ${adjective}`;\n            }\n            case \"not_multiple_of\":\n                return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u05DE\u05E4\u05EA\u05D7${issue.keys.length > 1 ? \"\u05D5\u05EA\" : \"\"} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${issue.keys.length > 1 ? \"\u05D9\u05DD\" : \"\u05D4\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\": {\n                return `\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8`;\n            }\n            case \"invalid_union\":\n                return \"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF\";\n            case \"invalid_element\": {\n                const place = withDefinite(issue.origin ?? \"array\");\n                return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${place}`;\n            }\n            default:\n                return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znakova\", verb: \"imati\" },\n        file: { unit: \"bajtova\", verb: \"imati\" },\n        array: { unit: \"stavki\", verb: \"imati\" },\n        set: { unit: \"stavki\", verb: \"imati\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"unos\",\n        email: \"email adresa\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datum i vrijeme\",\n        date: \"ISO datum\",\n        time: \"ISO vrijeme\",\n        duration: \"ISO trajanje\",\n        ipv4: \"IPv4 adresa\",\n        ipv6: \"IPv6 adresa\",\n        cidrv4: \"IPv4 raspon\",\n        cidrv6: \"IPv6 raspon\",\n        base64: \"base64 kodirani tekst\",\n        base64url: \"base64url kodirani tekst\",\n        json_string: \"JSON tekst\",\n        e164: \"E.164 broj\",\n        jwt: \"JWT\",\n        template_literal: \"unos\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        string: \"tekst\",\n        number: \"broj\",\n        boolean: \"boolean\",\n        array: \"niz\",\n        object: \"objekt\",\n        set: \"skup\",\n        file: \"datoteka\",\n        date: \"datum\",\n        bigint: \"bigint\",\n        symbol: \"simbol\",\n        undefined: \"undefined\",\n        null: \"null\",\n        function: \"funkcija\",\n        map: \"mapa\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Neispravan unos: o\u010Dekuje se instanceof ${issue.expected}, a primljeno je ${received}`;\n                }\n                return `Neispravan unos: o\u010Dekuje se ${expected}, a primljeno je ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Neispravna vrijednost: o\u010Dekivano ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Neispravna opcija: o\u010Dekivano jedno od ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                if (sizing)\n                    return `Preveliko: o\u010Dekivano da ${origin ?? \"vrijednost\"} ima ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemenata\"}`;\n                return `Preveliko: o\u010Dekivano da ${origin ?? \"vrijednost\"} bude ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                if (sizing) {\n                    return `Premalo: o\u010Dekivano da ${origin} ima ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Premalo: o\u010Dekivano da ${origin} bude ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Neispravan tekst: mora zapo\u010Dinjati s \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Neispravan tekst: mora zavr\u0161avati s \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Neispravan tekst: mora sadr\u017Eavati \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`;\n                return `Neispravna ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Neispravan broj: mora biti vi\u0161ekratnik od ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Neprepoznat${issue.keys.length > 1 ? \"i klju\u010Devi\" : \" klju\u010D\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Neispravan klju\u010D u ${TypeDictionary[issue.origin] ?? issue.origin}`;\n            case \"invalid_union\":\n                return \"Neispravan unos\";\n            case \"invalid_element\":\n                return `Neispravna vrijednost u ${TypeDictionary[issue.origin] ?? issue.origin}`;\n            default:\n                return `Neispravan unos`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karakter\", verb: \"legyen\" },\n        file: { unit: \"byte\", verb: \"legyen\" },\n        array: { unit: \"elem\", verb: \"legyen\" },\n        set: { unit: \"elem\", verb: \"legyen\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"bemenet\",\n        email: \"email c\u00EDm\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO id\u0151b\u00E9lyeg\",\n        date: \"ISO d\u00E1tum\",\n        time: \"ISO id\u0151\",\n        duration: \"ISO id\u0151intervallum\",\n        ipv4: \"IPv4 c\u00EDm\",\n        ipv6: \"IPv6 c\u00EDm\",\n        cidrv4: \"IPv4 tartom\u00E1ny\",\n        cidrv6: \"IPv6 tartom\u00E1ny\",\n        base64: \"base64-k\u00F3dolt string\",\n        base64url: \"base64url-k\u00F3dolt string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 sz\u00E1m\",\n        jwt: \"JWT\",\n        template_literal: \"bemenet\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"sz\u00E1m\",\n        array: \"t\u00F6mb\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k instanceof ${issue.expected}, a kapott \u00E9rt\u00E9k ${received}`;\n                }\n                return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k ${expected}, a kapott \u00E9rt\u00E9k ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u00C9rv\u00E9nytelen bemenet: a v\u00E1rt \u00E9rt\u00E9k ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u00C9rv\u00E9nytelen opci\u00F3: valamelyik \u00E9rt\u00E9k v\u00E1rt ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `T\u00FAl nagy: ${issue.origin ?? \"\u00E9rt\u00E9k\"} m\u00E9rete t\u00FAl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n                return `T\u00FAl nagy: a bemeneti \u00E9rt\u00E9k ${issue.origin ?? \"\u00E9rt\u00E9k\"} t\u00FAl nagy: ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `T\u00FAl kicsi: a bemeneti \u00E9rt\u00E9k ${issue.origin} m\u00E9rete t\u00FAl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `T\u00FAl kicsi: a bemeneti \u00E9rt\u00E9k ${issue.origin} t\u00FAl kicsi ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u00C9rv\u00E9nytelen string: \"${_issue.prefix}\" \u00E9rt\u00E9kkel kell kezd\u0151dnie`;\n                if (_issue.format === \"ends_with\")\n                    return `\u00C9rv\u00E9nytelen string: \"${_issue.suffix}\" \u00E9rt\u00E9kkel kell v\u00E9gz\u0151dnie`;\n                if (_issue.format === \"includes\")\n                    return `\u00C9rv\u00E9nytelen string: \"${_issue.includes}\" \u00E9rt\u00E9ket kell tartalmaznia`;\n                if (_issue.format === \"regex\")\n                    return `\u00C9rv\u00E9nytelen string: ${_issue.pattern} mint\u00E1nak kell megfelelnie`;\n                return `\u00C9rv\u00E9nytelen ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u00C9rv\u00E9nytelen sz\u00E1m: ${issue.divisor} t\u00F6bbsz\u00F6r\u00F6s\u00E9nek kell lennie`;\n            case \"unrecognized_keys\":\n                return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u00C9rv\u00E9nytelen kulcs ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u00C9rv\u00E9nytelen bemenet\";\n            case \"invalid_element\":\n                return `\u00C9rv\u00E9nytelen \u00E9rt\u00E9k: ${issue.origin}`;\n            default:\n                return `\u00C9rv\u00E9nytelen bemenet`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nfunction getArmenianPlural(count, one, many) {\n    return Math.abs(count) === 1 ? one : many;\n}\nfunction withDefiniteArticle(word) {\n    if (!word)\n        return \"\";\n    const vowels = [\"\u0561\", \"\u0565\", \"\u0568\", \"\u056B\", \"\u0578\", \"\u0578\u0582\", \"\u0585\"];\n    const lastChar = word[word.length - 1];\n    return word + (vowels.includes(lastChar) ? \"\u0576\" : \"\u0568\");\n}\nconst error = () => {\n    const Sizable = {\n        string: {\n            unit: {\n                one: \"\u0576\u0577\u0561\u0576\",\n                many: \"\u0576\u0577\u0561\u0576\u0576\u0565\u0580\",\n            },\n            verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n        },\n        file: {\n            unit: {\n                one: \"\u0562\u0561\u0575\u0569\",\n                many: \"\u0562\u0561\u0575\u0569\u0565\u0580\",\n            },\n            verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n        },\n        array: {\n            unit: {\n                one: \"\u057F\u0561\u0580\u0580\",\n                many: \"\u057F\u0561\u0580\u0580\u0565\u0580\",\n            },\n            verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n        },\n        set: {\n            unit: {\n                one: \"\u057F\u0561\u0580\u0580\",\n                many: \"\u057F\u0561\u0580\u0580\u0565\u0580\",\n            },\n            verb: \"\u0578\u0582\u0576\u0565\u0576\u0561\u056C\",\n        },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0574\u0578\u0582\u057F\u0584\",\n        email: \"\u0567\u056C. \u0570\u0561\u057D\u0581\u0565\",\n        url: \"URL\",\n        emoji: \"\u0567\u0574\u0578\u057B\u056B\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574\",\n        date: \"ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E\",\n        time: \"ISO \u056A\u0561\u0574\",\n        duration: \"ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576\",\n        ipv4: \"IPv4 \u0570\u0561\u057D\u0581\u0565\",\n        ipv6: \"IPv6 \u0570\u0561\u057D\u0581\u0565\",\n        cidrv4: \"IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584\",\n        cidrv6: \"IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584\",\n        base64: \"base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572\",\n        base64url: \"base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572\",\n        json_string: \"JSON \u057F\u0578\u0572\",\n        e164: \"E.164 \u0570\u0561\u0574\u0561\u0580\",\n        jwt: \"JWT\",\n        template_literal: \"\u0574\u0578\u0582\u057F\u0584\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0569\u056B\u057E\",\n        array: \"\u0566\u0561\u0576\u0563\u057E\u0561\u056E\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${issue.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`;\n                }\n                return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${util.stringifyPrimitive(issue.values[1])}`;\n                return `\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const maxValue = Number(issue.maximum);\n                    const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many);\n                    return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin ?? \"\u0561\u0580\u056A\u0565\u0584\")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue.maximum.toString()} ${unit}`;\n                }\n                return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin ?? \"\u0561\u0580\u056A\u0565\u0584\")} \u056C\u056B\u0576\u056B ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const minValue = Number(issue.minimum);\n                    const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many);\n                    return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue.minimum.toString()} ${unit}`;\n                }\n                return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue.origin)} \u056C\u056B\u0576\u056B ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B \"${_issue.prefix}\"-\u0578\u057E`;\n                if (_issue.format === \"ends_with\")\n                    return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B \"${_issue.suffix}\"-\u0578\u057E`;\n                if (_issue.format === \"includes\")\n                    return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${_issue.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`;\n                return `\u054D\u056D\u0561\u056C ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${issue.divisor}-\u056B`;\n            case \"unrecognized_keys\":\n                return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${issue.keys.length > 1 ? \"\u0576\u0565\u0580\" : \"\"}. ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${withDefiniteArticle(issue.origin)}-\u0578\u0582\u0574`;\n            case \"invalid_union\":\n                return \"\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\";\n            case \"invalid_element\":\n                return `\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${withDefiniteArticle(issue.origin)}-\u0578\u0582\u0574`;\n            default:\n                return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karakter\", verb: \"memiliki\" },\n        file: { unit: \"byte\", verb: \"memiliki\" },\n        array: { unit: \"item\", verb: \"memiliki\" },\n        set: { unit: \"item\", verb: \"memiliki\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"alamat email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"tanggal dan waktu format ISO\",\n        date: \"tanggal format ISO\",\n        time: \"jam format ISO\",\n        duration: \"durasi format ISO\",\n        ipv4: \"alamat IPv4\",\n        ipv6: \"alamat IPv6\",\n        cidrv4: \"rentang alamat IPv4\",\n        cidrv6: \"rentang alamat IPv6\",\n        base64: \"string dengan enkode base64\",\n        base64url: \"string dengan enkode base64url\",\n        json_string: \"string JSON\",\n        e164: \"angka E.164\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Input tidak valid: diharapkan instanceof ${issue.expected}, diterima ${received}`;\n                }\n                return `Input tidak valid: diharapkan ${expected}, diterima ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n                return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} tidak valid`;\n            }\n            case \"not_multiple_of\":\n                return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Kunci tidak valid di ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Input tidak valid\";\n            case \"invalid_element\":\n                return `Nilai tidak valid di ${issue.origin}`;\n            default:\n                return `Input tidak valid`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"stafi\", verb: \"a\u00F0 hafa\" },\n        file: { unit: \"b\u00E6ti\", verb: \"a\u00F0 hafa\" },\n        array: { unit: \"hluti\", verb: \"a\u00F0 hafa\" },\n        set: { unit: \"hluti\", verb: \"a\u00F0 hafa\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"gildi\",\n        email: \"netfang\",\n        url: \"vefsl\u00F3\u00F0\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO dagsetning og t\u00EDmi\",\n        date: \"ISO dagsetning\",\n        time: \"ISO t\u00EDmi\",\n        duration: \"ISO t\u00EDmalengd\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded strengur\",\n        base64url: \"base64url-encoded strengur\",\n        json_string: \"JSON strengur\",\n        e164: \"E.164 t\u00F6lugildi\",\n        jwt: \"JWT\",\n        template_literal: \"gildi\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"n\u00FAmer\",\n        array: \"fylki\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Rangt gildi: \u00DE\u00FA sl\u00F3st inn ${received} \u00FEar sem \u00E1 a\u00F0 vera instanceof ${issue.expected}`;\n                }\n                return `Rangt gildi: \u00DE\u00FA sl\u00F3st inn ${received} \u00FEar sem \u00E1 a\u00F0 vera ${expected}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Rangt gildi: gert r\u00E1\u00F0 fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u00D3gilt val: m\u00E1 vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Of st\u00F3rt: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n                return `Of st\u00F3rt: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin ?? \"gildi\"} s\u00E9 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Of l\u00EDti\u00F0: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Of l\u00EDti\u00F0: gert er r\u00E1\u00F0 fyrir a\u00F0 ${issue.origin} s\u00E9 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 byrja \u00E1 \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 enda \u00E1 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 innihalda \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u00D3gildur strengur: ver\u00F0ur a\u00F0 fylgja mynstri ${_issue.pattern}`;\n                return `Rangt ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `R\u00F6ng tala: ver\u00F0ur a\u00F0 vera margfeldi af ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u00D3\u00FEekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Rangur lykill \u00ED ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Rangt gildi\";\n            case \"invalid_element\":\n                return `Rangt gildi \u00ED ${issue.origin}`;\n            default:\n                return `Rangt gildi`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caratteri\", verb: \"avere\" },\n        file: { unit: \"byte\", verb: \"avere\" },\n        array: { unit: \"elementi\", verb: \"avere\" },\n        set: { unit: \"elementi\", verb: \"avere\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"indirizzo email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data e ora ISO\",\n        date: \"data ISO\",\n        time: \"ora ISO\",\n        duration: \"durata ISO\",\n        ipv4: \"indirizzo IPv4\",\n        ipv6: \"indirizzo IPv6\",\n        cidrv4: \"intervallo IPv4\",\n        cidrv6: \"intervallo IPv6\",\n        base64: \"stringa codificata in base64\",\n        base64url: \"URL codificata in base64\",\n        json_string: \"stringa JSON\",\n        e164: \"numero E.164\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"numero\",\n        array: \"vettore\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Input non valido: atteso instanceof ${issue.expected}, ricevuto ${received}`;\n                }\n                return `Input non valido: atteso ${expected}, ricevuto ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n                return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n                return `Input non valido: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Chiave non valida in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Input non valido\";\n            case \"invalid_element\":\n                return `Valore non valido in ${issue.origin}`;\n            default:\n                return `Input non valido`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u6587\u5B57\", verb: \"\u3067\u3042\u308B\" },\n        file: { unit: \"\u30D0\u30A4\u30C8\", verb: \"\u3067\u3042\u308B\" },\n        array: { unit: \"\u8981\u7D20\", verb: \"\u3067\u3042\u308B\" },\n        set: { unit: \"\u8981\u7D20\", verb: \"\u3067\u3042\u308B\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u5165\u529B\u5024\",\n        email: \"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\",\n        url: \"URL\",\n        emoji: \"\u7D75\u6587\u5B57\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO\u65E5\u6642\",\n        date: \"ISO\u65E5\u4ED8\",\n        time: \"ISO\u6642\u523B\",\n        duration: \"ISO\u671F\u9593\",\n        ipv4: \"IPv4\u30A2\u30C9\u30EC\u30B9\",\n        ipv6: \"IPv6\u30A2\u30C9\u30EC\u30B9\",\n        cidrv4: \"IPv4\u7BC4\u56F2\",\n        cidrv6: \"IPv6\u7BC4\u56F2\",\n        base64: \"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\",\n        base64url: \"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\",\n        json_string: \"JSON\u6587\u5B57\u5217\",\n        e164: \"E.164\u756A\u53F7\",\n        jwt: \"JWT\",\n        template_literal: \"\u5165\u529B\u5024\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u6570\u5024\",\n        array: \"\u914D\u5217\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u7121\u52B9\u306A\u5165\u529B: instanceof ${issue.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;\n                }\n                return `\u7121\u52B9\u306A\u5165\u529B: ${expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u7121\u52B9\u306A\u5165\u529B: ${util.stringifyPrimitive(issue.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`;\n                return `\u7121\u52B9\u306A\u9078\u629E: ${util.joinValues(issue.values, \"\u3001\")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"\u4EE5\u4E0B\u3067\u3042\u308B\" : \"\u3088\u308A\u5C0F\u3055\u3044\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue.origin ?? \"\u5024\"}\u306F${issue.maximum.toString()}${sizing.unit ?? \"\u8981\u7D20\"}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n                return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue.origin ?? \"\u5024\"}\u306F${issue.maximum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"\u4EE5\u4E0A\u3067\u3042\u308B\" : \"\u3088\u308A\u5927\u304D\u3044\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue.origin}\u306F${issue.minimum.toString()}${sizing.unit}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n                return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue.origin}\u306F${issue.minimum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.prefix}\"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n                if (_issue.format === \"ends_with\")\n                    return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.suffix}\"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n                if (_issue.format === \"includes\")\n                    return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \"${_issue.includes}\"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n                if (_issue.format === \"regex\")\n                    return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_issue.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n                return `\u7121\u52B9\u306A${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u7121\u52B9\u306A\u6570\u5024: ${issue.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;\n            case \"unrecognized_keys\":\n                return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${issue.keys.length > 1 ? \"\u7FA4\" : \"\"}: ${util.joinValues(issue.keys, \"\u3001\")}`;\n            case \"invalid_key\":\n                return `${issue.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;\n            case \"invalid_union\":\n                return \"\u7121\u52B9\u306A\u5165\u529B\";\n            case \"invalid_element\":\n                return `${issue.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;\n            default:\n                return `\u7121\u52B9\u306A\u5165\u529B`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n        file: { unit: \"\u10D1\u10D0\u10D8\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n        array: { unit: \"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n        set: { unit: \"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8\", verb: \"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\",\n        email: \"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n        url: \"URL\",\n        emoji: \"\u10D4\u10DB\u10DD\u10EF\u10D8\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD\",\n        date: \"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8\",\n        time: \"\u10D3\u10E0\u10DD\",\n        duration: \"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0\",\n        ipv4: \"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n        ipv6: \"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8\",\n        cidrv4: \"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8\",\n        cidrv6: \"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8\",\n        base64: \"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8\",\n        base64url: \"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8\",\n        json_string: \"JSON \u10D5\u10D4\u10DA\u10D8\",\n        e164: \"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8\",\n        jwt: \"JWT\",\n        template_literal: \"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8\",\n        string: \"\u10D5\u10D4\u10DA\u10D8\",\n        boolean: \"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8\",\n        function: \"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0\",\n        array: \"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${issue.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`;\n                }\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${util.joinValues(issue.values, \"|\")}-\u10D3\u10D0\u10DC`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? \"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n                return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin ?? \"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0\"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \"${_issue.prefix}\"-\u10D8\u10D7`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \"${_issue.suffix}\"-\u10D8\u10D7`;\n                if (_issue.format === \"includes\")\n                    return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 \"${_issue.includes}\"-\u10E1`;\n                if (_issue.format === \"regex\")\n                    return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`;\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;\n            case \"unrecognized_keys\":\n                return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue.keys.length > 1 ? \"\u10D4\u10D1\u10D8\" : \"\u10D8\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue.origin}-\u10E8\u10D8`;\n            case \"invalid_union\":\n                return \"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0\";\n            case \"invalid_element\":\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue.origin}-\u10E8\u10D8`;\n            default:\n                return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n        file: { unit: \"\u1794\u17C3\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n        array: { unit: \"\u1792\u17B6\u178F\u17BB\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n        set: { unit: \"\u1792\u17B6\u178F\u17BB\", verb: \"\u1782\u17BD\u179A\u1798\u17B6\u1793\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\",\n        email: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B\",\n        url: \"URL\",\n        emoji: \"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO\",\n        date: \"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO\",\n        time: \"\u1798\u17C9\u17C4\u1784 ISO\",\n        duration: \"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO\",\n        ipv4: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4\",\n        ipv6: \"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6\",\n        cidrv4: \"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4\",\n        cidrv6: \"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6\",\n        base64: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64\",\n        base64url: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url\",\n        json_string: \"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON\",\n        e164: \"\u179B\u17C1\u1781 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u179B\u17C1\u1781\",\n        array: \"\u17A2\u17B6\u179A\u17C1 (Array)\",\n        null: \"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${issue.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`;\n                }\n                return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin ?? \"\u178F\u1798\u17D2\u179B\u17C3\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u1792\u17B6\u178F\u17BB\"}`;\n                return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin ?? \"\u178F\u1798\u17D2\u179B\u17C3\"} ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_issue.pattern}`;\n                return `\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue.origin}`;\n            case \"invalid_union\":\n                return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`;\n            case \"invalid_element\":\n                return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue.origin}`;\n            default:\n                return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import km from \"./km.js\";\n/** @deprecated Use `km` instead. */\nexport default function () {\n    return km();\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\uBB38\uC790\", verb: \"to have\" },\n        file: { unit: \"\uBC14\uC774\uD2B8\", verb: \"to have\" },\n        array: { unit: \"\uAC1C\", verb: \"to have\" },\n        set: { unit: \"\uAC1C\", verb: \"to have\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\uC785\uB825\",\n        email: \"\uC774\uBA54\uC77C \uC8FC\uC18C\",\n        url: \"URL\",\n        emoji: \"\uC774\uBAA8\uC9C0\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \uB0A0\uC9DC\uC2DC\uAC04\",\n        date: \"ISO \uB0A0\uC9DC\",\n        time: \"ISO \uC2DC\uAC04\",\n        duration: \"ISO \uAE30\uAC04\",\n        ipv4: \"IPv4 \uC8FC\uC18C\",\n        ipv6: \"IPv6 \uC8FC\uC18C\",\n        cidrv4: \"IPv4 \uBC94\uC704\",\n        cidrv6: \"IPv6 \uBC94\uC704\",\n        base64: \"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4\",\n        base64url: \"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4\",\n        json_string: \"JSON \uBB38\uC790\uC5F4\",\n        e164: \"E.164 \uBC88\uD638\",\n        jwt: \"JWT\",\n        template_literal: \"\uC785\uB825\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${issue.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`;\n                }\n                return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${util.stringifyPrimitive(issue.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`;\n                return `\uC798\uBABB\uB41C \uC635\uC158: ${util.joinValues(issue.values, \"\uB610\uB294 \")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"\uC774\uD558\" : \"\uBBF8\uB9CC\";\n                const suffix = adj === \"\uBBF8\uB9CC\" ? \"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4\" : \"\uC5EC\uC57C \uD569\uB2C8\uB2E4\";\n                const sizing = getSizing(issue.origin);\n                const unit = sizing?.unit ?? \"\uC694\uC18C\";\n                if (sizing)\n                    return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n                return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue.maximum.toString()} ${adj}${suffix}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"\uC774\uC0C1\" : \"\uCD08\uACFC\";\n                const suffix = adj === \"\uC774\uC0C1\" ? \"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4\" : \"\uC5EC\uC57C \uD569\uB2C8\uB2E4\";\n                const sizing = getSizing(issue.origin);\n                const unit = sizing?.unit ?? \"\uC694\uC18C\";\n                if (sizing) {\n                    return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n                }\n                return `${issue.origin ?? \"\uAC12\"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue.minimum.toString()} ${adj}${suffix}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.prefix}\"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.suffix}\"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`;\n                if (_issue.format === \"includes\")\n                    return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \"${_issue.includes}\"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`;\n                if (_issue.format === \"regex\")\n                    return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_issue.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`;\n                return `\uC798\uBABB\uB41C ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\uC798\uBABB\uB41C \uC22B\uC790: ${issue.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;\n            case \"unrecognized_keys\":\n                return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\uC798\uBABB\uB41C \uD0A4: ${issue.origin}`;\n            case \"invalid_union\":\n                return `\uC798\uBABB\uB41C \uC785\uB825`;\n            case \"invalid_element\":\n                return `\uC798\uBABB\uB41C \uAC12: ${issue.origin}`;\n            default:\n                return `\uC798\uBABB\uB41C \uC785\uB825`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst capitalizeFirstCharacter = (text) => {\n    return text.charAt(0).toUpperCase() + text.slice(1);\n};\nfunction getUnitTypeFromNumber(number) {\n    const abs = Math.abs(number);\n    const last = abs % 10;\n    const last2 = abs % 100;\n    if ((last2 >= 11 && last2 <= 19) || last === 0)\n        return \"many\";\n    if (last === 1)\n        return \"one\";\n    return \"few\";\n}\nconst error = () => {\n    const Sizable = {\n        string: {\n            unit: {\n                one: \"simbolis\",\n                few: \"simboliai\",\n                many: \"simboli\u0173\",\n            },\n            verb: {\n                smaller: {\n                    inclusive: \"turi b\u016Bti ne ilgesn\u0117 kaip\",\n                    notInclusive: \"turi b\u016Bti trumpesn\u0117 kaip\",\n                },\n                bigger: {\n                    inclusive: \"turi b\u016Bti ne trumpesn\u0117 kaip\",\n                    notInclusive: \"turi b\u016Bti ilgesn\u0117 kaip\",\n                },\n            },\n        },\n        file: {\n            unit: {\n                one: \"baitas\",\n                few: \"baitai\",\n                many: \"bait\u0173\",\n            },\n            verb: {\n                smaller: {\n                    inclusive: \"turi b\u016Bti ne didesnis kaip\",\n                    notInclusive: \"turi b\u016Bti ma\u017Eesnis kaip\",\n                },\n                bigger: {\n                    inclusive: \"turi b\u016Bti ne ma\u017Eesnis kaip\",\n                    notInclusive: \"turi b\u016Bti didesnis kaip\",\n                },\n            },\n        },\n        array: {\n            unit: {\n                one: \"element\u0105\",\n                few: \"elementus\",\n                many: \"element\u0173\",\n            },\n            verb: {\n                smaller: {\n                    inclusive: \"turi tur\u0117ti ne daugiau kaip\",\n                    notInclusive: \"turi tur\u0117ti ma\u017Eiau kaip\",\n                },\n                bigger: {\n                    inclusive: \"turi tur\u0117ti ne ma\u017Eiau kaip\",\n                    notInclusive: \"turi tur\u0117ti daugiau kaip\",\n                },\n            },\n        },\n        set: {\n            unit: {\n                one: \"element\u0105\",\n                few: \"elementus\",\n                many: \"element\u0173\",\n            },\n            verb: {\n                smaller: {\n                    inclusive: \"turi tur\u0117ti ne daugiau kaip\",\n                    notInclusive: \"turi tur\u0117ti ma\u017Eiau kaip\",\n                },\n                bigger: {\n                    inclusive: \"turi tur\u0117ti ne ma\u017Eiau kaip\",\n                    notInclusive: \"turi tur\u0117ti daugiau kaip\",\n                },\n            },\n        },\n    };\n    function getSizing(origin, unitType, inclusive, targetShouldBe) {\n        const result = Sizable[origin] ?? null;\n        if (result === null)\n            return result;\n        return {\n            unit: result.unit[unitType],\n            verb: result.verb[targetShouldBe][inclusive ? \"inclusive\" : \"notInclusive\"],\n        };\n    }\n    const FormatDictionary = {\n        regex: \"\u012Fvestis\",\n        email: \"el. pa\u0161to adresas\",\n        url: \"URL\",\n        emoji: \"jaustukas\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO data ir laikas\",\n        date: \"ISO data\",\n        time: \"ISO laikas\",\n        duration: \"ISO trukm\u0117\",\n        ipv4: \"IPv4 adresas\",\n        ipv6: \"IPv6 adresas\",\n        cidrv4: \"IPv4 tinklo prefiksas (CIDR)\",\n        cidrv6: \"IPv6 tinklo prefiksas (CIDR)\",\n        base64: \"base64 u\u017Ekoduota eilut\u0117\",\n        base64url: \"base64url u\u017Ekoduota eilut\u0117\",\n        json_string: \"JSON eilut\u0117\",\n        e164: \"E.164 numeris\",\n        jwt: \"JWT\",\n        template_literal: \"\u012Fvestis\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"skai\u010Dius\",\n        bigint: \"sveikasis skai\u010Dius\",\n        string: \"eilut\u0117\",\n        boolean: \"login\u0117 reik\u0161m\u0117\",\n        undefined: \"neapibr\u0117\u017Eta reik\u0161m\u0117\",\n        function: \"funkcija\",\n        symbol: \"simbolis\",\n        array: \"masyvas\",\n        object: \"objektas\",\n        null: \"nulin\u0117 reik\u0161m\u0117\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Gautas tipas ${received}, o tik\u0117tasi - instanceof ${issue.expected}`;\n                }\n                return `Gautas tipas ${received}, o tik\u0117tasi - ${expected}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Privalo b\u016Bti ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Privalo b\u016Bti vienas i\u0161 ${util.joinValues(issue.values, \"|\")} pasirinkim\u0173`;\n            case \"too_big\": {\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, \"smaller\");\n                if (sizing?.verb)\n                    return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? \"element\u0173\"}`;\n                const adj = issue.inclusive ? \"ne didesnis kaip\" : \"ma\u017Eesnis kaip\";\n                return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi b\u016Bti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;\n            }\n            case \"too_small\": {\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, \"bigger\");\n                if (sizing?.verb)\n                    return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? \"element\u0173\"}`;\n                const adj = issue.inclusive ? \"ne ma\u017Eesnis kaip\" : \"didesnis kaip\";\n                return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi b\u016Bti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Eilut\u0117 privalo prasid\u0117ti \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Eilut\u0117 privalo pasibaigti \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Eilut\u0117 privalo \u012Ftraukti \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Eilut\u0117 privalo atitikti ${_issue.pattern}`;\n                return `Neteisingas ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Skai\u010Dius privalo b\u016Bti ${issue.divisor} kartotinis.`;\n            case \"unrecognized_keys\":\n                return `Neatpa\u017Eint${issue.keys.length > 1 ? \"i\" : \"as\"} rakt${issue.keys.length > 1 ? \"ai\" : \"as\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return \"Rastas klaidingas raktas\";\n            case \"invalid_union\":\n                return \"Klaidinga \u012Fvestis\";\n            case \"invalid_element\": {\n                const origin = TypeDictionary[issue.origin] ?? issue.origin;\n                return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reik\u0161m\u0117\")} turi klaiding\u0105 \u012Fvest\u012F`;\n            }\n            default:\n                return \"Klaidinga \u012Fvestis\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u0437\u043D\u0430\u0446\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n        file: { unit: \"\u0431\u0430\u0458\u0442\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n        array: { unit: \"\u0441\u0442\u0430\u0432\u043A\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n        set: { unit: \"\u0441\u0442\u0430\u0432\u043A\u0438\", verb: \"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0432\u043D\u0435\u0441\",\n        email: \"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430\",\n        url: \"URL\",\n        emoji: \"\u0435\u043C\u043E\u045F\u0438\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435\",\n        date: \"ISO \u0434\u0430\u0442\u0443\u043C\",\n        time: \"ISO \u0432\u0440\u0435\u043C\u0435\",\n        duration: \"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435\",\n        ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430\",\n        ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430\",\n        cidrv4: \"IPv4 \u043E\u043F\u0441\u0435\u0433\",\n        cidrv6: \"IPv6 \u043E\u043F\u0441\u0435\u0433\",\n        base64: \"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430\",\n        base64url: \"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430\",\n        json_string: \"JSON \u043D\u0438\u0437\u0430\",\n        e164: \"E.164 \u0431\u0440\u043E\u0458\",\n        jwt: \"JWT\",\n        template_literal: \"\u0432\u043D\u0435\u0441\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0431\u0440\u043E\u0458\",\n        array: \"\u043D\u0438\u0437\u0430\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${issue.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`;\n                }\n                return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin ?? \"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430\"} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438\"}`;\n                return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin ?? \"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430\"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_issue.pattern}`;\n                return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438\" : \"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441\";\n            case \"invalid_element\":\n                return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${issue.origin}`;\n            default:\n                return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"aksara\", verb: \"mempunyai\" },\n        file: { unit: \"bait\", verb: \"mempunyai\" },\n        array: { unit: \"elemen\", verb: \"mempunyai\" },\n        set: { unit: \"elemen\", verb: \"mempunyai\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"alamat e-mel\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"tarikh masa ISO\",\n        date: \"tarikh ISO\",\n        time: \"masa ISO\",\n        duration: \"tempoh ISO\",\n        ipv4: \"alamat IPv4\",\n        ipv6: \"alamat IPv6\",\n        cidrv4: \"julat IPv4\",\n        cidrv6: \"julat IPv6\",\n        base64: \"string dikodkan base64\",\n        base64url: \"string dikodkan base64url\",\n        json_string: \"string JSON\",\n        e164: \"nombor E.164\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"nombor\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Input tidak sah: dijangka instanceof ${issue.expected}, diterima ${received}`;\n                }\n                return `Input tidak sah: dijangka ${expected}, diterima ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n                return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} tidak sah`;\n            }\n            case \"not_multiple_of\":\n                return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Kunci tidak sah dalam ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Input tidak sah\";\n            case \"invalid_element\":\n                return `Nilai tidak sah dalam ${issue.origin}`;\n            default:\n                return `Input tidak sah`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tekens\", verb: \"heeft\" },\n        file: { unit: \"bytes\", verb: \"heeft\" },\n        array: { unit: \"elementen\", verb: \"heeft\" },\n        set: { unit: \"elementen\", verb: \"heeft\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"invoer\",\n        email: \"emailadres\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datum en tijd\",\n        date: \"ISO datum\",\n        time: \"ISO tijd\",\n        duration: \"ISO duur\",\n        ipv4: \"IPv4-adres\",\n        ipv6: \"IPv6-adres\",\n        cidrv4: \"IPv4-bereik\",\n        cidrv6: \"IPv6-bereik\",\n        base64: \"base64-gecodeerde tekst\",\n        base64url: \"base64 URL-gecodeerde tekst\",\n        json_string: \"JSON string\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"invoer\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"getal\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`;\n                }\n                return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ongeldige optie: verwacht \u00E9\u00E9n van ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                const longName = issue.origin === \"date\" ? \"laat\" : issue.origin === \"string\" ? \"lang\" : \"groot\";\n                if (sizing)\n                    return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} ${sizing.verb}`;\n                return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                const shortName = issue.origin === \"date\" ? \"vroeg\" : issue.origin === \"string\" ? \"kort\" : \"klein\";\n                if (sizing) {\n                    return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n                }\n                return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n                if (_issue.format === \"includes\")\n                    return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n                if (_issue.format === \"regex\")\n                    return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n                return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n            case \"unrecognized_keys\":\n                return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ongeldige key in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ongeldige invoer\";\n            case \"invalid_element\":\n                return `Ongeldige waarde in ${issue.origin}`;\n            default:\n                return `Ongeldige invoer`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tegn\", verb: \"\u00E5 ha\" },\n        file: { unit: \"bytes\", verb: \"\u00E5 ha\" },\n        array: { unit: \"elementer\", verb: \"\u00E5 inneholde\" },\n        set: { unit: \"elementer\", verb: \"\u00E5 inneholde\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"e-postadresse\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO dato- og klokkeslett\",\n        date: \"ISO-dato\",\n        time: \"ISO-klokkeslett\",\n        duration: \"ISO-varighet\",\n        ipv4: \"IPv4-omr\u00E5de\",\n        ipv6: \"IPv6-omr\u00E5de\",\n        cidrv4: \"IPv4-spekter\",\n        cidrv6: \"IPv6-spekter\",\n        base64: \"base64-enkodet streng\",\n        base64url: \"base64url-enkodet streng\",\n        json_string: \"JSON-streng\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"tall\",\n        array: \"liste\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`;\n                }\n                return `Ugyldig input: forventet ${expected}, fikk ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `For stor(t): forventet ${issue.origin ?? \"value\"} til \u00E5 ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n                return `For stor(t): forventet ${issue.origin ?? \"value\"} til \u00E5 ha ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `For lite(n): forventet ${issue.origin} til \u00E5 ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `For lite(n): forventet ${issue.origin} til \u00E5 ha ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ugyldig streng: m\u00E5 starte med \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Ugyldig streng: m\u00E5 ende med \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ugyldig streng: m\u00E5 inneholde \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ugyldig streng: m\u00E5 matche m\u00F8nsteret ${_issue.pattern}`;\n                return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ugyldig tall: m\u00E5 v\u00E6re et multiplum av ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Ukjente n\u00F8kler\" : \"Ukjent n\u00F8kkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ugyldig n\u00F8kkel i ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ugyldig input\";\n            case \"invalid_element\":\n                return `Ugyldig verdi i ${issue.origin}`;\n            default:\n                return `Ugyldig input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"harf\", verb: \"olmal\u0131d\u0131r\" },\n        file: { unit: \"bayt\", verb: \"olmal\u0131d\u0131r\" },\n        array: { unit: \"unsur\", verb: \"olmal\u0131d\u0131r\" },\n        set: { unit: \"unsur\", verb: \"olmal\u0131d\u0131r\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"giren\",\n        email: \"epostag\u00E2h\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO heng\u00E2m\u0131\",\n        date: \"ISO tarihi\",\n        time: \"ISO zaman\u0131\",\n        duration: \"ISO m\u00FCddeti\",\n        ipv4: \"IPv4 ni\u015F\u00E2n\u0131\",\n        ipv6: \"IPv6 ni\u015F\u00E2n\u0131\",\n        cidrv4: \"IPv4 menzili\",\n        cidrv6: \"IPv6 menzili\",\n        base64: \"base64-\u015Fifreli metin\",\n        base64url: \"base64url-\u015Fifreli metin\",\n        json_string: \"JSON metin\",\n        e164: \"E.164 say\u0131s\u0131\",\n        jwt: \"JWT\",\n        template_literal: \"giren\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"numara\",\n        array: \"saf\",\n        null: \"gayb\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `F\u00E2sit giren: umulan instanceof ${issue.expected}, al\u0131nan ${received}`;\n                }\n                return `F\u00E2sit giren: umulan ${expected}, al\u0131nan ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `F\u00E2sit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n                return `F\u00E2sit tercih: m\u00FBteberler ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Fazla b\u00FCy\u00FCk: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmal\u0131yd\u0131.`;\n                return `Fazla b\u00FCy\u00FCk: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmal\u0131yd\u0131.`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Fazla k\u00FC\u00E7\u00FCk: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmal\u0131yd\u0131.`;\n                }\n                return `Fazla k\u00FC\u00E7\u00FCk: ${issue.origin}, ${adj}${issue.minimum.toString()} olmal\u0131yd\u0131.`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `F\u00E2sit metin: \"${_issue.prefix}\" ile ba\u015Flamal\u0131.`;\n                if (_issue.format === \"ends_with\")\n                    return `F\u00E2sit metin: \"${_issue.suffix}\" ile bitmeli.`;\n                if (_issue.format === \"includes\")\n                    return `F\u00E2sit metin: \"${_issue.includes}\" ihtiv\u00E2 etmeli.`;\n                if (_issue.format === \"regex\")\n                    return `F\u00E2sit metin: ${_issue.pattern} nak\u015F\u0131na uymal\u0131.`;\n                return `F\u00E2sit ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `F\u00E2sit say\u0131: ${issue.divisor} kat\u0131 olmal\u0131yd\u0131.`;\n            case \"unrecognized_keys\":\n                return `Tan\u0131nmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} i\u00E7in tan\u0131nmayan anahtar var.`;\n            case \"invalid_union\":\n                return \"Giren tan\u0131namad\u0131.\";\n            case \"invalid_element\":\n                return `${issue.origin} i\u00E7in tan\u0131nmayan k\u0131ymet var.`;\n            default:\n                return `K\u0131ymet tan\u0131namad\u0131.`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n        file: { unit: \"\u0628\u0627\u06CC\u067C\u0633\", verb: \"\u0648\u0644\u0631\u064A\" },\n        array: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n        set: { unit: \"\u062A\u0648\u06A9\u064A\", verb: \"\u0648\u0644\u0631\u064A\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0648\u0631\u0648\u062F\u064A\",\n        email: \"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9\",\n        url: \"\u06CC\u0648 \u0622\u0631 \u0627\u0644\",\n        emoji: \"\u0627\u06CC\u0645\u0648\u062C\u064A\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A\",\n        date: \"\u0646\u06D0\u067C\u0647\",\n        time: \"\u0648\u062E\u062A\",\n        duration: \"\u0645\u0648\u062F\u0647\",\n        ipv4: \"\u062F IPv4 \u067E\u062A\u0647\",\n        ipv6: \"\u062F IPv6 \u067E\u062A\u0647\",\n        cidrv4: \"\u062F IPv4 \u0633\u0627\u062D\u0647\",\n        cidrv6: \"\u062F IPv6 \u0633\u0627\u062D\u0647\",\n        base64: \"base64-encoded \u0645\u062A\u0646\",\n        base64url: \"base64url-encoded \u0645\u062A\u0646\",\n        json_string: \"JSON \u0645\u062A\u0646\",\n        e164: \"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647\",\n        jwt: \"JWT\",\n        template_literal: \"\u0648\u0631\u0648\u062F\u064A\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0639\u062F\u062F\",\n        array: \"\u0627\u0631\u06D0\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${issue.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;\n                }\n                return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1) {\n                    return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${util.stringifyPrimitive(issue.values[0])} \u0648\u0627\u06CC`;\n                }\n                return `\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${util.joinValues(issue.values, \"|\")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue.origin ?? \"\u0627\u0631\u0632\u069A\u062A\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0635\u0631\u0648\u0646\u0647\"} \u0648\u0644\u0631\u064A`;\n                }\n                return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue.origin ?? \"\u0627\u0631\u0632\u069A\u062A\"} \u0628\u0627\u06CC\u062F ${adj}${issue.maximum.toString()} \u0648\u064A`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} ${sizing.unit} \u0648\u0644\u0631\u064A`;\n                }\n                return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue.origin} \u0628\u0627\u06CC\u062F ${adj}${issue.minimum.toString()} \u0648\u064A`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F \"${_issue.prefix}\" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`;\n                }\n                if (_issue.format === \"ends_with\") {\n                    return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F \"${_issue.suffix}\" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`;\n                }\n                if (_issue.format === \"includes\") {\n                    return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \"${_issue.includes}\" \u0648\u0644\u0631\u064A`;\n                }\n                if (_issue.format === \"regex\") {\n                    return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_issue.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`;\n                }\n                return `${FormatDictionary[_issue.format] ?? issue.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`;\n            }\n            case \"not_multiple_of\":\n                return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${issue.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;\n            case \"unrecognized_keys\":\n                return `\u0646\u0627\u0633\u0645 ${issue.keys.length > 1 ? \"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647\" : \"\u06A9\u0644\u06CC\u0689\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${issue.origin} \u06A9\u06D0`;\n            case \"invalid_union\":\n                return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`;\n            case \"invalid_element\":\n                return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${issue.origin} \u06A9\u06D0`;\n            default:\n                return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znak\u00F3w\", verb: \"mie\u0107\" },\n        file: { unit: \"bajt\u00F3w\", verb: \"mie\u0107\" },\n        array: { unit: \"element\u00F3w\", verb: \"mie\u0107\" },\n        set: { unit: \"element\u00F3w\", verb: \"mie\u0107\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"wyra\u017Cenie\",\n        email: \"adres email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data i godzina w formacie ISO\",\n        date: \"data w formacie ISO\",\n        time: \"godzina w formacie ISO\",\n        duration: \"czas trwania ISO\",\n        ipv4: \"adres IPv4\",\n        ipv6: \"adres IPv6\",\n        cidrv4: \"zakres IPv4\",\n        cidrv6: \"zakres IPv6\",\n        base64: \"ci\u0105g znak\u00F3w zakodowany w formacie base64\",\n        base64url: \"ci\u0105g znak\u00F3w zakodowany w formacie base64url\",\n        json_string: \"ci\u0105g znak\u00F3w w formacie JSON\",\n        e164: \"liczba E.164\",\n        jwt: \"JWT\",\n        template_literal: \"wej\u015Bcie\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"liczba\",\n        array: \"tablica\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`;\n                }\n                return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${expected}, otrzymano ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie mie\u0107 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\u00F3w\"}`;\n                }\n                return `Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie wynosi\u0107 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie mie\u0107 ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"element\u00F3w\"}`;\n                }\n                return `Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${issue.origin ?? \"warto\u015B\u0107\"} b\u0119dzie wynosi\u0107 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi zaczyna\u0107 si\u0119 od \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi ko\u0144czy\u0107 si\u0119 na \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi zawiera\u0107 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Nieprawid\u0142owy ci\u0105g znak\u00F3w: musi odpowiada\u0107 wzorcowi ${_issue.pattern}`;\n                return `Nieprawid\u0142ow(y/a/e) ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Nieprawid\u0142owy klucz w ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Nieprawid\u0142owe dane wej\u015Bciowe\";\n            case \"invalid_element\":\n                return `Nieprawid\u0142owa warto\u015B\u0107 w ${issue.origin}`;\n            default:\n                return `Nieprawid\u0142owe dane wej\u015Bciowe`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caracteres\", verb: \"ter\" },\n        file: { unit: \"bytes\", verb: \"ter\" },\n        array: { unit: \"itens\", verb: \"ter\" },\n        set: { unit: \"itens\", verb: \"ter\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"padr\u00E3o\",\n        email: \"endere\u00E7o de e-mail\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data e hora ISO\",\n        date: \"data ISO\",\n        time: \"hora ISO\",\n        duration: \"dura\u00E7\u00E3o ISO\",\n        ipv4: \"endere\u00E7o IPv4\",\n        ipv6: \"endere\u00E7o IPv6\",\n        cidrv4: \"faixa de IPv4\",\n        cidrv6: \"faixa de IPv6\",\n        base64: \"texto codificado em base64\",\n        base64url: \"URL codificada em base64\",\n        json_string: \"texto JSON\",\n        e164: \"n\u00FAmero E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrada\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"n\u00FAmero\",\n        null: \"nulo\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Tipo inv\u00E1lido: esperado instanceof ${issue.expected}, recebido ${received}`;\n                }\n                return `Tipo inv\u00E1lido: esperado ${expected}, recebido ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entrada inv\u00E1lida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Op\u00E7\u00E3o inv\u00E1lida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n                return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Texto inv\u00E1lido: deve come\u00E7ar com \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Texto inv\u00E1lido: deve terminar com \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Texto inv\u00E1lido: deve incluir \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Texto inv\u00E1lido: deve corresponder ao padr\u00E3o ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} inv\u00E1lido`;\n            }\n            case \"not_multiple_of\":\n                return `N\u00FAmero inv\u00E1lido: deve ser m\u00FAltiplo de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Chave inv\u00E1lida em ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrada inv\u00E1lida\";\n            case \"invalid_element\":\n                return `Valor inv\u00E1lido em ${issue.origin}`;\n            default:\n                return `Campo inv\u00E1lido`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caractere\", verb: \"s\u0103 aib\u0103\" },\n        file: { unit: \"octe\u021Bi\", verb: \"s\u0103 aib\u0103\" },\n        array: { unit: \"elemente\", verb: \"s\u0103 aib\u0103\" },\n        set: { unit: \"elemente\", verb: \"s\u0103 aib\u0103\" },\n        map: { unit: \"intr\u0103ri\", verb: \"s\u0103 aib\u0103\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"intrare\",\n        email: \"adres\u0103 de email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"dat\u0103 \u0219i or\u0103 ISO\",\n        date: \"dat\u0103 ISO\",\n        time: \"or\u0103 ISO\",\n        duration: \"durat\u0103 ISO\",\n        ipv4: \"adres\u0103 IPv4\",\n        ipv6: \"adres\u0103 IPv6\",\n        mac: \"adres\u0103 MAC\",\n        cidrv4: \"interval IPv4\",\n        cidrv6: \"interval IPv6\",\n        base64: \"\u0219ir codat base64\",\n        base64url: \"\u0219ir codat base64url\",\n        json_string: \"\u0219ir JSON\",\n        e164: \"num\u0103r E.164\",\n        jwt: \"JWT\",\n        template_literal: \"intrare\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        string: \"\u0219ir\",\n        number: \"num\u0103r\",\n        boolean: \"boolean\",\n        function: \"func\u021Bie\",\n        array: \"matrice\",\n        object: \"obiect\",\n        undefined: \"nedefinit\",\n        symbol: \"simbol\",\n        bigint: \"num\u0103r mare\",\n        void: \"void\",\n        never: \"never\",\n        map: \"hart\u0103\",\n        set: \"set\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                return `Intrare invalid\u0103: a\u0219teptat ${expected}, primit ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Intrare invalid\u0103: a\u0219teptat ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Prea mare: a\u0219teptat ca ${issue.origin ?? \"valoarea\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemente\"}`;\n                return `Prea mare: a\u0219teptat ca ${issue.origin ?? \"valoarea\"} s\u0103 fie ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Prea mic: a\u0219teptat ca ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Prea mic: a\u0219teptat ca ${issue.origin} s\u0103 fie ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u0218ir invalid: trebuie s\u0103 \u00EEnceap\u0103 cu \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u0218ir invalid: trebuie s\u0103 se termine cu \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u0218ir invalid: trebuie s\u0103 includ\u0103 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${_issue.pattern}`;\n                return `Format invalid: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Chei nerecunoscute: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Cheie invalid\u0103 \u00EEn ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Intrare invalid\u0103\";\n            case \"invalid_element\":\n                return `Valoare invalid\u0103 \u00EEn ${issue.origin}`;\n            default:\n                return `Intrare invalid\u0103`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n    const absCount = Math.abs(count);\n    const lastDigit = absCount % 10;\n    const lastTwoDigits = absCount % 100;\n    if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n        return many;\n    }\n    if (lastDigit === 1) {\n        return one;\n    }\n    if (lastDigit >= 2 && lastDigit <= 4) {\n        return few;\n    }\n    return many;\n}\nconst error = () => {\n    const Sizable = {\n        string: {\n            unit: {\n                one: \"\u0441\u0438\u043C\u0432\u043E\u043B\",\n                few: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0430\",\n                many: \"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\",\n            },\n            verb: \"\u0438\u043C\u0435\u0442\u044C\",\n        },\n        file: {\n            unit: {\n                one: \"\u0431\u0430\u0439\u0442\",\n                few: \"\u0431\u0430\u0439\u0442\u0430\",\n                many: \"\u0431\u0430\u0439\u0442\",\n            },\n            verb: \"\u0438\u043C\u0435\u0442\u044C\",\n        },\n        array: {\n            unit: {\n                one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n                few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\",\n                many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\",\n            },\n            verb: \"\u0438\u043C\u0435\u0442\u044C\",\n        },\n        set: {\n            unit: {\n                one: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\",\n                few: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\",\n                many: \"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\",\n            },\n            verb: \"\u0438\u043C\u0435\u0442\u044C\",\n        },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0432\u0432\u043E\u0434\",\n        email: \"email \u0430\u0434\u0440\u0435\u0441\",\n        url: \"URL\",\n        emoji: \"\u044D\u043C\u043E\u0434\u0437\u0438\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F\",\n        date: \"ISO \u0434\u0430\u0442\u0430\",\n        time: \"ISO \u0432\u0440\u0435\u043C\u044F\",\n        duration: \"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C\",\n        ipv4: \"IPv4 \u0430\u0434\u0440\u0435\u0441\",\n        ipv6: \"IPv6 \u0430\u0434\u0440\u0435\u0441\",\n        cidrv4: \"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n        cidrv6: \"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\",\n        base64: \"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64\",\n        base64url: \"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url\",\n        json_string: \"JSON \u0441\u0442\u0440\u043E\u043A\u0430\",\n        e164: \"\u043D\u043E\u043C\u0435\u0440 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u0432\u0432\u043E\u0434\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0447\u0438\u0441\u043B\u043E\",\n        array: \"\u043C\u0430\u0441\u0441\u0438\u0432\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${issue.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`;\n                }\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const maxValue = Number(issue.maximum);\n                    const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue.maximum.toString()} ${unit}`;\n                }\n                return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\"} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const minValue = Number(issue.minimum);\n                    const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue.minimum.toString()} ${unit}`;\n                }\n                return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue.origin} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${issue.keys.length > 1 ? \"\u044B\u0435\" : \"\u044B\u0439\"} \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u0438\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435\";\n            case \"invalid_element\":\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${issue.origin}`;\n            default:\n                return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znakov\", verb: \"imeti\" },\n        file: { unit: \"bajtov\", verb: \"imeti\" },\n        array: { unit: \"elementov\", verb: \"imeti\" },\n        set: { unit: \"elementov\", verb: \"imeti\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"vnos\",\n        email: \"e-po\u0161tni naslov\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datum in \u010Das\",\n        date: \"ISO datum\",\n        time: \"ISO \u010Das\",\n        duration: \"ISO trajanje\",\n        ipv4: \"IPv4 naslov\",\n        ipv6: \"IPv6 naslov\",\n        cidrv4: \"obseg IPv4\",\n        cidrv6: \"obseg IPv6\",\n        base64: \"base64 kodiran niz\",\n        base64url: \"base64url kodiran niz\",\n        json_string: \"JSON niz\",\n        e164: \"E.164 \u0161tevilka\",\n        jwt: \"JWT\",\n        template_literal: \"vnos\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0161tevilo\",\n        array: \"tabela\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Neveljaven vnos: pri\u010Dakovano instanceof ${issue.expected}, prejeto ${received}`;\n                }\n                return `Neveljaven vnos: pri\u010Dakovano ${expected}, prejeto ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Neveljaven vnos: pri\u010Dakovano ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Preveliko: pri\u010Dakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n                return `Preveliko: pri\u010Dakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Premajhno: pri\u010Dakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Premajhno: pri\u010Dakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Neveljaven niz: mora se za\u010Deti z \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Neveljaven niz: mora se kon\u010Dati z \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n                return `Neveljaven ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Neprepoznan${issue.keys.length > 1 ? \"i klju\u010Di\" : \" klju\u010D\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Neveljaven klju\u010D v ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Neveljaven vnos\";\n            case \"invalid_element\":\n                return `Neveljavna vrednost v ${issue.origin}`;\n            default:\n                return \"Neveljaven vnos\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tecken\", verb: \"att ha\" },\n        file: { unit: \"bytes\", verb: \"att ha\" },\n        array: { unit: \"objekt\", verb: \"att inneh\u00E5lla\" },\n        set: { unit: \"objekt\", verb: \"att inneh\u00E5lla\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"regulj\u00E4rt uttryck\",\n        email: \"e-postadress\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-datum och tid\",\n        date: \"ISO-datum\",\n        time: \"ISO-tid\",\n        duration: \"ISO-varaktighet\",\n        ipv4: \"IPv4-intervall\",\n        ipv6: \"IPv6-intervall\",\n        cidrv4: \"IPv4-spektrum\",\n        cidrv6: \"IPv6-spektrum\",\n        base64: \"base64-kodad str\u00E4ng\",\n        base64url: \"base64url-kodad str\u00E4ng\",\n        json_string: \"JSON-str\u00E4ng\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"mall-literal\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"antal\",\n        array: \"lista\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Ogiltig inmatning: f\u00F6rv\u00E4ntat instanceof ${issue.expected}, fick ${received}`;\n                }\n                return `Ogiltig inmatning: f\u00F6rv\u00E4ntat ${expected}, fick ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ogiltig inmatning: f\u00F6rv\u00E4ntat ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ogiltigt val: f\u00F6rv\u00E4ntade en av ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `F\u00F6r stor(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n                }\n                return `F\u00F6r stor(t): f\u00F6rv\u00E4ntat ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `F\u00F6r lite(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `F\u00F6r lite(t): f\u00F6rv\u00E4ntade ${issue.origin ?? \"v\u00E4rdet\"} att ha ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Ogiltig str\u00E4ng: m\u00E5ste b\u00F6rja med \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Ogiltig str\u00E4ng: m\u00E5ste sluta med \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ogiltig str\u00E4ng: m\u00E5ste inneh\u00E5lla \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ogiltig str\u00E4ng: m\u00E5ste matcha m\u00F6nstret \"${_issue.pattern}\"`;\n                return `Ogiltig(t) ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ogiltigt tal: m\u00E5ste vara en multipel av ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Ok\u00E4nda nycklar\" : \"Ok\u00E4nd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ogiltig nyckel i ${issue.origin ?? \"v\u00E4rdet\"}`;\n            case \"invalid_union\":\n                return \"Ogiltig input\";\n            case \"invalid_element\":\n                return `Ogiltigt v\u00E4rde i ${issue.origin ?? \"v\u00E4rdet\"}`;\n            default:\n                return `Ogiltig input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n        file: { unit: \"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n        array: { unit: \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n        set: { unit: \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\", verb: \"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1\",\n        email: \"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD\",\n        date: \"ISO \u0BA4\u0BC7\u0BA4\u0BBF\",\n        time: \"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD\",\n        duration: \"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1\",\n        ipv4: \"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n        ipv6: \"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF\",\n        cidrv4: \"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1\",\n        cidrv6: \"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1\",\n        base64: \"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD\",\n        base64url: \"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD\",\n        json_string: \"JSON \u0B9A\u0BB0\u0BAE\u0BCD\",\n        e164: \"E.164 \u0B8E\u0BA3\u0BCD\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0B8E\u0BA3\u0BCD\",\n        array: \"\u0B85\u0BA3\u0BBF\",\n        null: \"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${issue.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`;\n                }\n                return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${util.joinValues(issue.values, \"|\")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin ?? \"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD\"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n                }\n                return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin ?? \"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\"} ${adj}${issue.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; //\n                }\n                return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue.origin} ${adj}${issue.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.prefix}\" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n                if (_issue.format === \"ends_with\")\n                    return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.suffix}\" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n                if (_issue.format === \"includes\")\n                    return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: \"${_issue.includes}\" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n                if (_issue.format === \"regex\")\n                    return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_issue.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n                return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${issue.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;\n            case \"unrecognized_keys\":\n                return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${issue.keys.length > 1 ? \"\u0B95\u0BB3\u0BCD\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;\n            case \"invalid_union\":\n                return \"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1\";\n            case \"invalid_element\":\n                return `${issue.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;\n            default:\n                return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n        file: { unit: \"\u0E44\u0E1A\u0E15\u0E4C\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n        array: { unit: \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n        set: { unit: \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\", verb: \"\u0E04\u0E27\u0E23\u0E21\u0E35\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\",\n        email: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25\",\n        url: \"URL\",\n        emoji: \"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n        date: \"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO\",\n        time: \"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n        duration: \"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO\",\n        ipv4: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4\",\n        ipv6: \"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6\",\n        cidrv4: \"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4\",\n        cidrv6: \"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6\",\n        base64: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64\",\n        base64url: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL\",\n        json_string: \"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON\",\n        e164: \"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)\",\n        jwt: \"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT\",\n        template_literal: \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\",\n        array: \"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)\",\n        null: \"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${issue.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`;\n                }\n                return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19\" : \"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin ?? \"\u0E04\u0E48\u0E32\"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\"}`;\n                return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin ?? \"\u0E04\u0E48\u0E32\"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22\" : \"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 \"${_issue.includes}\" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`;\n                if (_issue.format === \"regex\")\n                    return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_issue.pattern}`;\n                return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${issue.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;\n            case \"unrecognized_keys\":\n                return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49\";\n            case \"invalid_element\":\n                return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue.origin}`;\n            default:\n                return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karakter\", verb: \"olmal\u0131\" },\n        file: { unit: \"bayt\", verb: \"olmal\u0131\" },\n        array: { unit: \"\u00F6\u011Fe\", verb: \"olmal\u0131\" },\n        set: { unit: \"\u00F6\u011Fe\", verb: \"olmal\u0131\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"girdi\",\n        email: \"e-posta adresi\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO tarih ve saat\",\n        date: \"ISO tarih\",\n        time: \"ISO saat\",\n        duration: \"ISO s\u00FCre\",\n        ipv4: \"IPv4 adresi\",\n        ipv6: \"IPv6 adresi\",\n        cidrv4: \"IPv4 aral\u0131\u011F\u0131\",\n        cidrv6: \"IPv6 aral\u0131\u011F\u0131\",\n        base64: \"base64 ile \u015Fifrelenmi\u015F metin\",\n        base64url: \"base64url ile \u015Fifrelenmi\u015F metin\",\n        json_string: \"JSON dizesi\",\n        e164: \"E.164 say\u0131s\u0131\",\n        jwt: \"JWT\",\n        template_literal: \"\u015Eablon dizesi\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Ge\u00E7ersiz de\u011Fer: beklenen instanceof ${issue.expected}, al\u0131nan ${received}`;\n                }\n                return `Ge\u00E7ersiz de\u011Fer: beklenen ${expected}, al\u0131nan ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ge\u00E7ersiz de\u011Fer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ge\u00E7ersiz se\u00E7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u00C7ok b\u00FCy\u00FCk: beklenen ${issue.origin ?? \"de\u011Fer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u00F6\u011Fe\"}`;\n                return `\u00C7ok b\u00FCy\u00FCk: beklenen ${issue.origin ?? \"de\u011Fer\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u00C7ok k\u00FC\u00E7\u00FCk: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                return `\u00C7ok k\u00FC\u00E7\u00FCk: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ge\u00E7ersiz metin: \"${_issue.prefix}\" ile ba\u015Flamal\u0131`;\n                if (_issue.format === \"ends_with\")\n                    return `Ge\u00E7ersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n                if (_issue.format === \"includes\")\n                    return `Ge\u00E7ersiz metin: \"${_issue.includes}\" i\u00E7ermeli`;\n                if (_issue.format === \"regex\")\n                    return `Ge\u00E7ersiz metin: ${_issue.pattern} desenine uymal\u0131`;\n                return `Ge\u00E7ersiz ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ge\u00E7ersiz say\u0131: ${issue.divisor} ile tam b\u00F6l\u00FCnebilmeli`;\n            case \"unrecognized_keys\":\n                return `Tan\u0131nmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} i\u00E7inde ge\u00E7ersiz anahtar`;\n            case \"invalid_union\":\n                return \"Ge\u00E7ersiz de\u011Fer\";\n            case \"invalid_element\":\n                return `${issue.origin} i\u00E7inde ge\u00E7ersiz de\u011Fer`;\n            default:\n                return `Ge\u00E7ersiz de\u011Fer`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n        file: { unit: \"\u0431\u0430\u0439\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n        array: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n        set: { unit: \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\", verb: \"\u043C\u0430\u0442\u0438\u043C\u0435\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\",\n        email: \"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438\",\n        url: \"URL\",\n        emoji: \"\u0435\u043C\u043E\u0434\u0437\u0456\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO\",\n        date: \"\u0434\u0430\u0442\u0430 ISO\",\n        time: \"\u0447\u0430\u0441 ISO\",\n        duration: \"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO\",\n        ipv4: \"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4\",\n        ipv6: \"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6\",\n        cidrv4: \"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4\",\n        cidrv6: \"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6\",\n        base64: \"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64\",\n        base64url: \"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url\",\n        json_string: \"\u0440\u044F\u0434\u043E\u043A JSON\",\n        e164: \"\u043D\u043E\u043C\u0435\u0440 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0447\u0438\u0441\u043B\u043E\",\n        array: \"\u043C\u0430\u0441\u0438\u0432\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${issue.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`;\n                }\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432\"}`;\n                return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin ?? \"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\"} \u0431\u0443\u0434\u0435 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue.origin} \u0431\u0443\u0434\u0435 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`;\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${issue.keys.length > 1 ? \"\u0456\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456\";\n            case \"invalid_element\":\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${issue.origin}`;\n            default:\n                return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import uk from \"./uk.js\";\n/** @deprecated Use `uk` instead. */\nexport default function () {\n    return uk();\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u062D\u0631\u0648\u0641\", verb: \"\u06C1\u0648\u0646\u0627\" },\n        file: { unit: \"\u0628\u0627\u0626\u0679\u0633\", verb: \"\u06C1\u0648\u0646\u0627\" },\n        array: { unit: \"\u0622\u0626\u0679\u0645\u0632\", verb: \"\u06C1\u0648\u0646\u0627\" },\n        set: { unit: \"\u0622\u0626\u0679\u0645\u0632\", verb: \"\u06C1\u0648\u0646\u0627\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0627\u0646 \u067E\u0679\",\n        email: \"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n        url: \"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644\",\n        emoji: \"\u0627\u06CC\u0645\u0648\u062C\u06CC\",\n        uuid: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n        uuidv4: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4\",\n        uuidv6: \"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6\",\n        nanoid: \"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n        guid: \"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n        cuid: \"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n        cuid2: \"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2\",\n        ulid: \"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC\",\n        xid: \"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC\",\n        ksuid: \"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC\",\n        datetime: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645\",\n        date: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E\",\n        time: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A\",\n        duration: \"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A\",\n        ipv4: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n        ipv6: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633\",\n        cidrv4: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C\",\n        cidrv6: \"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C\",\n        base64: \"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF\",\n        base64url: \"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF\",\n        json_string: \"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF\",\n        e164: \"\u0627\u06CC 164 \u0646\u0645\u0628\u0631\",\n        jwt: \"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC\",\n        template_literal: \"\u0627\u0646 \u067E\u0679\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u0646\u0645\u0628\u0631\",\n        array: \"\u0622\u0631\u06D2\",\n        null: \"\u0646\u0644\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${issue.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;\n                }\n                return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${util.stringifyPrimitive(issue.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n                return `\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${util.joinValues(issue.values, \"|\")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue.origin ?? \"\u0648\u06CC\u0644\u06CC\u0648\"} \u06A9\u06D2 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u0639\u0646\u0627\u0635\u0631\"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;\n                return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue.origin ?? \"\u0648\u06CC\u0644\u06CC\u0648\"} \u06A9\u0627 ${adj}${issue.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue.origin} \u06A9\u06D2 ${adj}${issue.minimum.toString()} ${sizing.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`;\n                }\n                return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue.origin} \u06A9\u0627 ${adj}${issue.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.prefix}\" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.suffix}\" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n                if (_issue.format === \"includes\")\n                    return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \"${_issue.includes}\" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n                if (_issue.format === \"regex\")\n                    return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_issue.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n                return `\u063A\u0644\u0637 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${issue.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;\n            case \"unrecognized_keys\":\n                return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${issue.keys.length > 1 ? \"\u0632\" : \"\"}: ${util.joinValues(issue.keys, \"\u060C \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;\n            case \"invalid_union\":\n                return \"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679\";\n            case \"invalid_element\":\n                return `${issue.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;\n            default:\n                return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"belgi\", verb: \"bo\u2018lishi kerak\" },\n        file: { unit: \"bayt\", verb: \"bo\u2018lishi kerak\" },\n        array: { unit: \"element\", verb: \"bo\u2018lishi kerak\" },\n        set: { unit: \"element\", verb: \"bo\u2018lishi kerak\" },\n        map: { unit: \"yozuv\", verb: \"bo\u2018lishi kerak\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"kirish\",\n        email: \"elektron pochta manzili\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO sana va vaqti\",\n        date: \"ISO sana\",\n        time: \"ISO vaqt\",\n        duration: \"ISO davomiylik\",\n        ipv4: \"IPv4 manzil\",\n        ipv6: \"IPv6 manzil\",\n        mac: \"MAC manzil\",\n        cidrv4: \"IPv4 diapazon\",\n        cidrv6: \"IPv6 diapazon\",\n        base64: \"base64 kodlangan satr\",\n        base64url: \"base64url kodlangan satr\",\n        json_string: \"JSON satr\",\n        e164: \"E.164 raqam\",\n        jwt: \"JWT\",\n        template_literal: \"kirish\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"raqam\",\n        array: \"massiv\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `Noto\u2018g\u2018ri kirish: kutilgan instanceof ${issue.expected}, qabul qilingan ${received}`;\n                }\n                return `Noto\u2018g\u2018ri kirish: kutilgan ${expected}, qabul qilingan ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Noto\u2018g\u2018ri kirish: kutilgan ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;\n                return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n                }\n                return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Noto\u2018g\u2018ri satr: \"${_issue.prefix}\" bilan boshlanishi kerak`;\n                if (_issue.format === \"ends_with\")\n                    return `Noto\u2018g\u2018ri satr: \"${_issue.suffix}\" bilan tugashi kerak`;\n                if (_issue.format === \"includes\")\n                    return `Noto\u2018g\u2018ri satr: \"${_issue.includes}\" ni o\u2018z ichiga olishi kerak`;\n                if (_issue.format === \"regex\")\n                    return `Noto\u2018g\u2018ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`;\n                return `Noto\u2018g\u2018ri ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Noto\u2018g\u2018ri raqam: ${issue.divisor} ning karralisi bo\u2018lishi kerak`;\n            case \"unrecognized_keys\":\n                return `Noma\u2019lum kalit${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} dagi kalit noto\u2018g\u2018ri`;\n            case \"invalid_union\":\n                return \"Noto\u2018g\u2018ri kirish\";\n            case \"invalid_element\":\n                return `${issue.origin} da noto\u2018g\u2018ri qiymat`;\n            default:\n                return `Noto\u2018g\u2018ri kirish`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"k\u00FD t\u1EF1\", verb: \"c\u00F3\" },\n        file: { unit: \"byte\", verb: \"c\u00F3\" },\n        array: { unit: \"ph\u1EA7n t\u1EED\", verb: \"c\u00F3\" },\n        set: { unit: \"ph\u1EA7n t\u1EED\", verb: \"c\u00F3\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u0111\u1EA7u v\u00E0o\",\n        email: \"\u0111\u1ECBa ch\u1EC9 email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ng\u00E0y gi\u1EDD ISO\",\n        date: \"ng\u00E0y ISO\",\n        time: \"gi\u1EDD ISO\",\n        duration: \"kho\u1EA3ng th\u1EDDi gian ISO\",\n        ipv4: \"\u0111\u1ECBa ch\u1EC9 IPv4\",\n        ipv6: \"\u0111\u1ECBa ch\u1EC9 IPv6\",\n        cidrv4: \"d\u1EA3i IPv4\",\n        cidrv6: \"d\u1EA3i IPv6\",\n        base64: \"chu\u1ED7i m\u00E3 h\u00F3a base64\",\n        base64url: \"chu\u1ED7i m\u00E3 h\u00F3a base64url\",\n        json_string: \"chu\u1ED7i JSON\",\n        e164: \"s\u1ED1 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u0111\u1EA7u v\u00E0o\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"s\u1ED1\",\n        array: \"m\u1EA3ng\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${issue.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`;\n                }\n                return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${util.stringifyPrimitive(issue.values[0])}`;\n                return `T\u00F9y ch\u1ECDn kh\u00F4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\u00E1c gi\u00E1 tr\u1ECB ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Qu\u00E1 l\u1EDBn: mong \u0111\u1EE3i ${issue.origin ?? \"gi\u00E1 tr\u1ECB\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"ph\u1EA7n t\u1EED\"}`;\n                return `Qu\u00E1 l\u1EDBn: mong \u0111\u1EE3i ${issue.origin ?? \"gi\u00E1 tr\u1ECB\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Qu\u00E1 nh\u1ECF: mong \u0111\u1EE3i ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Qu\u00E1 nh\u1ECF: mong \u0111\u1EE3i ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\u00FAc b\u1EB1ng \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Chu\u1ED7i kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_issue.pattern}`;\n                return `${FormatDictionary[_issue.format] ?? issue.format} kh\u00F4ng h\u1EE3p l\u1EC7`;\n            }\n            case \"not_multiple_of\":\n                return `S\u1ED1 kh\u00F4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\u00E0 b\u1ED9i s\u1ED1 c\u1EE7a ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Kh\u00F3a kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Kh\u00F3a kh\u00F4ng h\u1EE3p l\u1EC7 trong ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7\";\n            case \"invalid_element\":\n                return `Gi\u00E1 tr\u1ECB kh\u00F4ng h\u1EE3p l\u1EC7 trong ${issue.origin}`;\n            default:\n                return `\u0110\u1EA7u v\u00E0o kh\u00F4ng h\u1EE3p l\u1EC7`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u5B57\u7B26\", verb: \"\u5305\u542B\" },\n        file: { unit: \"\u5B57\u8282\", verb: \"\u5305\u542B\" },\n        array: { unit: \"\u9879\", verb: \"\u5305\u542B\" },\n        set: { unit: \"\u9879\", verb: \"\u5305\u542B\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u8F93\u5165\",\n        email: \"\u7535\u5B50\u90AE\u4EF6\",\n        url: \"URL\",\n        emoji: \"\u8868\u60C5\u7B26\u53F7\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO\u65E5\u671F\u65F6\u95F4\",\n        date: \"ISO\u65E5\u671F\",\n        time: \"ISO\u65F6\u95F4\",\n        duration: \"ISO\u65F6\u957F\",\n        ipv4: \"IPv4\u5730\u5740\",\n        ipv6: \"IPv6\u5730\u5740\",\n        cidrv4: \"IPv4\u7F51\u6BB5\",\n        cidrv6: \"IPv6\u7F51\u6BB5\",\n        base64: \"base64\u7F16\u7801\u5B57\u7B26\u4E32\",\n        base64url: \"base64url\u7F16\u7801\u5B57\u7B26\u4E32\",\n        json_string: \"JSON\u5B57\u7B26\u4E32\",\n        e164: \"E.164\u53F7\u7801\",\n        jwt: \"JWT\",\n        template_literal: \"\u8F93\u5165\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"\u6570\u5B57\",\n        array: \"\u6570\u7EC4\",\n        null: \"\u7A7A\u503C(null)\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${issue.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`;\n                }\n                return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue.origin ?? \"\u503C\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u4E2A\u5143\u7D20\"}`;\n                return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue.origin ?? \"\u503C\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 \"${_issue.prefix}\" \u5F00\u5934`;\n                if (_issue.format === \"ends_with\")\n                    return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 \"${_issue.suffix}\" \u7ED3\u5C3E`;\n                if (_issue.format === \"includes\")\n                    return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_issue.pattern}`;\n                return `\u65E0\u6548${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${issue.divisor} \u7684\u500D\u6570`;\n            case \"unrecognized_keys\":\n                return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;\n            case \"invalid_union\":\n                return \"\u65E0\u6548\u8F93\u5165\";\n            case \"invalid_element\":\n                return `${issue.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;\n            default:\n                return `\u65E0\u6548\u8F93\u5165`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u5B57\u5143\", verb: \"\u64C1\u6709\" },\n        file: { unit: \"\u4F4D\u5143\u7D44\", verb: \"\u64C1\u6709\" },\n        array: { unit: \"\u9805\u76EE\", verb: \"\u64C1\u6709\" },\n        set: { unit: \"\u9805\u76EE\", verb: \"\u64C1\u6709\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u8F38\u5165\",\n        email: \"\u90F5\u4EF6\u5730\u5740\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO \u65E5\u671F\u6642\u9593\",\n        date: \"ISO \u65E5\u671F\",\n        time: \"ISO \u6642\u9593\",\n        duration: \"ISO \u671F\u9593\",\n        ipv4: \"IPv4 \u4F4D\u5740\",\n        ipv6: \"IPv6 \u4F4D\u5740\",\n        cidrv4: \"IPv4 \u7BC4\u570D\",\n        cidrv6: \"IPv6 \u7BC4\u570D\",\n        base64: \"base64 \u7DE8\u78BC\u5B57\u4E32\",\n        base64url: \"base64url \u7DE8\u78BC\u5B57\u4E32\",\n        json_string: \"JSON \u5B57\u4E32\",\n        e164: \"E.164 \u6578\u503C\",\n        jwt: \"JWT\",\n        template_literal: \"\u8F38\u5165\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${issue.expected}\uFF0C\u4F46\u6536\u5230 ${received}`;\n                }\n                return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${expected}\uFF0C\u4F46\u6536\u5230 ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue.origin ?? \"\u503C\"} \u61C9\u70BA ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"\u500B\u5143\u7D20\"}`;\n                return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue.origin ?? \"\u503C\"} \u61C9\u70BA ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue.origin} \u61C9\u70BA ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue.origin} \u61C9\u70BA ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 \"${_issue.prefix}\" \u958B\u982D`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 \"${_issue.suffix}\" \u7D50\u5C3E`;\n                if (_issue.format === \"includes\")\n                    return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_issue.pattern}`;\n                return `\u7121\u6548\u7684 ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${issue.divisor} \u7684\u500D\u6578`;\n            case \"unrecognized_keys\":\n                return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${issue.keys.length > 1 ? \"\u5011\" : \"\"}\uFF1A${util.joinValues(issue.keys, \"\u3001\")}`;\n            case \"invalid_key\":\n                return `${issue.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;\n            case \"invalid_union\":\n                return \"\u7121\u6548\u7684\u8F38\u5165\u503C\";\n            case \"invalid_element\":\n                return `${issue.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;\n            default:\n                return `\u7121\u6548\u7684\u8F38\u5165\u503C`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"\u00E0mi\", verb: \"n\u00ED\" },\n        file: { unit: \"bytes\", verb: \"n\u00ED\" },\n        array: { unit: \"nkan\", verb: \"n\u00ED\" },\n        set: { unit: \"nkan\", verb: \"n\u00ED\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"\u1EB9\u0300r\u1ECD \u00ECb\u00E1w\u1ECDl\u00E9\",\n        email: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC \u00ECm\u1EB9\u0301l\u00EC\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"\u00E0k\u00F3k\u00F2 ISO\",\n        date: \"\u1ECDj\u1ECD\u0301 ISO\",\n        time: \"\u00E0k\u00F3k\u00F2 ISO\",\n        duration: \"\u00E0k\u00F3k\u00F2 t\u00F3 p\u00E9 ISO\",\n        ipv4: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC IPv4\",\n        ipv6: \"\u00E0d\u00EDr\u1EB9\u0301s\u00EC IPv6\",\n        cidrv4: \"\u00E0gb\u00E8gb\u00E8 IPv4\",\n        cidrv6: \"\u00E0gb\u00E8gb\u00E8 IPv6\",\n        base64: \"\u1ECD\u0300r\u1ECD\u0300 t\u00ED a k\u1ECD\u0301 n\u00ED base64\",\n        base64url: \"\u1ECD\u0300r\u1ECD\u0300 base64url\",\n        json_string: \"\u1ECD\u0300r\u1ECD\u0300 JSON\",\n        e164: \"n\u1ECD\u0301mb\u00E0 E.164\",\n        jwt: \"JWT\",\n        template_literal: \"\u1EB9\u0300r\u1ECD \u00ECb\u00E1w\u1ECDl\u00E9\",\n    };\n    const TypeDictionary = {\n        nan: \"NaN\",\n        number: \"n\u1ECD\u0301mb\u00E0\",\n        array: \"akop\u1ECD\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = TypeDictionary[issue.expected] ?? issue.expected;\n                const receivedType = util.parsedType(issue.input);\n                const received = TypeDictionary[receivedType] ?? receivedType;\n                if (/^[A-Z]/.test(issue.expected)) {\n                    return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi instanceof ${issue.expected}, \u00E0m\u1ECD\u0300 a r\u00ED ${received}`;\n                }\n                return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi ${expected}, \u00E0m\u1ECD\u0300 a r\u00ED ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e: a n\u00ED l\u00E1ti fi ${util.stringifyPrimitive(issue.values[0])}`;\n                return `\u00C0\u1E63\u00E0y\u00E0n a\u1E63\u00EC\u1E63e: yan \u1ECD\u0300kan l\u00E1ra ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `T\u00F3 p\u1ECD\u0300 j\u00F9: a n\u00ED l\u00E1ti j\u1EB9\u0301 p\u00E9 ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n                return `T\u00F3 p\u1ECD\u0300 j\u00F9: a n\u00ED l\u00E1ti j\u1EB9\u0301 ${adj}${issue.maximum}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `K\u00E9r\u00E9 ju: a n\u00ED l\u00E1ti j\u1EB9\u0301 p\u00E9 ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n                return `K\u00E9r\u00E9 ju: a n\u00ED l\u00E1ti j\u1EB9\u0301 ${adj}${issue.minimum}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\u00FA \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\u00ED p\u1EB9\u0300l\u00FA \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\u00ED \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u00E1 \u00E0p\u1EB9\u1EB9r\u1EB9 mu ${_issue.pattern}`;\n                return `A\u1E63\u00EC\u1E63e: ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `N\u1ECD\u0301mb\u00E0 a\u1E63\u00EC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \u00E8y\u00E0 p\u00EDp\u00EDn ti ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `B\u1ECDt\u00ECn\u00EC \u00E0\u00ECm\u1ECD\u0300: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `B\u1ECDt\u00ECn\u00EC a\u1E63\u00EC\u1E63e n\u00EDn\u00FA ${issue.origin}`;\n            case \"invalid_union\":\n                return \"\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e\";\n            case \"invalid_element\":\n                return `Iye a\u1E63\u00EC\u1E63e n\u00EDn\u00FA ${issue.origin}`;\n            default:\n                return \"\u00CCb\u00E1w\u1ECDl\u00E9 a\u1E63\u00EC\u1E63e\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n", "var _a;\nexport const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n    constructor() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n    }\n    add(schema, ..._meta) {\n        const meta = _meta[0];\n        this._map.set(schema, meta);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.set(meta.id, schema);\n        }\n        return this;\n    }\n    clear() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n        return this;\n    }\n    remove(schema) {\n        const meta = this._map.get(schema);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.delete(meta.id);\n        }\n        this._map.delete(schema);\n        return this;\n    }\n    get(schema) {\n        // return this._map.get(schema) as any;\n        // inherit metadata\n        const p = schema._zod.parent;\n        if (p) {\n            const pm = { ...(this.get(p) ?? {}) };\n            delete pm.id; // do not inherit id\n            const f = { ...pm, ...this._map.get(schema) };\n            return Object.keys(f).length ? f : undefined;\n        }\n        return this._map.get(schema);\n    }\n    has(schema) {\n        return this._map.has(schema);\n    }\n}\n// registries\nexport function registry() {\n    return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n", "import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\n// @__NO_SIDE_EFFECTS__\nexport function _string(Class, params) {\n    return new Class({\n        type: \"string\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedString(Class, params) {\n    return new Class({\n        type: \"string\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _email(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"email\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _guid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"guid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v4\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v6\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv7(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v7\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _emoji(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"emoji\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nanoid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"nanoid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link _cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\n// @__NO_SIDE_EFFECTS__\nexport function _cuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid2(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid2\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ulid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ulid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _xid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"xid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ksuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ksuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mac(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"mac\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _e164(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"e164\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _jwt(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"jwt\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const TimePrecision = {\n    Any: null,\n    Minute: -1,\n    Second: 0,\n    Millisecond: 3,\n    Microsecond: 6,\n};\n// @__NO_SIDE_EFFECTS__\nexport function _isoDateTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"datetime\",\n        check: \"string_format\",\n        offset: false,\n        local: false,\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDate(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"date\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"time\",\n        check: \"string_format\",\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDuration(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"duration\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _number(Class, params) {\n    return new Class({\n        type: \"number\",\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedNumber(Class, params) {\n    return new Class({\n        type: \"number\",\n        coerce: true,\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"safeint\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float32\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float64(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float64\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"int32\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"uint32\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _boolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBoolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _bigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"int64\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"uint64\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _symbol(Class, params) {\n    return new Class({\n        type: \"symbol\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _undefined(Class, params) {\n    return new Class({\n        type: \"undefined\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _null(Class, params) {\n    return new Class({\n        type: \"null\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _any(Class) {\n    return new Class({\n        type: \"any\",\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _unknown(Class) {\n    return new Class({\n        type: \"unknown\",\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _never(Class, params) {\n    return new Class({\n        type: \"never\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _void(Class, params) {\n    return new Class({\n        type: \"void\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _date(Class, params) {\n    return new Class({\n        type: \"date\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedDate(Class, params) {\n    return new Class({\n        type: \"date\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nan(Class, params) {\n    return new Class({\n        type: \"nan\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lt(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lte(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\n// @__NO_SIDE_EFFECTS__\nexport function _gt(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _gte(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\n// @__NO_SIDE_EFFECTS__\nexport function _positive(params) {\n    return _gt(0, params);\n}\n// negative\n// @__NO_SIDE_EFFECTS__\nexport function _negative(params) {\n    return _lt(0, params);\n}\n// nonpositive\n// @__NO_SIDE_EFFECTS__\nexport function _nonpositive(params) {\n    return _lte(0, params);\n}\n// nonnegative\n// @__NO_SIDE_EFFECTS__\nexport function _nonnegative(params) {\n    return _gte(0, params);\n}\n// @__NO_SIDE_EFFECTS__\nexport function _multipleOf(value, params) {\n    return new checks.$ZodCheckMultipleOf({\n        check: \"multiple_of\",\n        ...util.normalizeParams(params),\n        value,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxSize(maximum, params) {\n    return new checks.$ZodCheckMaxSize({\n        check: \"max_size\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minSize(minimum, params) {\n    return new checks.$ZodCheckMinSize({\n        check: \"min_size\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _size(size, params) {\n    return new checks.$ZodCheckSizeEquals({\n        check: \"size_equals\",\n        ...util.normalizeParams(params),\n        size,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxLength(maximum, params) {\n    const ch = new checks.$ZodCheckMaxLength({\n        check: \"max_length\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minLength(minimum, params) {\n    return new checks.$ZodCheckMinLength({\n        check: \"min_length\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _length(length, params) {\n    return new checks.$ZodCheckLengthEquals({\n        check: \"length_equals\",\n        ...util.normalizeParams(params),\n        length,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _regex(pattern, params) {\n    return new checks.$ZodCheckRegex({\n        check: \"string_format\",\n        format: \"regex\",\n        ...util.normalizeParams(params),\n        pattern,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lowercase(params) {\n    return new checks.$ZodCheckLowerCase({\n        check: \"string_format\",\n        format: \"lowercase\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uppercase(params) {\n    return new checks.$ZodCheckUpperCase({\n        check: \"string_format\",\n        format: \"uppercase\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _includes(includes, params) {\n    return new checks.$ZodCheckIncludes({\n        check: \"string_format\",\n        format: \"includes\",\n        ...util.normalizeParams(params),\n        includes,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _startsWith(prefix, params) {\n    return new checks.$ZodCheckStartsWith({\n        check: \"string_format\",\n        format: \"starts_with\",\n        ...util.normalizeParams(params),\n        prefix,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _endsWith(suffix, params) {\n    return new checks.$ZodCheckEndsWith({\n        check: \"string_format\",\n        format: \"ends_with\",\n        ...util.normalizeParams(params),\n        suffix,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _property(property, schema, params) {\n    return new checks.$ZodCheckProperty({\n        check: \"property\",\n        property,\n        schema,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mime(types, params) {\n    return new checks.$ZodCheckMimeType({\n        check: \"mime_type\",\n        mime: types,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _overwrite(tx) {\n    return new checks.$ZodCheckOverwrite({\n        check: \"overwrite\",\n        tx,\n    });\n}\n// normalize\n// @__NO_SIDE_EFFECTS__\nexport function _normalize(form) {\n    return _overwrite((input) => input.normalize(form));\n}\n// trim\n// @__NO_SIDE_EFFECTS__\nexport function _trim() {\n    return _overwrite((input) => input.trim());\n}\n// toLowerCase\n// @__NO_SIDE_EFFECTS__\nexport function _toLowerCase() {\n    return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\n// @__NO_SIDE_EFFECTS__\nexport function _toUpperCase() {\n    return _overwrite((input) => input.toUpperCase());\n}\n// slugify\n// @__NO_SIDE_EFFECTS__\nexport function _slugify() {\n    return _overwrite((input) => util.slugify(input));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _array(Class, element, params) {\n    return new Class({\n        type: \"array\",\n        element,\n        // get element() {\n        //   return element;\n        // },\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _union(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _xor(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        inclusive: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _intersection(Class, left, right) {\n    return new Class({\n        type: \"intersection\",\n        left,\n        right,\n    });\n}\n// export function _tuple(\n//   Class: util.SchemaClass<schemas.$ZodTuple>,\n//   items: [],\n//   params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\n// @__NO_SIDE_EFFECTS__\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new Class({\n        type: \"tuple\",\n        items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _record(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"record\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _map(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"map\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _set(Class, valueType, params) {\n    return new Class({\n        type: \"set\",\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _enum(Class, values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    // if (Array.isArray(values)) {\n    //   for (const value of values) {\n    //     entries[value] = value;\n    //   }\n    // } else {\n    //   Object.assign(entries, values);\n    // }\n    // const entries: util.EnumLike = {};\n    // for (const val of values) {\n    //   entries[val] = val;\n    // }\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _literal(Class, value, params) {\n    return new Class({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _file(Class, params) {\n    return new Class({\n        type: \"file\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _transform(Class, fn) {\n    return new Class({\n        type: \"transform\",\n        transform: fn,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _optional(Class, innerType) {\n    return new Class({\n        type: \"optional\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nullable(Class, innerType) {\n    return new Class({\n        type: \"nullable\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _default(Class, innerType, defaultValue) {\n    return new Class({\n        type: \"default\",\n        innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nonoptional(Class, innerType, params) {\n    return new Class({\n        type: \"nonoptional\",\n        innerType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _success(Class, innerType) {\n    return new Class({\n        type: \"success\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _catch(Class, innerType, catchValue) {\n    return new Class({\n        type: \"catch\",\n        innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _pipe(Class, in_, out) {\n    return new Class({\n        type: \"pipe\",\n        in: in_,\n        out,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _readonly(Class, innerType) {\n    return new Class({\n        type: \"readonly\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _templateLiteral(Class, parts, params) {\n    return new Class({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lazy(Class, getter) {\n    return new Class({\n        type: \"lazy\",\n        getter,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _promise(Class, innerType) {\n    return new Class({\n        type: \"promise\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _custom(Class, fn, _params) {\n    const norm = util.normalizeParams(_params);\n    norm.abort ?? (norm.abort = true); // default to abort:false\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...norm,\n    });\n    return schema;\n}\n// same as _custom but defaults to abort:false\n// @__NO_SIDE_EFFECTS__\nexport function _refine(Class, fn, _params) {\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...util.normalizeParams(_params),\n    });\n    return schema;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _superRefine(fn, params) {\n    const ch = _check((payload) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = ch);\n                _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        return fn(payload.value, payload);\n    }, params);\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _check(fn, params) {\n    const ch = new checks.$ZodCheck({\n        check: \"custom\",\n        ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function describe(description) {\n    const ch = new checks.$ZodCheck({ check: \"describe\" });\n    ch._zod.onattach = [\n        (inst) => {\n            const existing = registries.globalRegistry.get(inst) ?? {};\n            registries.globalRegistry.add(inst, { ...existing, description });\n        },\n    ];\n    ch._zod.check = () => { }; // no-op check\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function meta(metadata) {\n    const ch = new checks.$ZodCheck({ check: \"meta\" });\n    ch._zod.onattach = [\n        (inst) => {\n            const existing = registries.globalRegistry.get(inst) ?? {};\n            registries.globalRegistry.add(inst, { ...existing, ...metadata });\n        },\n    ];\n    ch._zod.check = () => { }; // no-op check\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringbool(Classes, _params) {\n    const params = util.normalizeParams(_params);\n    let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n    let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n    if (params.case !== \"sensitive\") {\n        truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n        falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n    }\n    const truthySet = new Set(truthyArray);\n    const falsySet = new Set(falsyArray);\n    const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n    const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n    const _String = Classes.String ?? schemas.$ZodString;\n    const stringSchema = new _String({ type: \"string\", error: params.error });\n    const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n    const codec = new _Codec({\n        type: \"pipe\",\n        in: stringSchema,\n        out: booleanSchema,\n        transform: ((input, payload) => {\n            let data = input;\n            if (params.case !== \"sensitive\")\n                data = data.toLowerCase();\n            if (truthySet.has(data)) {\n                return true;\n            }\n            else if (falsySet.has(data)) {\n                return false;\n            }\n            else {\n                payload.issues.push({\n                    code: \"invalid_value\",\n                    expected: \"stringbool\",\n                    values: [...truthySet, ...falsySet],\n                    input: payload.value,\n                    inst: codec,\n                    continue: false,\n                });\n                return {};\n            }\n        }),\n        reverseTransform: ((input, _payload) => {\n            if (input === true) {\n                return truthyArray[0] || \"true\";\n            }\n            else {\n                return falsyArray[0] || \"false\";\n            }\n        }),\n        error: params.error,\n    });\n    return codec;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n    const params = util.normalizeParams(_params);\n    const def = {\n        ...util.normalizeParams(_params),\n        check: \"string_format\",\n        type: \"string\",\n        format,\n        fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n        ...params,\n    };\n    if (fnOrRegex instanceof RegExp) {\n        def.pattern = fnOrRegex;\n    }\n    const inst = new Class(def);\n    return inst;\n}\n", "import { globalRegistry } from \"./registries.js\";\n// function initializeContext<T extends schemas.$ZodType>(inputs: JSONSchemaGeneratorParams<T>): ToJSONSchemaContext<T> {\n//   return {\n//     processor: inputs.processor,\n//     metadataRegistry: inputs.metadata ?? globalRegistry,\n//     target: inputs.target ?? \"draft-2020-12\",\n//     unrepresentable: inputs.unrepresentable ?? \"throw\",\n//   };\n// }\nexport function initializeContext(params) {\n    // Normalize target: convert old non-hyphenated versions to hyphenated versions\n    let target = params?.target ?? \"draft-2020-12\";\n    if (target === \"draft-4\")\n        target = \"draft-04\";\n    if (target === \"draft-7\")\n        target = \"draft-07\";\n    return {\n        processors: params.processors ?? {},\n        metadataRegistry: params?.metadata ?? globalRegistry,\n        target,\n        unrepresentable: params?.unrepresentable ?? \"throw\",\n        override: params?.override ?? (() => { }),\n        io: params?.io ?? \"output\",\n        counter: 0,\n        seen: new Map(),\n        cycles: params?.cycles ?? \"ref\",\n        reused: params?.reused ?? \"inline\",\n        external: params?.external ?? undefined,\n    };\n}\nexport function process(schema, ctx, _params = { path: [], schemaPath: [] }) {\n    var _a;\n    const def = schema._zod.def;\n    // check for schema in seens\n    const seen = ctx.seen.get(schema);\n    if (seen) {\n        seen.count++;\n        // check if cycle\n        const isCycle = _params.schemaPath.includes(schema);\n        if (isCycle) {\n            seen.cycle = _params.path;\n        }\n        return seen.schema;\n    }\n    // initialize\n    const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n    ctx.seen.set(schema, result);\n    // custom method overrides default behavior\n    const overrideSchema = schema._zod.toJSONSchema?.();\n    if (overrideSchema) {\n        result.schema = overrideSchema;\n    }\n    else {\n        const params = {\n            ..._params,\n            schemaPath: [..._params.schemaPath, schema],\n            path: _params.path,\n        };\n        if (schema._zod.processJSONSchema) {\n            schema._zod.processJSONSchema(ctx, result.schema, params);\n        }\n        else {\n            const _json = result.schema;\n            const processor = ctx.processors[def.type];\n            if (!processor) {\n                throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`);\n            }\n            processor(schema, ctx, _json, params);\n        }\n        const parent = schema._zod.parent;\n        if (parent) {\n            // Also set ref if processor didn't (for inheritance)\n            if (!result.ref)\n                result.ref = parent;\n            process(parent, ctx, params);\n            ctx.seen.get(parent).isParent = true;\n        }\n    }\n    // metadata\n    const meta = ctx.metadataRegistry.get(schema);\n    if (meta)\n        Object.assign(result.schema, meta);\n    if (ctx.io === \"input\" && isTransforming(schema)) {\n        // examples/defaults only apply to output type of pipe\n        delete result.schema.examples;\n        delete result.schema.default;\n    }\n    // set prefault as default\n    if (ctx.io === \"input\" && \"_prefault\" in result.schema)\n        (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n    delete result.schema._prefault;\n    // pulling fresh from ctx.seen in case it was overwritten\n    const _result = ctx.seen.get(schema);\n    return _result.schema;\n}\nexport function extractDefs(ctx, schema\n// params: EmitParams\n) {\n    // iterate over seen map;\n    const root = ctx.seen.get(schema);\n    if (!root)\n        throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n    // Track ids to detect duplicates across different schemas\n    const idToSchema = new Map();\n    for (const entry of ctx.seen.entries()) {\n        const id = ctx.metadataRegistry.get(entry[0])?.id;\n        if (id) {\n            const existing = idToSchema.get(id);\n            if (existing && existing !== entry[0]) {\n                throw new Error(`Duplicate schema id \"${id}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n            }\n            idToSchema.set(id, entry[0]);\n        }\n    }\n    // returns a ref to the schema\n    // defId will be empty if the ref points to an external schema (or #)\n    const makeURI = (entry) => {\n        // comparing the seen objects because sometimes\n        // multiple schemas map to the same seen object.\n        // e.g. lazy\n        // external is configured\n        const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n        if (ctx.external) {\n            const externalId = ctx.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${ctx.counter++}`;\n            // check if schema is in the external registry\n            const uriGenerator = ctx.external.uri ?? ((id) => id);\n            if (externalId) {\n                return { ref: uriGenerator(externalId) };\n            }\n            // otherwise, add to __shared\n            const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`;\n            entry[1].defId = id; // set defId so it will be reused if needed\n            return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n        }\n        if (entry[1] === root) {\n            return { ref: \"#\" };\n        }\n        // self-contained schema\n        const uriPrefix = `#`;\n        const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n        const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`;\n        return { defId, ref: defUriPrefix + defId };\n    };\n    // stored cached version in `def` property\n    // remove all properties, set $ref\n    const extractToDef = (entry) => {\n        // if the schema is already a reference, do not extract it\n        if (entry[1].schema.$ref) {\n            return;\n        }\n        const seen = entry[1];\n        const { ref, defId } = makeURI(entry);\n        seen.def = { ...seen.schema };\n        // defId won't be set if the schema is a reference to an external schema\n        // or if the schema is the root schema\n        if (defId)\n            seen.defId = defId;\n        // wipe away all properties except $ref\n        const schema = seen.schema;\n        for (const key in schema) {\n            delete schema[key];\n        }\n        schema.$ref = ref;\n    };\n    // throw on cycles\n    // break cycles\n    if (ctx.cycles === \"throw\") {\n        for (const entry of ctx.seen.entries()) {\n            const seen = entry[1];\n            if (seen.cycle) {\n                throw new Error(\"Cycle detected: \" +\n                    `#/${seen.cycle?.join(\"/\")}/<root>` +\n                    '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n            }\n        }\n    }\n    // extract schemas into $defs\n    for (const entry of ctx.seen.entries()) {\n        const seen = entry[1];\n        // convert root schema to # $ref\n        if (schema === entry[0]) {\n            extractToDef(entry); // this has special handling for the root schema\n            continue;\n        }\n        // extract schemas that are in the external registry\n        if (ctx.external) {\n            const ext = ctx.external.registry.get(entry[0])?.id;\n            if (schema !== entry[0] && ext) {\n                extractToDef(entry);\n                continue;\n            }\n        }\n        // extract schemas with `id` meta\n        const id = ctx.metadataRegistry.get(entry[0])?.id;\n        if (id) {\n            extractToDef(entry);\n            continue;\n        }\n        // break cycles\n        if (seen.cycle) {\n            // any\n            extractToDef(entry);\n            continue;\n        }\n        // extract reused schemas\n        if (seen.count > 1) {\n            if (ctx.reused === \"ref\") {\n                extractToDef(entry);\n                // biome-ignore lint:\n                continue;\n            }\n        }\n    }\n}\nexport function finalize(ctx, schema) {\n    const root = ctx.seen.get(schema);\n    if (!root)\n        throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n    // flatten refs - inherit properties from parent schemas\n    const flattenRef = (zodSchema) => {\n        const seen = ctx.seen.get(zodSchema);\n        // already processed\n        if (seen.ref === null)\n            return;\n        const schema = seen.def ?? seen.schema;\n        const _cached = { ...schema };\n        const ref = seen.ref;\n        seen.ref = null; // prevent infinite recursion\n        if (ref) {\n            flattenRef(ref);\n            const refSeen = ctx.seen.get(ref);\n            const refSchema = refSeen.schema;\n            // merge referenced schema into current\n            if (refSchema.$ref && (ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\")) {\n                // older drafts can't combine $ref with other properties\n                schema.allOf = schema.allOf ?? [];\n                schema.allOf.push(refSchema);\n            }\n            else {\n                Object.assign(schema, refSchema);\n            }\n            // restore child's own properties (child wins)\n            Object.assign(schema, _cached);\n            const isParentRef = zodSchema._zod.parent === ref;\n            // For parent chain, child is a refinement - remove parent-only properties\n            if (isParentRef) {\n                for (const key in schema) {\n                    if (key === \"$ref\" || key === \"allOf\")\n                        continue;\n                    if (!(key in _cached)) {\n                        delete schema[key];\n                    }\n                }\n            }\n            // When ref was extracted to $defs, remove properties that match the definition\n            if (refSchema.$ref && refSeen.def) {\n                for (const key in schema) {\n                    if (key === \"$ref\" || key === \"allOf\")\n                        continue;\n                    if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) {\n                        delete schema[key];\n                    }\n                }\n            }\n        }\n        // If parent was extracted (has $ref), propagate $ref to this schema\n        // This handles cases like: readonly().meta({id}).describe()\n        // where processor sets ref to innerType but parent should be referenced\n        const parent = zodSchema._zod.parent;\n        if (parent && parent !== ref) {\n            // Ensure parent is processed first so its def has inherited properties\n            flattenRef(parent);\n            const parentSeen = ctx.seen.get(parent);\n            if (parentSeen?.schema.$ref) {\n                schema.$ref = parentSeen.schema.$ref;\n                // De-duplicate with parent's definition\n                if (parentSeen.def) {\n                    for (const key in schema) {\n                        if (key === \"$ref\" || key === \"allOf\")\n                            continue;\n                        if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) {\n                            delete schema[key];\n                        }\n                    }\n                }\n            }\n        }\n        // execute overrides\n        ctx.override({\n            zodSchema: zodSchema,\n            jsonSchema: schema,\n            path: seen.path ?? [],\n        });\n    };\n    for (const entry of [...ctx.seen.entries()].reverse()) {\n        flattenRef(entry[0]);\n    }\n    const result = {};\n    if (ctx.target === \"draft-2020-12\") {\n        result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n    }\n    else if (ctx.target === \"draft-07\") {\n        result.$schema = \"http://json-schema.org/draft-07/schema#\";\n    }\n    else if (ctx.target === \"draft-04\") {\n        result.$schema = \"http://json-schema.org/draft-04/schema#\";\n    }\n    else if (ctx.target === \"openapi-3.0\") {\n        // OpenAPI 3.0 schema objects should not include a $schema property\n    }\n    else {\n        // Arbitrary string values are allowed but won't have a $schema property set\n    }\n    if (ctx.external?.uri) {\n        const id = ctx.external.registry.get(schema)?.id;\n        if (!id)\n            throw new Error(\"Schema is missing an `id` property\");\n        result.$id = ctx.external.uri(id);\n    }\n    Object.assign(result, root.def ?? root.schema);\n    // The `id` in `.meta()` is a Zod-specific registration tag used to extract\n    // schemas into $defs \u2014 it is not user-facing JSON Schema metadata. Strip it\n    // from the output body where it would otherwise leak. The id is preserved\n    // implicitly via the $defs key (and via $ref paths).\n    const rootMetaId = ctx.metadataRegistry.get(schema)?.id;\n    if (rootMetaId !== undefined && result.id === rootMetaId)\n        delete result.id;\n    // build defs object\n    const defs = ctx.external?.defs ?? {};\n    for (const entry of ctx.seen.entries()) {\n        const seen = entry[1];\n        if (seen.def && seen.defId) {\n            if (seen.def.id === seen.defId)\n                delete seen.def.id;\n            defs[seen.defId] = seen.def;\n        }\n    }\n    // set definitions in result\n    if (ctx.external) {\n    }\n    else {\n        if (Object.keys(defs).length > 0) {\n            if (ctx.target === \"draft-2020-12\") {\n                result.$defs = defs;\n            }\n            else {\n                result.definitions = defs;\n            }\n        }\n    }\n    try {\n        // this \"finalizes\" this schema and ensures all cycles are removed\n        // each call to finalize() is functionally independent\n        // though the seen map is shared\n        const finalized = JSON.parse(JSON.stringify(result));\n        Object.defineProperty(finalized, \"~standard\", {\n            value: {\n                ...schema[\"~standard\"],\n                jsonSchema: {\n                    input: createStandardJSONSchemaMethod(schema, \"input\", ctx.processors),\n                    output: createStandardJSONSchemaMethod(schema, \"output\", ctx.processors),\n                },\n            },\n            enumerable: false,\n            writable: false,\n        });\n        return finalized;\n    }\n    catch (_err) {\n        throw new Error(\"Error converting schema to JSON.\");\n    }\n}\nfunction isTransforming(_schema, _ctx) {\n    const ctx = _ctx ?? { seen: new Set() };\n    if (ctx.seen.has(_schema))\n        return false;\n    ctx.seen.add(_schema);\n    const def = _schema._zod.def;\n    if (def.type === \"transform\")\n        return true;\n    if (def.type === \"array\")\n        return isTransforming(def.element, ctx);\n    if (def.type === \"set\")\n        return isTransforming(def.valueType, ctx);\n    if (def.type === \"lazy\")\n        return isTransforming(def.getter(), ctx);\n    if (def.type === \"promise\" ||\n        def.type === \"optional\" ||\n        def.type === \"nonoptional\" ||\n        def.type === \"nullable\" ||\n        def.type === \"readonly\" ||\n        def.type === \"default\" ||\n        def.type === \"prefault\") {\n        return isTransforming(def.innerType, ctx);\n    }\n    if (def.type === \"intersection\") {\n        return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n    }\n    if (def.type === \"record\" || def.type === \"map\") {\n        return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n    }\n    if (def.type === \"pipe\") {\n        if (_schema._zod.traits.has(\"$ZodCodec\"))\n            return true;\n        return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n    }\n    if (def.type === \"object\") {\n        for (const key in def.shape) {\n            if (isTransforming(def.shape[key], ctx))\n                return true;\n        }\n        return false;\n    }\n    if (def.type === \"union\") {\n        for (const option of def.options) {\n            if (isTransforming(option, ctx))\n                return true;\n        }\n        return false;\n    }\n    if (def.type === \"tuple\") {\n        for (const item of def.items) {\n            if (isTransforming(item, ctx))\n                return true;\n        }\n        if (def.rest && isTransforming(def.rest, ctx))\n            return true;\n        return false;\n    }\n    return false;\n}\n/**\n * Creates a toJSONSchema method for a schema instance.\n * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing.\n */\nexport const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {\n    const ctx = initializeContext({ ...params, processors });\n    process(schema, ctx);\n    extractDefs(ctx, schema);\n    return finalize(ctx, schema);\n};\nexport const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {\n    const { libraryOptions, target } = params ?? {};\n    const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors });\n    process(schema, ctx);\n    extractDefs(ctx, schema);\n    return finalize(ctx, schema);\n};\n", "import { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\nimport { getEnumValues } from \"./util.js\";\nconst formatMap = {\n    guid: \"uuid\",\n    url: \"uri\",\n    datetime: \"date-time\",\n    json_string: \"json-string\",\n    regex: \"\", // do not set\n};\n// ==================== SIMPLE TYPE PROCESSORS ====================\nexport const stringProcessor = (schema, ctx, _json, _params) => {\n    const json = _json;\n    json.type = \"string\";\n    const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n        .bag;\n    if (typeof minimum === \"number\")\n        json.minLength = minimum;\n    if (typeof maximum === \"number\")\n        json.maxLength = maximum;\n    // custom pattern overrides format\n    if (format) {\n        json.format = formatMap[format] ?? format;\n        if (json.format === \"\")\n            delete json.format; // empty format is not valid\n        // JSON Schema format: \"time\" requires a full time with offset or Z\n        // z.iso.time() does not include timezone information, so format: \"time\" should never be used\n        if (format === \"time\") {\n            delete json.format;\n        }\n    }\n    if (contentEncoding)\n        json.contentEncoding = contentEncoding;\n    if (patterns && patterns.size > 0) {\n        const regexes = [...patterns];\n        if (regexes.length === 1)\n            json.pattern = regexes[0].source;\n        else if (regexes.length > 1) {\n            json.allOf = [\n                ...regexes.map((regex) => ({\n                    ...(ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\"\n                        ? { type: \"string\" }\n                        : {}),\n                    pattern: regex.source,\n                })),\n            ];\n        }\n    }\n};\nexport const numberProcessor = (schema, ctx, _json, _params) => {\n    const json = _json;\n    const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n    if (typeof format === \"string\" && format.includes(\"int\"))\n        json.type = \"integer\";\n    else\n        json.type = \"number\";\n    // when both minimum and exclusiveMinimum exist, pick the more restrictive one\n    const exMin = typeof exclusiveMinimum === \"number\" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);\n    const exMax = typeof exclusiveMaximum === \"number\" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY);\n    const legacy = ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\";\n    if (exMin) {\n        if (legacy) {\n            json.minimum = exclusiveMinimum;\n            json.exclusiveMinimum = true;\n        }\n        else {\n            json.exclusiveMinimum = exclusiveMinimum;\n        }\n    }\n    else if (typeof minimum === \"number\") {\n        json.minimum = minimum;\n    }\n    if (exMax) {\n        if (legacy) {\n            json.maximum = exclusiveMaximum;\n            json.exclusiveMaximum = true;\n        }\n        else {\n            json.exclusiveMaximum = exclusiveMaximum;\n        }\n    }\n    else if (typeof maximum === \"number\") {\n        json.maximum = maximum;\n    }\n    if (typeof multipleOf === \"number\")\n        json.multipleOf = multipleOf;\n};\nexport const booleanProcessor = (_schema, _ctx, json, _params) => {\n    json.type = \"boolean\";\n};\nexport const bigintProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"BigInt cannot be represented in JSON Schema\");\n    }\n};\nexport const symbolProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Symbols cannot be represented in JSON Schema\");\n    }\n};\nexport const nullProcessor = (_schema, ctx, json, _params) => {\n    if (ctx.target === \"openapi-3.0\") {\n        json.type = \"string\";\n        json.nullable = true;\n        json.enum = [null];\n    }\n    else {\n        json.type = \"null\";\n    }\n};\nexport const undefinedProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Undefined cannot be represented in JSON Schema\");\n    }\n};\nexport const voidProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Void cannot be represented in JSON Schema\");\n    }\n};\nexport const neverProcessor = (_schema, _ctx, json, _params) => {\n    json.not = {};\n};\nexport const anyProcessor = (_schema, _ctx, _json, _params) => {\n    // empty schema accepts anything\n};\nexport const unknownProcessor = (_schema, _ctx, _json, _params) => {\n    // empty schema accepts anything\n};\nexport const dateProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Date cannot be represented in JSON Schema\");\n    }\n};\nexport const enumProcessor = (schema, _ctx, json, _params) => {\n    const def = schema._zod.def;\n    const values = getEnumValues(def.entries);\n    // Number enums can have both string and number values\n    if (values.every((v) => typeof v === \"number\"))\n        json.type = \"number\";\n    if (values.every((v) => typeof v === \"string\"))\n        json.type = \"string\";\n    json.enum = values;\n};\nexport const literalProcessor = (schema, ctx, json, _params) => {\n    const def = schema._zod.def;\n    const vals = [];\n    for (const val of def.values) {\n        if (val === undefined) {\n            if (ctx.unrepresentable === \"throw\") {\n                throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n            }\n            else {\n                // do not add to vals\n            }\n        }\n        else if (typeof val === \"bigint\") {\n            if (ctx.unrepresentable === \"throw\") {\n                throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n            }\n            else {\n                vals.push(Number(val));\n            }\n        }\n        else {\n            vals.push(val);\n        }\n    }\n    if (vals.length === 0) {\n        // do nothing (an undefined literal was stripped)\n    }\n    else if (vals.length === 1) {\n        const val = vals[0];\n        json.type = val === null ? \"null\" : typeof val;\n        if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n            json.enum = [val];\n        }\n        else {\n            json.const = val;\n        }\n    }\n    else {\n        if (vals.every((v) => typeof v === \"number\"))\n            json.type = \"number\";\n        if (vals.every((v) => typeof v === \"string\"))\n            json.type = \"string\";\n        if (vals.every((v) => typeof v === \"boolean\"))\n            json.type = \"boolean\";\n        if (vals.every((v) => v === null))\n            json.type = \"null\";\n        json.enum = vals;\n    }\n};\nexport const nanProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"NaN cannot be represented in JSON Schema\");\n    }\n};\nexport const templateLiteralProcessor = (schema, _ctx, json, _params) => {\n    const _json = json;\n    const pattern = schema._zod.pattern;\n    if (!pattern)\n        throw new Error(\"Pattern not found in template literal\");\n    _json.type = \"string\";\n    _json.pattern = pattern.source;\n};\nexport const fileProcessor = (schema, _ctx, json, _params) => {\n    const _json = json;\n    const file = {\n        type: \"string\",\n        format: \"binary\",\n        contentEncoding: \"binary\",\n    };\n    const { minimum, maximum, mime } = schema._zod.bag;\n    if (minimum !== undefined)\n        file.minLength = minimum;\n    if (maximum !== undefined)\n        file.maxLength = maximum;\n    if (mime) {\n        if (mime.length === 1) {\n            file.contentMediaType = mime[0];\n            Object.assign(_json, file);\n        }\n        else {\n            Object.assign(_json, file); // shared props at root\n            _json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs\n        }\n    }\n    else {\n        Object.assign(_json, file);\n    }\n};\nexport const successProcessor = (_schema, _ctx, json, _params) => {\n    json.type = \"boolean\";\n};\nexport const customProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Custom types cannot be represented in JSON Schema\");\n    }\n};\nexport const functionProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Function types cannot be represented in JSON Schema\");\n    }\n};\nexport const transformProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Transforms cannot be represented in JSON Schema\");\n    }\n};\nexport const mapProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Map cannot be represented in JSON Schema\");\n    }\n};\nexport const setProcessor = (_schema, ctx, _json, _params) => {\n    if (ctx.unrepresentable === \"throw\") {\n        throw new Error(\"Set cannot be represented in JSON Schema\");\n    }\n};\n// ==================== COMPOSITE TYPE PROCESSORS ====================\nexport const arrayProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    const { minimum, maximum } = schema._zod.bag;\n    if (typeof minimum === \"number\")\n        json.minItems = minimum;\n    if (typeof maximum === \"number\")\n        json.maxItems = maximum;\n    json.type = \"array\";\n    json.items = process(def.element, ctx, {\n        ...params,\n        path: [...params.path, \"items\"],\n    });\n};\nexport const objectProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    json.type = \"object\";\n    json.properties = {};\n    const shape = def.shape;\n    for (const key in shape) {\n        json.properties[key] = process(shape[key], ctx, {\n            ...params,\n            path: [...params.path, \"properties\", key],\n        });\n    }\n    // required keys\n    const allKeys = new Set(Object.keys(shape));\n    const requiredKeys = new Set([...allKeys].filter((key) => {\n        const v = def.shape[key]._zod;\n        if (ctx.io === \"input\") {\n            return v.optin === undefined;\n        }\n        else {\n            return v.optout === undefined;\n        }\n    }));\n    if (requiredKeys.size > 0) {\n        json.required = Array.from(requiredKeys);\n    }\n    // catchall\n    if (def.catchall?._zod.def.type === \"never\") {\n        // strict\n        json.additionalProperties = false;\n    }\n    else if (!def.catchall) {\n        // regular\n        if (ctx.io === \"output\")\n            json.additionalProperties = false;\n    }\n    else if (def.catchall) {\n        json.additionalProperties = process(def.catchall, ctx, {\n            ...params,\n            path: [...params.path, \"additionalProperties\"],\n        });\n    }\n};\nexport const unionProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches)\n    // This includes both z.xor() and discriminated unions\n    const isExclusive = def.inclusive === false;\n    const options = def.options.map((x, i) => process(x, ctx, {\n        ...params,\n        path: [...params.path, isExclusive ? \"oneOf\" : \"anyOf\", i],\n    }));\n    if (isExclusive) {\n        json.oneOf = options;\n    }\n    else {\n        json.anyOf = options;\n    }\n};\nexport const intersectionProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    const a = process(def.left, ctx, {\n        ...params,\n        path: [...params.path, \"allOf\", 0],\n    });\n    const b = process(def.right, ctx, {\n        ...params,\n        path: [...params.path, \"allOf\", 1],\n    });\n    const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n    const allOf = [\n        ...(isSimpleIntersection(a) ? a.allOf : [a]),\n        ...(isSimpleIntersection(b) ? b.allOf : [b]),\n    ];\n    json.allOf = allOf;\n};\nexport const tupleProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    json.type = \"array\";\n    const prefixPath = ctx.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n    const restPath = ctx.target === \"draft-2020-12\" ? \"items\" : ctx.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n    const prefixItems = def.items.map((x, i) => process(x, ctx, {\n        ...params,\n        path: [...params.path, prefixPath, i],\n    }));\n    const rest = def.rest\n        ? process(def.rest, ctx, {\n            ...params,\n            path: [...params.path, restPath, ...(ctx.target === \"openapi-3.0\" ? [def.items.length] : [])],\n        })\n        : null;\n    if (ctx.target === \"draft-2020-12\") {\n        json.prefixItems = prefixItems;\n        if (rest) {\n            json.items = rest;\n        }\n    }\n    else if (ctx.target === \"openapi-3.0\") {\n        json.items = {\n            anyOf: prefixItems,\n        };\n        if (rest) {\n            json.items.anyOf.push(rest);\n        }\n        json.minItems = prefixItems.length;\n        if (!rest) {\n            json.maxItems = prefixItems.length;\n        }\n    }\n    else {\n        json.items = prefixItems;\n        if (rest) {\n            json.additionalItems = rest;\n        }\n    }\n    // length\n    const { minimum, maximum } = schema._zod.bag;\n    if (typeof minimum === \"number\")\n        json.minItems = minimum;\n    if (typeof maximum === \"number\")\n        json.maxItems = maximum;\n};\nexport const recordProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    json.type = \"object\";\n    // For looseRecord with regex patterns, use patternProperties\n    // This correctly represents \"only validate keys matching the pattern\" semantics\n    // and composes well with allOf (intersections)\n    const keyType = def.keyType;\n    const keyBag = keyType._zod.bag;\n    const patterns = keyBag?.patterns;\n    if (def.mode === \"loose\" && patterns && patterns.size > 0) {\n        // Use patternProperties for looseRecord with regex patterns\n        const valueSchema = process(def.valueType, ctx, {\n            ...params,\n            path: [...params.path, \"patternProperties\", \"*\"],\n        });\n        json.patternProperties = {};\n        for (const pattern of patterns) {\n            json.patternProperties[pattern.source] = valueSchema;\n        }\n    }\n    else {\n        // Default behavior: use propertyNames + additionalProperties\n        if (ctx.target === \"draft-07\" || ctx.target === \"draft-2020-12\") {\n            json.propertyNames = process(def.keyType, ctx, {\n                ...params,\n                path: [...params.path, \"propertyNames\"],\n            });\n        }\n        json.additionalProperties = process(def.valueType, ctx, {\n            ...params,\n            path: [...params.path, \"additionalProperties\"],\n        });\n    }\n    // Add required for keys with discrete values (enum, literal, etc.)\n    const keyValues = keyType._zod.values;\n    if (keyValues) {\n        const validKeyValues = [...keyValues].filter((v) => typeof v === \"string\" || typeof v === \"number\");\n        if (validKeyValues.length > 0) {\n            json.required = validKeyValues;\n        }\n    }\n};\nexport const nullableProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    const inner = process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    if (ctx.target === \"openapi-3.0\") {\n        seen.ref = def.innerType;\n        json.nullable = true;\n    }\n    else {\n        json.anyOf = [inner, { type: \"null\" }];\n    }\n};\nexport const nonoptionalProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n};\nexport const defaultProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    json.default = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const prefaultProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    if (ctx.io === \"input\")\n        json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const catchProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    let catchValue;\n    try {\n        catchValue = def.catchValue(undefined);\n    }\n    catch {\n        throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n    }\n    json.default = catchValue;\n};\nexport const pipeProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    const inIsTransform = def.in._zod.traits.has(\"$ZodTransform\");\n    const innerType = ctx.io === \"input\" ? (inIsTransform ? def.out : def.in) : def.out;\n    process(innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = innerType;\n};\nexport const readonlyProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    json.readOnly = true;\n};\nexport const promiseProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n};\nexport const optionalProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    process(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n};\nexport const lazyProcessor = (schema, ctx, _json, params) => {\n    const innerType = schema._zod.innerType;\n    process(innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = innerType;\n};\n// ==================== ALL PROCESSORS ====================\nexport const allProcessors = {\n    string: stringProcessor,\n    number: numberProcessor,\n    boolean: booleanProcessor,\n    bigint: bigintProcessor,\n    symbol: symbolProcessor,\n    null: nullProcessor,\n    undefined: undefinedProcessor,\n    void: voidProcessor,\n    never: neverProcessor,\n    any: anyProcessor,\n    unknown: unknownProcessor,\n    date: dateProcessor,\n    enum: enumProcessor,\n    literal: literalProcessor,\n    nan: nanProcessor,\n    template_literal: templateLiteralProcessor,\n    file: fileProcessor,\n    success: successProcessor,\n    custom: customProcessor,\n    function: functionProcessor,\n    transform: transformProcessor,\n    map: mapProcessor,\n    set: setProcessor,\n    array: arrayProcessor,\n    object: objectProcessor,\n    union: unionProcessor,\n    intersection: intersectionProcessor,\n    tuple: tupleProcessor,\n    record: recordProcessor,\n    nullable: nullableProcessor,\n    nonoptional: nonoptionalProcessor,\n    default: defaultProcessor,\n    prefault: prefaultProcessor,\n    catch: catchProcessor,\n    pipe: pipeProcessor,\n    readonly: readonlyProcessor,\n    promise: promiseProcessor,\n    optional: optionalProcessor,\n    lazy: lazyProcessor,\n};\nexport function toJSONSchema(input, params) {\n    if (\"_idmap\" in input) {\n        // Registry case\n        const registry = input;\n        const ctx = initializeContext({ ...params, processors: allProcessors });\n        const defs = {};\n        // First pass: process all schemas to build the seen map\n        for (const entry of registry._idmap.entries()) {\n            const [_, schema] = entry;\n            process(schema, ctx);\n        }\n        const schemas = {};\n        const external = {\n            registry,\n            uri: params?.uri,\n            defs,\n        };\n        // Update the context with external configuration\n        ctx.external = external;\n        // Second pass: emit each schema\n        for (const entry of registry._idmap.entries()) {\n            const [key, schema] = entry;\n            extractDefs(ctx, schema);\n            schemas[key] = finalize(ctx, schema);\n        }\n        if (Object.keys(defs).length > 0) {\n            const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n            schemas.__shared = {\n                [defsSegment]: defs,\n            };\n        }\n        return { schemas };\n    }\n    // Single schema case\n    const ctx = initializeContext({ ...params, processors: allProcessors });\n    process(input, ctx);\n    extractDefs(ctx, input);\n    return finalize(ctx, input);\n}\n", "import { allProcessors } from \"./json-schema-processors.js\";\nimport { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\n/**\n * Legacy class-based interface for JSON Schema generation.\n * This class wraps the new functional implementation to provide backward compatibility.\n *\n * @deprecated Use the `toJSONSchema` function instead for new code.\n *\n * @example\n * ```typescript\n * // Legacy usage (still supported)\n * const gen = new JSONSchemaGenerator({ target: \"draft-07\" });\n * gen.process(schema);\n * const result = gen.emit(schema);\n *\n * // Preferred modern usage\n * const result = toJSONSchema(schema, { target: \"draft-07\" });\n * ```\n */\nexport class JSONSchemaGenerator {\n    /** @deprecated Access via ctx instead */\n    get metadataRegistry() {\n        return this.ctx.metadataRegistry;\n    }\n    /** @deprecated Access via ctx instead */\n    get target() {\n        return this.ctx.target;\n    }\n    /** @deprecated Access via ctx instead */\n    get unrepresentable() {\n        return this.ctx.unrepresentable;\n    }\n    /** @deprecated Access via ctx instead */\n    get override() {\n        return this.ctx.override;\n    }\n    /** @deprecated Access via ctx instead */\n    get io() {\n        return this.ctx.io;\n    }\n    /** @deprecated Access via ctx instead */\n    get counter() {\n        return this.ctx.counter;\n    }\n    set counter(value) {\n        this.ctx.counter = value;\n    }\n    /** @deprecated Access via ctx instead */\n    get seen() {\n        return this.ctx.seen;\n    }\n    constructor(params) {\n        // Normalize target for internal context\n        let normalizedTarget = params?.target ?? \"draft-2020-12\";\n        if (normalizedTarget === \"draft-4\")\n            normalizedTarget = \"draft-04\";\n        if (normalizedTarget === \"draft-7\")\n            normalizedTarget = \"draft-07\";\n        this.ctx = initializeContext({\n            processors: allProcessors,\n            target: normalizedTarget,\n            ...(params?.metadata && { metadata: params.metadata }),\n            ...(params?.unrepresentable && { unrepresentable: params.unrepresentable }),\n            ...(params?.override && { override: params.override }),\n            ...(params?.io && { io: params.io }),\n        });\n    }\n    /**\n     * Process a schema to prepare it for JSON Schema generation.\n     * This must be called before emit().\n     */\n    process(schema, _params = { path: [], schemaPath: [] }) {\n        return process(schema, this.ctx, _params);\n    }\n    /**\n     * Emit the final JSON Schema after processing.\n     * Must call process() first.\n     */\n    emit(schema, _params) {\n        // Apply emit params to the context\n        if (_params) {\n            if (_params.cycles)\n                this.ctx.cycles = _params.cycles;\n            if (_params.reused)\n                this.ctx.reused = _params.reused;\n            if (_params.external)\n                this.ctx.external = _params.external;\n        }\n        extractDefs(this.ctx, schema);\n        const result = finalize(this.ctx, schema);\n        // Strip ~standard property to match old implementation's return type\n        const { \"~standard\": _, ...plainResult } = result;\n        return plainResult;\n    }\n}\n", "export {};\n", "import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as processors from \"../core/json-schema-processors.js\";\nimport { createStandardJSONSchemaMethod, createToJSONSchemaMethod } from \"../core/to-json-schema.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\n// Lazy-bind builder methods.\n//\n// Builder methods (`.optional`, `.array`, `.refine`, ...) live as\n// non-enumerable getters on each concrete schema constructor's\n// prototype. On first access from an instance the getter allocates\n// `fn.bind(this)` and caches it as an own property on that instance,\n// so detached usage (`const m = schema.optional; m()`) still works\n// and the per-instance allocation only happens for methods actually\n// touched.\n//\n// One install per (prototype, group), memoized by `_installedGroups`.\nconst _installedGroups = /* @__PURE__ */ new WeakMap();\nfunction _installLazyMethods(inst, group, methods) {\n    const proto = Object.getPrototypeOf(inst);\n    let installed = _installedGroups.get(proto);\n    if (!installed) {\n        installed = new Set();\n        _installedGroups.set(proto, installed);\n    }\n    if (installed.has(group))\n        return;\n    installed.add(group);\n    for (const key in methods) {\n        const fn = methods[key];\n        Object.defineProperty(proto, key, {\n            configurable: true,\n            enumerable: false,\n            get() {\n                const bound = fn.bind(this);\n                Object.defineProperty(this, key, {\n                    configurable: true,\n                    writable: true,\n                    enumerable: true,\n                    value: bound,\n                });\n                return bound;\n            },\n            set(v) {\n                Object.defineProperty(this, key, {\n                    configurable: true,\n                    writable: true,\n                    enumerable: true,\n                    value: v,\n                });\n            },\n        });\n    }\n}\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n    core.$ZodType.init(inst, def);\n    Object.assign(inst[\"~standard\"], {\n        jsonSchema: {\n            input: createStandardJSONSchemaMethod(inst, \"input\"),\n            output: createStandardJSONSchemaMethod(inst, \"output\"),\n        },\n    });\n    inst.toJSONSchema = createToJSONSchemaMethod(inst, {});\n    inst.def = def;\n    inst.type = def.type;\n    Object.defineProperty(inst, \"_def\", { value: def });\n    // Parse-family is intentionally kept as per-instance closures: these are\n    // the hot path AND the most-detached methods (`arr.map(schema.parse)`,\n    // `const { parse } = schema`, etc.). Eager closures here mean callers pay\n    // ~12 closure allocations per schema but get monomorphic call sites and\n    // detached usage that \"just works\".\n    inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n    inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n    inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n    inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n    inst.spa = inst.safeParseAsync;\n    inst.encode = (data, params) => parse.encode(inst, data, params);\n    inst.decode = (data, params) => parse.decode(inst, data, params);\n    inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n    inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n    inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n    inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n    inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n    inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n    // All builder methods are placed on the internal prototype as lazy-bind\n    // getters. On first access per-instance, a bound thunk is allocated and\n    // cached as an own property; subsequent accesses skip the getter. This\n    // means: no per-instance allocation for unused methods, full\n    // detachability preserved (`const m = schema.optional; m()` works), and\n    // shared underlying function references across all instances.\n    _installLazyMethods(inst, \"ZodType\", {\n        check(...chks) {\n            const def = this.def;\n            return this.clone(util.mergeDefs(def, {\n                checks: [\n                    ...(def.checks ?? []),\n                    ...chks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n                ],\n            }), { parent: true });\n        },\n        with(...chks) {\n            return this.check(...chks);\n        },\n        clone(def, params) {\n            return core.clone(this, def, params);\n        },\n        brand() {\n            return this;\n        },\n        register(reg, meta) {\n            reg.add(this, meta);\n            return this;\n        },\n        refine(check, params) {\n            return this.check(refine(check, params));\n        },\n        superRefine(refinement, params) {\n            return this.check(superRefine(refinement, params));\n        },\n        overwrite(fn) {\n            return this.check(checks.overwrite(fn));\n        },\n        optional() {\n            return optional(this);\n        },\n        exactOptional() {\n            return exactOptional(this);\n        },\n        nullable() {\n            return nullable(this);\n        },\n        nullish() {\n            return optional(nullable(this));\n        },\n        nonoptional(params) {\n            return nonoptional(this, params);\n        },\n        array() {\n            return array(this);\n        },\n        or(arg) {\n            return union([this, arg]);\n        },\n        and(arg) {\n            return intersection(this, arg);\n        },\n        transform(tx) {\n            return pipe(this, transform(tx));\n        },\n        default(d) {\n            return _default(this, d);\n        },\n        prefault(d) {\n            return prefault(this, d);\n        },\n        catch(params) {\n            return _catch(this, params);\n        },\n        pipe(target) {\n            return pipe(this, target);\n        },\n        readonly() {\n            return readonly(this);\n        },\n        describe(description) {\n            const cl = this.clone();\n            core.globalRegistry.add(cl, { description });\n            return cl;\n        },\n        meta(...args) {\n            // overloaded: meta() returns the registered metadata, meta(data)\n            // returns a clone with `data` registered. The mapped type picks\n            // up the second overload, so we accept variadic any-args and\n            // return `any` to satisfy both at runtime.\n            if (args.length === 0)\n                return core.globalRegistry.get(this);\n            const cl = this.clone();\n            core.globalRegistry.add(cl, args[0]);\n            return cl;\n        },\n        isOptional() {\n            return this.safeParse(undefined).success;\n        },\n        isNullable() {\n            return this.safeParse(null).success;\n        },\n        apply(fn) {\n            return fn(this);\n        },\n    });\n    Object.defineProperty(inst, \"description\", {\n        get() {\n            return core.globalRegistry.get(inst)?.description;\n        },\n        configurable: true,\n    });\n    return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.stringProcessor(inst, ctx, json, params);\n    const bag = inst._zod.bag;\n    inst.format = bag.format ?? null;\n    inst.minLength = bag.minimum ?? null;\n    inst.maxLength = bag.maximum ?? null;\n    _installLazyMethods(inst, \"_ZodString\", {\n        regex(...args) {\n            return this.check(checks.regex(...args));\n        },\n        includes(...args) {\n            return this.check(checks.includes(...args));\n        },\n        startsWith(...args) {\n            return this.check(checks.startsWith(...args));\n        },\n        endsWith(...args) {\n            return this.check(checks.endsWith(...args));\n        },\n        min(...args) {\n            return this.check(checks.minLength(...args));\n        },\n        max(...args) {\n            return this.check(checks.maxLength(...args));\n        },\n        length(...args) {\n            return this.check(checks.length(...args));\n        },\n        nonempty(...args) {\n            return this.check(checks.minLength(1, ...args));\n        },\n        lowercase(params) {\n            return this.check(checks.lowercase(params));\n        },\n        uppercase(params) {\n            return this.check(checks.uppercase(params));\n        },\n        trim() {\n            return this.check(checks.trim());\n        },\n        normalize(...args) {\n            return this.check(checks.normalize(...args));\n        },\n        toLowerCase() {\n            return this.check(checks.toLowerCase());\n        },\n        toUpperCase() {\n            return this.check(checks.toUpperCase());\n        },\n        slugify() {\n            return this.check(checks.slugify());\n        },\n    });\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    _ZodString.init(inst, def);\n    inst.email = (params) => inst.check(core._email(ZodEmail, params));\n    inst.url = (params) => inst.check(core._url(ZodURL, params));\n    inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n    inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n    inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n    inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n    inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n    inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n    inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n    inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n    inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n    inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n    inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n    inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n    inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n    inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n    inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n    inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n    inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n    // iso\n    inst.datetime = (params) => inst.check(iso.datetime(params));\n    inst.date = (params) => inst.check(iso.date(params));\n    inst.time = (params) => inst.check(iso.time(params));\n    inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n    return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n    core.$ZodStringFormat.init(inst, def);\n    _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmail.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n    return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodGUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n    return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodUUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n    return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n    return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n    return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n    return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodURL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n    return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n    return core._url(ZodURL, {\n        protocol: core.regexes.httpProtocol,\n        hostname: core.regexes.domain,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmoji.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n    return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodNanoID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n    return core._nanoid(ZodNanoID, params);\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\n/**\n * Validates a CUID v1 string.\n *\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2 | `z.cuid2()`} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport function cuid(params) {\n    return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID2.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n    return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodULID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n    return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodXID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n    return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodKSUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n    return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n    return core._ipv4(ZodIPv4, params);\n}\nexport const ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodMAC.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n    return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n    return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n    core.$ZodCIDRv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n    return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n    core.$ZodCIDRv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n    return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n    return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64URL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n    return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodE164.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n    return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodJWT.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n    return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCustomStringFormat.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n    return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n    const enc = params?.enc ?? \"hex\";\n    const format = `${alg}_${enc}`;\n    const regex = core.regexes[format];\n    if (!regex)\n        throw new Error(`Unrecognized hash format: ${format}`);\n    return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n    core.$ZodNumber.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.numberProcessor(inst, ctx, json, params);\n    _installLazyMethods(inst, \"ZodNumber\", {\n        gt(value, params) {\n            return this.check(checks.gt(value, params));\n        },\n        gte(value, params) {\n            return this.check(checks.gte(value, params));\n        },\n        min(value, params) {\n            return this.check(checks.gte(value, params));\n        },\n        lt(value, params) {\n            return this.check(checks.lt(value, params));\n        },\n        lte(value, params) {\n            return this.check(checks.lte(value, params));\n        },\n        max(value, params) {\n            return this.check(checks.lte(value, params));\n        },\n        int(params) {\n            return this.check(int(params));\n        },\n        safe(params) {\n            return this.check(int(params));\n        },\n        positive(params) {\n            return this.check(checks.gt(0, params));\n        },\n        nonnegative(params) {\n            return this.check(checks.gte(0, params));\n        },\n        negative(params) {\n            return this.check(checks.lt(0, params));\n        },\n        nonpositive(params) {\n            return this.check(checks.lte(0, params));\n        },\n        multipleOf(value, params) {\n            return this.check(checks.multipleOf(value, params));\n        },\n        step(value, params) {\n            return this.check(checks.multipleOf(value, params));\n        },\n        finite() {\n            return this;\n        },\n    });\n    const bag = inst._zod.bag;\n    inst.minValue =\n        Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n    inst.maxValue =\n        Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n    inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n    inst.isFinite = true;\n    inst.format = bag.format ?? null;\n});\nexport function number(params) {\n    return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n    core.$ZodNumberFormat.init(inst, def);\n    ZodNumber.init(inst, def);\n});\nexport function int(params) {\n    return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n    return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n    return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n    return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n    return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n    core.$ZodBoolean.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.booleanProcessor(inst, ctx, json, params);\n});\nexport function boolean(params) {\n    return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n    core.$ZodBigInt.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.bigintProcessor(inst, ctx, json, params);\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n    inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n    inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n    inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    const bag = inst._zod.bag;\n    inst.minValue = bag.minimum ?? null;\n    inst.maxValue = bag.maximum ?? null;\n    inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n    return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n    core.$ZodBigIntFormat.init(inst, def);\n    ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n    return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n    return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n    core.$ZodSymbol.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.symbolProcessor(inst, ctx, json, params);\n});\nexport function symbol(params) {\n    return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n    core.$ZodUndefined.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.undefinedProcessor(inst, ctx, json, params);\n});\nfunction _undefined(params) {\n    return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n    core.$ZodNull.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nullProcessor(inst, ctx, json, params);\n});\nfunction _null(params) {\n    return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n    core.$ZodAny.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.anyProcessor(inst, ctx, json, params);\n});\nexport function any() {\n    return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n    core.$ZodUnknown.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.unknownProcessor(inst, ctx, json, params);\n});\nexport function unknown() {\n    return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n    core.$ZodNever.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.neverProcessor(inst, ctx, json, params);\n});\nexport function never(params) {\n    return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n    core.$ZodVoid.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.voidProcessor(inst, ctx, json, params);\n});\nfunction _void(params) {\n    return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n    core.$ZodDate.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.dateProcessor(inst, ctx, json, params);\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    const c = inst._zod.bag;\n    inst.minDate = c.minimum ? new Date(c.minimum) : null;\n    inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n    return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n    core.$ZodArray.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.arrayProcessor(inst, ctx, json, params);\n    inst.element = def.element;\n    _installLazyMethods(inst, \"ZodArray\", {\n        min(n, params) {\n            return this.check(checks.minLength(n, params));\n        },\n        nonempty(params) {\n            return this.check(checks.minLength(1, params));\n        },\n        max(n, params) {\n            return this.check(checks.maxLength(n, params));\n        },\n        length(n, params) {\n            return this.check(checks.length(n, params));\n        },\n        unwrap() {\n            return this.element;\n        },\n    });\n});\nexport function array(element, params) {\n    return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n    const shape = schema._zod.def.shape;\n    return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n    core.$ZodObjectJIT.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.objectProcessor(inst, ctx, json, params);\n    util.defineLazy(inst, \"shape\", () => {\n        return def.shape;\n    });\n    _installLazyMethods(inst, \"ZodObject\", {\n        keyof() {\n            return _enum(Object.keys(this._zod.def.shape));\n        },\n        catchall(catchall) {\n            return this.clone({ ...this._zod.def, catchall: catchall });\n        },\n        passthrough() {\n            return this.clone({ ...this._zod.def, catchall: unknown() });\n        },\n        loose() {\n            return this.clone({ ...this._zod.def, catchall: unknown() });\n        },\n        strict() {\n            return this.clone({ ...this._zod.def, catchall: never() });\n        },\n        strip() {\n            return this.clone({ ...this._zod.def, catchall: undefined });\n        },\n        extend(incoming) {\n            return util.extend(this, incoming);\n        },\n        safeExtend(incoming) {\n            return util.safeExtend(this, incoming);\n        },\n        merge(other) {\n            return util.merge(this, other);\n        },\n        pick(mask) {\n            return util.pick(this, mask);\n        },\n        omit(mask) {\n            return util.omit(this, mask);\n        },\n        partial(...args) {\n            return util.partial(ZodOptional, this, args[0]);\n        },\n        required(...args) {\n            return util.required(ZodNonOptional, this, args[0]);\n        },\n    });\n});\nexport function object(shape, params) {\n    const def = {\n        type: \"object\",\n        shape: shape ?? {},\n        ...util.normalizeParams(params),\n    };\n    return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: never(),\n        ...util.normalizeParams(params),\n    });\n}\n// looseObject\nexport function looseObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: unknown(),\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n    core.$ZodUnion.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n    inst.options = def.options;\n});\nexport function union(options, params) {\n    return new ZodUnion({\n        type: \"union\",\n        options: options,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodXor = /*@__PURE__*/ core.$constructor(\"ZodXor\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodXor.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n    inst.options = def.options;\n});\n/** Creates an exclusive union (XOR) where exactly one option must match.\n * Unlike regular unions that succeed when any option matches, xor fails if\n * zero or more than one option matches the input. */\nexport function xor(options, params) {\n    return new ZodXor({\n        type: \"union\",\n        options: options,\n        inclusive: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n    // const [options, params] = args;\n    return new ZodDiscriminatedUnion({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n    core.$ZodIntersection.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.intersectionProcessor(inst, ctx, json, params);\n});\nexport function intersection(left, right) {\n    return new ZodIntersection({\n        type: \"intersection\",\n        left: left,\n        right: right,\n    });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n    core.$ZodTuple.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.tupleProcessor(inst, ctx, json, params);\n    inst.rest = (rest) => inst.clone({\n        ...inst._zod.def,\n        rest: rest,\n    });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof core.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new ZodTuple({\n        type: \"tuple\",\n        items: items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n    core.$ZodRecord.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.recordProcessor(inst, ctx, json, params);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n    // v3-compat: z.record(valueType, params?) \u2014 defaults keyType to z.string()\n    if (!valueType || !valueType._zod) {\n        return new ZodRecord({\n            type: \"record\",\n            keyType: string(),\n            valueType: keyType,\n            ...util.normalizeParams(valueType),\n        });\n    }\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n    const k = core.clone(keyType);\n    k._zod.values = undefined;\n    return new ZodRecord({\n        type: \"record\",\n        keyType: k,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function looseRecord(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        mode: \"loose\",\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n    core.$ZodMap.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.mapProcessor(inst, ctx, json, params);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function map(keyType, valueType, params) {\n    return new ZodMap({\n        type: \"map\",\n        keyType: keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n    core.$ZodSet.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.setProcessor(inst, ctx, json, params);\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n    return new ZodSet({\n        type: \"set\",\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n    core.$ZodEnum.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.enumProcessor(inst, ctx, json, params);\n    inst.enum = def.entries;\n    inst.options = Object.values(def.entries);\n    const keys = new Set(Object.keys(def.entries));\n    inst.extract = (values, params) => {\n        const newEntries = {};\n        for (const value of values) {\n            if (keys.has(value)) {\n                newEntries[value] = def.entries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n    inst.exclude = (values, params) => {\n        const newEntries = { ...def.entries };\n        for (const value of values) {\n            if (keys.has(value)) {\n                delete newEntries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n});\nfunction _enum(values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n    core.$ZodLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.literalProcessor(inst, ctx, json, params);\n    inst.values = new Set(def.values);\n    Object.defineProperty(inst, \"value\", {\n        get() {\n            if (def.values.length > 1) {\n                throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n            }\n            return def.values[0];\n        },\n    });\n});\nexport function literal(value, params) {\n    return new ZodLiteral({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n    core.$ZodFile.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.fileProcessor(inst, ctx, json, params);\n    inst.min = (size, params) => inst.check(core._minSize(size, params));\n    inst.max = (size, params) => inst.check(core._maxSize(size, params));\n    inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n    return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n    core.$ZodTransform.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.transformProcessor(inst, ctx, json, params);\n    inst._zod.parse = (payload, _ctx) => {\n        if (_ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = inst);\n                // _issue.continue ??= true;\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        const output = def.transform(payload.value, payload);\n        if (output instanceof Promise) {\n            return output.then((output) => {\n                payload.value = output;\n                payload.fallback = true;\n                return payload;\n            });\n        }\n        payload.value = output;\n        payload.fallback = true;\n        return payload;\n    };\n});\nexport function transform(fn) {\n    return new ZodTransform({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n    core.$ZodOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n    return new ZodOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodExactOptional = /*@__PURE__*/ core.$constructor(\"ZodExactOptional\", (inst, def) => {\n    core.$ZodExactOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function exactOptional(innerType) {\n    return new ZodExactOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n    core.$ZodNullable.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nullableProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n    return new ZodNullable({\n        type: \"nullable\",\n        innerType: innerType,\n    });\n}\n// nullish\nexport function nullish(innerType) {\n    return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n    core.$ZodDefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.defaultProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n    return new ZodDefault({\n        type: \"default\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n    core.$ZodPrefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.prefaultProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n    return new ZodPrefault({\n        type: \"prefault\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n    core.$ZodNonOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nonoptionalProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n    return new ZodNonOptional({\n        type: \"nonoptional\",\n        innerType: innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n    core.$ZodSuccess.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.successProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n    return new ZodSuccess({\n        type: \"success\",\n        innerType: innerType,\n    });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n    core.$ZodCatch.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.catchProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n    return new ZodCatch({\n        type: \"catch\",\n        innerType: innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n    core.$ZodNaN.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nanProcessor(inst, ctx, json, params);\n});\nexport function nan(params) {\n    return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n    core.$ZodPipe.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.pipeProcessor(inst, ctx, json, params);\n    inst.in = def.in;\n    inst.out = def.out;\n});\nexport function pipe(in_, out) {\n    return new ZodPipe({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        // ...util.normalizeParams(params),\n    });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n    ZodPipe.init(inst, def);\n    core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n    return new ZodCodec({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        transform: params.decode,\n        reverseTransform: params.encode,\n    });\n}\nexport function invertCodec(codec) {\n    const def = codec._zod.def;\n    return new ZodCodec({\n        type: \"pipe\",\n        in: def.out,\n        out: def.in,\n        transform: def.reverseTransform,\n        reverseTransform: def.transform,\n    });\n}\nexport const ZodPreprocess = /*@__PURE__*/ core.$constructor(\"ZodPreprocess\", (inst, def) => {\n    ZodPipe.init(inst, def);\n    core.$ZodPreprocess.init(inst, def);\n});\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n    core.$ZodReadonly.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.readonlyProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n    return new ZodReadonly({\n        type: \"readonly\",\n        innerType: innerType,\n    });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n    core.$ZodTemplateLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.templateLiteralProcessor(inst, ctx, json, params);\n});\nexport function templateLiteral(parts, params) {\n    return new ZodTemplateLiteral({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n    core.$ZodLazy.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.lazyProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n    return new ZodLazy({\n        type: \"lazy\",\n        getter: getter,\n    });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n    core.$ZodPromise.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.promiseProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n    return new ZodPromise({\n        type: \"promise\",\n        innerType: innerType,\n    });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n    core.$ZodFunction.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.functionProcessor(inst, ctx, json, params);\n});\nexport function _function(params) {\n    return new ZodFunction({\n        type: \"function\",\n        input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n        output: params?.output ?? unknown(),\n    });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n    core.$ZodCustom.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.customProcessor(inst, ctx, json, params);\n});\n// custom checks\nexport function check(fn) {\n    const ch = new core.$ZodCheck({\n        check: \"custom\",\n        // ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function custom(fn, _params) {\n    return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n    return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn, params) {\n    return core._superRefine(fn, params);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nfunction _instanceof(cls, params = {}) {\n    const inst = new ZodCustom({\n        type: \"custom\",\n        check: \"custom\",\n        fn: (data) => data instanceof cls,\n        abort: true,\n        ...util.normalizeParams(params),\n    });\n    inst._zod.bag.Class = cls;\n    // Override check to emit invalid_type instead of custom\n    inst._zod.check = (payload) => {\n        if (!(payload.value instanceof cls)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: cls.name,\n                input: payload.value,\n                inst,\n                path: [...(inst._zod.def.path ?? [])],\n            });\n        }\n    };\n    return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n    Codec: ZodCodec,\n    Boolean: ZodBoolean,\n    String: ZodString,\n}, ...args);\nexport function json(params) {\n    const jsonSchema = lazy(() => {\n        return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n    });\n    return jsonSchema;\n}\n// preprocess\nexport function preprocess(fn, schema) {\n    return new ZodPreprocess({\n        type: \"pipe\",\n        in: transform(fn),\n        out: schema,\n    });\n}\n", "export { _lt as lt, _lte as lte, _gt as gt, _gte as gte, _positive as positive, _negative as negative, _nonpositive as nonpositive, _nonnegative as nonnegative, _multipleOf as multipleOf, _maxSize as maxSize, _minSize as minSize, _size as size, _maxLength as maxLength, _minLength as minLength, _length as length, _regex as regex, _lowercase as lowercase, _uppercase as uppercase, _includes as includes, _startsWith as startsWith, _endsWith as endsWith, _property as property, _mime as mime, _overwrite as overwrite, _normalize as normalize, _trim as trim, _toLowerCase as toLowerCase, _toUpperCase as toUpperCase, _slugify as slugify, } from \"../core/index.js\";\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n    core.$ZodISODateTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n    return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n    core.$ZodISODate.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n    return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n    core.$ZodISOTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n    return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n    core.$ZodISODuration.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n    return core._isoDuration(ZodISODuration, params);\n}\n", "import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n    $ZodError.init(inst, issues);\n    inst.name = \"ZodError\";\n    Object.defineProperties(inst, {\n        format: {\n            value: (mapper) => core.formatError(inst, mapper),\n            // enumerable: false,\n        },\n        flatten: {\n            value: (mapper) => core.flattenError(inst, mapper),\n            // enumerable: false,\n        },\n        addIssue: {\n            value: (issue) => {\n                inst.issues.push(issue);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        addIssues: {\n            value: (issues) => {\n                inst.issues.push(...issues);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        isEmpty: {\n            get() {\n                return inst.issues.length === 0;\n            },\n            // enumerable: false,\n        },\n    });\n    // Object.defineProperty(inst, \"isEmpty\", {\n    //   get() {\n    //     return inst.issues.length === 0;\n    //   },\n    // });\n};\nexport const ZodError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer, {\n    Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n", "import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n", "// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n    invalid_type: \"invalid_type\",\n    too_big: \"too_big\",\n    too_small: \"too_small\",\n    invalid_format: \"invalid_format\",\n    not_multiple_of: \"not_multiple_of\",\n    unrecognized_keys: \"unrecognized_keys\",\n    invalid_union: \"invalid_union\",\n    invalid_key: \"invalid_key\",\n    invalid_element: \"invalid_element\",\n    invalid_value: \"invalid_value\",\n    custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n    core.config({\n        customError: map,\n    });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n    return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n", "import { globalRegistry } from \"../core/registries.js\";\nimport * as _checks from \"./checks.js\";\nimport * as _iso from \"./iso.js\";\nimport * as _schemas from \"./schemas.js\";\n// Local z object to avoid circular dependency with ../index.js\nconst z = {\n    ..._schemas,\n    ..._checks,\n    iso: _iso,\n};\n// Keys that are recognized and handled by the conversion logic\nconst RECOGNIZED_KEYS = /*@__PURE__*/ new Set([\n    // Schema identification\n    \"$schema\",\n    \"$ref\",\n    \"$defs\",\n    \"definitions\",\n    // Core schema keywords\n    \"$id\",\n    \"id\",\n    \"$comment\",\n    \"$anchor\",\n    \"$vocabulary\",\n    \"$dynamicRef\",\n    \"$dynamicAnchor\",\n    // Type\n    \"type\",\n    \"enum\",\n    \"const\",\n    // Composition\n    \"anyOf\",\n    \"oneOf\",\n    \"allOf\",\n    \"not\",\n    // Object\n    \"properties\",\n    \"required\",\n    \"additionalProperties\",\n    \"patternProperties\",\n    \"propertyNames\",\n    \"minProperties\",\n    \"maxProperties\",\n    // Array\n    \"items\",\n    \"prefixItems\",\n    \"additionalItems\",\n    \"minItems\",\n    \"maxItems\",\n    \"uniqueItems\",\n    \"contains\",\n    \"minContains\",\n    \"maxContains\",\n    // String\n    \"minLength\",\n    \"maxLength\",\n    \"pattern\",\n    \"format\",\n    // Number\n    \"minimum\",\n    \"maximum\",\n    \"exclusiveMinimum\",\n    \"exclusiveMaximum\",\n    \"multipleOf\",\n    // Already handled metadata\n    \"description\",\n    \"default\",\n    // Content\n    \"contentEncoding\",\n    \"contentMediaType\",\n    \"contentSchema\",\n    // Unsupported (error-throwing)\n    \"unevaluatedItems\",\n    \"unevaluatedProperties\",\n    \"if\",\n    \"then\",\n    \"else\",\n    \"dependentSchemas\",\n    \"dependentRequired\",\n    // OpenAPI\n    \"nullable\",\n    \"readOnly\",\n]);\nfunction detectVersion(schema, defaultTarget) {\n    const $schema = schema.$schema;\n    if ($schema === \"https://json-schema.org/draft/2020-12/schema\") {\n        return \"draft-2020-12\";\n    }\n    if ($schema === \"http://json-schema.org/draft-07/schema#\") {\n        return \"draft-7\";\n    }\n    if ($schema === \"http://json-schema.org/draft-04/schema#\") {\n        return \"draft-4\";\n    }\n    // Use defaultTarget if provided, otherwise default to draft-2020-12\n    return defaultTarget ?? \"draft-2020-12\";\n}\nfunction resolveRef(ref, ctx) {\n    if (!ref.startsWith(\"#\")) {\n        throw new Error(\"External $ref is not supported, only local refs (#/...) are allowed\");\n    }\n    const path = ref.slice(1).split(\"/\").filter(Boolean);\n    // Handle root reference \"#\"\n    if (path.length === 0) {\n        return ctx.rootSchema;\n    }\n    const defsKey = ctx.version === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n    if (path[0] === defsKey) {\n        const key = path[1];\n        if (!key || !ctx.defs[key]) {\n            throw new Error(`Reference not found: ${ref}`);\n        }\n        return ctx.defs[key];\n    }\n    throw new Error(`Reference not found: ${ref}`);\n}\nfunction convertBaseSchema(schema, ctx) {\n    // Handle unsupported features\n    if (schema.not !== undefined) {\n        // Special case: { not: {} } represents never\n        if (typeof schema.not === \"object\" && Object.keys(schema.not).length === 0) {\n            return z.never();\n        }\n        throw new Error(\"not is not supported in Zod (except { not: {} } for never)\");\n    }\n    if (schema.unevaluatedItems !== undefined) {\n        throw new Error(\"unevaluatedItems is not supported\");\n    }\n    if (schema.unevaluatedProperties !== undefined) {\n        throw new Error(\"unevaluatedProperties is not supported\");\n    }\n    if (schema.if !== undefined || schema.then !== undefined || schema.else !== undefined) {\n        throw new Error(\"Conditional schemas (if/then/else) are not supported\");\n    }\n    if (schema.dependentSchemas !== undefined || schema.dependentRequired !== undefined) {\n        throw new Error(\"dependentSchemas and dependentRequired are not supported\");\n    }\n    // Handle $ref\n    if (schema.$ref) {\n        const refPath = schema.$ref;\n        if (ctx.refs.has(refPath)) {\n            return ctx.refs.get(refPath);\n        }\n        if (ctx.processing.has(refPath)) {\n            // Circular reference - use lazy\n            return z.lazy(() => {\n                if (!ctx.refs.has(refPath)) {\n                    throw new Error(`Circular reference not resolved: ${refPath}`);\n                }\n                return ctx.refs.get(refPath);\n            });\n        }\n        ctx.processing.add(refPath);\n        const resolved = resolveRef(refPath, ctx);\n        const zodSchema = convertSchema(resolved, ctx);\n        ctx.refs.set(refPath, zodSchema);\n        ctx.processing.delete(refPath);\n        return zodSchema;\n    }\n    // Handle enum\n    if (schema.enum !== undefined) {\n        const enumValues = schema.enum;\n        // Special case: OpenAPI 3.0 null representation { type: \"string\", nullable: true, enum: [null] }\n        if (ctx.version === \"openapi-3.0\" &&\n            schema.nullable === true &&\n            enumValues.length === 1 &&\n            enumValues[0] === null) {\n            return z.null();\n        }\n        if (enumValues.length === 0) {\n            return z.never();\n        }\n        if (enumValues.length === 1) {\n            return z.literal(enumValues[0]);\n        }\n        // Check if all values are strings\n        if (enumValues.every((v) => typeof v === \"string\")) {\n            return z.enum(enumValues);\n        }\n        // Mixed types - use union of literals\n        const literalSchemas = enumValues.map((v) => z.literal(v));\n        if (literalSchemas.length < 2) {\n            return literalSchemas[0];\n        }\n        return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]);\n    }\n    // Handle const\n    if (schema.const !== undefined) {\n        return z.literal(schema.const);\n    }\n    // Handle type\n    const type = schema.type;\n    if (Array.isArray(type)) {\n        // Expand type array into anyOf union\n        const typeSchemas = type.map((t) => {\n            const typeSchema = { ...schema, type: t };\n            return convertBaseSchema(typeSchema, ctx);\n        });\n        if (typeSchemas.length === 0) {\n            return z.never();\n        }\n        if (typeSchemas.length === 1) {\n            return typeSchemas[0];\n        }\n        return z.union(typeSchemas);\n    }\n    if (!type) {\n        // No type specified - empty schema (any)\n        return z.any();\n    }\n    let zodSchema;\n    switch (type) {\n        case \"string\": {\n            let stringSchema = z.string();\n            // Apply format using .check() with Zod format functions\n            if (schema.format) {\n                const format = schema.format;\n                // Map common formats to Zod check functions\n                if (format === \"email\") {\n                    stringSchema = stringSchema.check(z.email());\n                }\n                else if (format === \"uri\" || format === \"uri-reference\") {\n                    stringSchema = stringSchema.check(z.url());\n                }\n                else if (format === \"uuid\" || format === \"guid\") {\n                    stringSchema = stringSchema.check(z.uuid());\n                }\n                else if (format === \"date-time\") {\n                    stringSchema = stringSchema.check(z.iso.datetime());\n                }\n                else if (format === \"date\") {\n                    stringSchema = stringSchema.check(z.iso.date());\n                }\n                else if (format === \"time\") {\n                    stringSchema = stringSchema.check(z.iso.time());\n                }\n                else if (format === \"duration\") {\n                    stringSchema = stringSchema.check(z.iso.duration());\n                }\n                else if (format === \"ipv4\") {\n                    stringSchema = stringSchema.check(z.ipv4());\n                }\n                else if (format === \"ipv6\") {\n                    stringSchema = stringSchema.check(z.ipv6());\n                }\n                else if (format === \"mac\") {\n                    stringSchema = stringSchema.check(z.mac());\n                }\n                else if (format === \"cidr\") {\n                    stringSchema = stringSchema.check(z.cidrv4());\n                }\n                else if (format === \"cidr-v6\") {\n                    stringSchema = stringSchema.check(z.cidrv6());\n                }\n                else if (format === \"base64\") {\n                    stringSchema = stringSchema.check(z.base64());\n                }\n                else if (format === \"base64url\") {\n                    stringSchema = stringSchema.check(z.base64url());\n                }\n                else if (format === \"e164\") {\n                    stringSchema = stringSchema.check(z.e164());\n                }\n                else if (format === \"jwt\") {\n                    stringSchema = stringSchema.check(z.jwt());\n                }\n                else if (format === \"emoji\") {\n                    stringSchema = stringSchema.check(z.emoji());\n                }\n                else if (format === \"nanoid\") {\n                    stringSchema = stringSchema.check(z.nanoid());\n                }\n                else if (format === \"cuid\") {\n                    stringSchema = stringSchema.check(z.cuid());\n                }\n                else if (format === \"cuid2\") {\n                    stringSchema = stringSchema.check(z.cuid2());\n                }\n                else if (format === \"ulid\") {\n                    stringSchema = stringSchema.check(z.ulid());\n                }\n                else if (format === \"xid\") {\n                    stringSchema = stringSchema.check(z.xid());\n                }\n                else if (format === \"ksuid\") {\n                    stringSchema = stringSchema.check(z.ksuid());\n                }\n                // Note: json-string format is not currently supported by Zod\n                // Custom formats are ignored - keep as plain string\n            }\n            // Apply constraints\n            if (typeof schema.minLength === \"number\") {\n                stringSchema = stringSchema.min(schema.minLength);\n            }\n            if (typeof schema.maxLength === \"number\") {\n                stringSchema = stringSchema.max(schema.maxLength);\n            }\n            if (schema.pattern) {\n                // JSON Schema patterns are not implicitly anchored (match anywhere in string)\n                stringSchema = stringSchema.regex(new RegExp(schema.pattern));\n            }\n            zodSchema = stringSchema;\n            break;\n        }\n        case \"number\":\n        case \"integer\": {\n            let numberSchema = type === \"integer\" ? z.number().int() : z.number();\n            // Apply constraints\n            if (typeof schema.minimum === \"number\") {\n                numberSchema = numberSchema.min(schema.minimum);\n            }\n            if (typeof schema.maximum === \"number\") {\n                numberSchema = numberSchema.max(schema.maximum);\n            }\n            if (typeof schema.exclusiveMinimum === \"number\") {\n                numberSchema = numberSchema.gt(schema.exclusiveMinimum);\n            }\n            else if (schema.exclusiveMinimum === true && typeof schema.minimum === \"number\") {\n                numberSchema = numberSchema.gt(schema.minimum);\n            }\n            if (typeof schema.exclusiveMaximum === \"number\") {\n                numberSchema = numberSchema.lt(schema.exclusiveMaximum);\n            }\n            else if (schema.exclusiveMaximum === true && typeof schema.maximum === \"number\") {\n                numberSchema = numberSchema.lt(schema.maximum);\n            }\n            if (typeof schema.multipleOf === \"number\") {\n                numberSchema = numberSchema.multipleOf(schema.multipleOf);\n            }\n            zodSchema = numberSchema;\n            break;\n        }\n        case \"boolean\": {\n            zodSchema = z.boolean();\n            break;\n        }\n        case \"null\": {\n            zodSchema = z.null();\n            break;\n        }\n        case \"object\": {\n            const shape = {};\n            const properties = schema.properties || {};\n            const requiredSet = new Set(schema.required || []);\n            // Convert properties - mark optional ones\n            for (const [key, propSchema] of Object.entries(properties)) {\n                const propZodSchema = convertSchema(propSchema, ctx);\n                // If not in required array, make it optional\n                shape[key] = requiredSet.has(key) ? propZodSchema : propZodSchema.optional();\n            }\n            // Handle propertyNames\n            if (schema.propertyNames) {\n                const keySchema = convertSchema(schema.propertyNames, ctx);\n                const valueSchema = schema.additionalProperties && typeof schema.additionalProperties === \"object\"\n                    ? convertSchema(schema.additionalProperties, ctx)\n                    : z.any();\n                // Case A: No properties (pure record)\n                if (Object.keys(shape).length === 0) {\n                    zodSchema = z.record(keySchema, valueSchema);\n                    break;\n                }\n                // Case B: With properties (intersection of object and looseRecord)\n                const objectSchema = z.object(shape).passthrough();\n                const recordSchema = z.looseRecord(keySchema, valueSchema);\n                zodSchema = z.intersection(objectSchema, recordSchema);\n                break;\n            }\n            // Handle patternProperties\n            if (schema.patternProperties) {\n                // patternProperties: keys matching pattern must satisfy corresponding schema\n                // Use loose records so non-matching keys pass through\n                const patternProps = schema.patternProperties;\n                const patternKeys = Object.keys(patternProps);\n                const looseRecords = [];\n                for (const pattern of patternKeys) {\n                    const patternValue = convertSchema(patternProps[pattern], ctx);\n                    const keySchema = z.string().regex(new RegExp(pattern));\n                    looseRecords.push(z.looseRecord(keySchema, patternValue));\n                }\n                // Build intersection: object schema + all pattern property records\n                const schemasToIntersect = [];\n                if (Object.keys(shape).length > 0) {\n                    // Use passthrough so patternProperties can validate additional keys\n                    schemasToIntersect.push(z.object(shape).passthrough());\n                }\n                schemasToIntersect.push(...looseRecords);\n                if (schemasToIntersect.length === 0) {\n                    zodSchema = z.object({}).passthrough();\n                }\n                else if (schemasToIntersect.length === 1) {\n                    zodSchema = schemasToIntersect[0];\n                }\n                else {\n                    // Chain intersections: (A & B) & C & D ...\n                    let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);\n                    for (let i = 2; i < schemasToIntersect.length; i++) {\n                        result = z.intersection(result, schemasToIntersect[i]);\n                    }\n                    zodSchema = result;\n                }\n                break;\n            }\n            // Handle additionalProperties\n            // In JSON Schema, additionalProperties defaults to true (allow any extra properties)\n            // In Zod, objects strip unknown keys by default, so we need to handle this explicitly\n            const objectSchema = z.object(shape);\n            if (schema.additionalProperties === false) {\n                // Strict mode - no extra properties allowed\n                zodSchema = objectSchema.strict();\n            }\n            else if (typeof schema.additionalProperties === \"object\") {\n                // Extra properties must match the specified schema\n                zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx));\n            }\n            else {\n                // additionalProperties is true or undefined - allow any extra properties (passthrough)\n                zodSchema = objectSchema.passthrough();\n            }\n            break;\n        }\n        case \"array\": {\n            // TODO: uniqueItems is not supported\n            // TODO: contains/minContains/maxContains are not supported\n            // Check if this is a tuple (prefixItems or items as array)\n            const prefixItems = schema.prefixItems;\n            const items = schema.items;\n            if (prefixItems && Array.isArray(prefixItems)) {\n                // Tuple with prefixItems (draft-2020-12)\n                const tupleItems = prefixItems.map((item) => convertSchema(item, ctx));\n                const rest = items && typeof items === \"object\" && !Array.isArray(items)\n                    ? convertSchema(items, ctx)\n                    : undefined;\n                if (rest) {\n                    zodSchema = z.tuple(tupleItems).rest(rest);\n                }\n                else {\n                    zodSchema = z.tuple(tupleItems);\n                }\n                // Apply minItems/maxItems constraints to tuples\n                if (typeof schema.minItems === \"number\") {\n                    zodSchema = zodSchema.check(z.minLength(schema.minItems));\n                }\n                if (typeof schema.maxItems === \"number\") {\n                    zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n                }\n            }\n            else if (Array.isArray(items)) {\n                // Tuple with items array (draft-7)\n                const tupleItems = items.map((item) => convertSchema(item, ctx));\n                const rest = schema.additionalItems && typeof schema.additionalItems === \"object\"\n                    ? convertSchema(schema.additionalItems, ctx)\n                    : undefined; // additionalItems: false means no rest, handled by default tuple behavior\n                if (rest) {\n                    zodSchema = z.tuple(tupleItems).rest(rest);\n                }\n                else {\n                    zodSchema = z.tuple(tupleItems);\n                }\n                // Apply minItems/maxItems constraints to tuples\n                if (typeof schema.minItems === \"number\") {\n                    zodSchema = zodSchema.check(z.minLength(schema.minItems));\n                }\n                if (typeof schema.maxItems === \"number\") {\n                    zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n                }\n            }\n            else if (items !== undefined) {\n                // Regular array\n                const element = convertSchema(items, ctx);\n                let arraySchema = z.array(element);\n                // Apply constraints\n                if (typeof schema.minItems === \"number\") {\n                    arraySchema = arraySchema.min(schema.minItems);\n                }\n                if (typeof schema.maxItems === \"number\") {\n                    arraySchema = arraySchema.max(schema.maxItems);\n                }\n                zodSchema = arraySchema;\n            }\n            else {\n                // No items specified - array of any\n                zodSchema = z.array(z.any());\n            }\n            break;\n        }\n        default:\n            throw new Error(`Unsupported type: ${type}`);\n    }\n    return zodSchema;\n}\nfunction convertSchema(schema, ctx) {\n    if (typeof schema === \"boolean\") {\n        return schema ? z.any() : z.never();\n    }\n    // Convert base schema first (ignoring composition keywords)\n    let baseSchema = convertBaseSchema(schema, ctx);\n    const hasExplicitType = schema.type || schema.enum !== undefined || schema.const !== undefined;\n    // Process composition keywords LAST (they can appear together)\n    // Handle anyOf - wrap base schema with union\n    if (schema.anyOf && Array.isArray(schema.anyOf)) {\n        const options = schema.anyOf.map((s) => convertSchema(s, ctx));\n        const anyOfUnion = z.union(options);\n        baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion;\n    }\n    // Handle oneOf - exclusive union (exactly one must match)\n    if (schema.oneOf && Array.isArray(schema.oneOf)) {\n        const options = schema.oneOf.map((s) => convertSchema(s, ctx));\n        const oneOfUnion = z.xor(options);\n        baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion;\n    }\n    // Handle allOf - wrap base schema with intersection\n    if (schema.allOf && Array.isArray(schema.allOf)) {\n        if (schema.allOf.length === 0) {\n            baseSchema = hasExplicitType ? baseSchema : z.any();\n        }\n        else {\n            let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx);\n            const startIdx = hasExplicitType ? 0 : 1;\n            for (let i = startIdx; i < schema.allOf.length; i++) {\n                result = z.intersection(result, convertSchema(schema.allOf[i], ctx));\n            }\n            baseSchema = result;\n        }\n    }\n    // Handle nullable (OpenAPI 3.0)\n    if (schema.nullable === true && ctx.version === \"openapi-3.0\") {\n        baseSchema = z.nullable(baseSchema);\n    }\n    // Handle readOnly\n    if (schema.readOnly === true) {\n        baseSchema = z.readonly(baseSchema);\n    }\n    // Apply `default` so it wraps the fully-composed schema. This ensures\n    // `parse(undefined) -> default` works regardless of which branch of\n    // `convertBaseSchema` produced the inner schema (enum/const/not/typed/etc.).\n    if (schema.default !== undefined) {\n        baseSchema = baseSchema.default(schema.default);\n    }\n    // Collect non-description annotation metadata into the user-supplied\n    // registry. Description is handled separately below via `.describe()` to\n    // preserve the contract that `schema.description` reads from globalRegistry.\n    const extraMeta = {};\n    const coreMetadataKeys = [\"$id\", \"id\", \"$comment\", \"$anchor\", \"$vocabulary\", \"$dynamicRef\", \"$dynamicAnchor\"];\n    for (const key of coreMetadataKeys) {\n        if (key in schema) {\n            extraMeta[key] = schema[key];\n        }\n    }\n    const contentMetadataKeys = [\"contentEncoding\", \"contentMediaType\", \"contentSchema\"];\n    for (const key of contentMetadataKeys) {\n        if (key in schema) {\n            extraMeta[key] = schema[key];\n        }\n    }\n    for (const key of Object.keys(schema)) {\n        if (!RECOGNIZED_KEYS.has(key)) {\n            extraMeta[key] = schema[key];\n        }\n    }\n    if (Object.keys(extraMeta).length > 0) {\n        ctx.registry.add(baseSchema, extraMeta);\n    }\n    // Apply description last. `.describe()` clones the schema and sets\n    // `_zod.parent` on the clone, so registry lookups on the returned reference\n    // still resolve `extraMeta` via parent inheritance.\n    if (schema.description) {\n        baseSchema = baseSchema.describe(schema.description);\n    }\n    return baseSchema;\n}\n/**\n * Converts a JSON Schema to a Zod schema. This function should be considered semi-experimental. It's behavior is liable to change. */\nexport function fromJSONSchema(schema, params) {\n    // Handle boolean schemas\n    if (typeof schema === \"boolean\") {\n        return schema ? z.any() : z.never();\n    }\n    // Normalize input via a JSON round-trip. This guarantees the converter\n    // walks a plain, finite, JSON-valid object graph: cyclic inputs fail here,\n    // getter/Proxy-based properties are materialized into static values, and\n    // class instances collapse to plain objects.\n    let normalized;\n    try {\n        normalized = JSON.parse(JSON.stringify(schema));\n    }\n    catch {\n        throw new Error(\"fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas\");\n    }\n    const version = detectVersion(normalized, params?.defaultTarget);\n    const defs = (normalized.$defs || normalized.definitions || {});\n    const ctx = {\n        version,\n        defs,\n        refs: new Map(),\n        processing: new Set(),\n        rootSchema: normalized,\n        registry: params?.registry ?? globalRegistry,\n    };\n    return convertSchema(normalized, ctx);\n}\n", "import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n    return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n    return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n    return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n    return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n    return core._coercedDate(schemas.ZodDate, params);\n}\n", "import { ms } from \"itty-time\";\nimport { z } from \"zod\";\n\nexport const SENSITIVE_STEP_OUTPUT = \"output\";\n\nexport const MAX_WORKFLOW_NAME_LENGTH = 64;\n\nexport const MAX_WORKFLOW_INSTANCE_ID_LENGTH = 100;\n\nexport const MAX_STEP_NAME_LENGTH = 256;\n\nexport const ALLOWED_STRING_ID_PATTERN = \"^[a-zA-Z0-9_][a-zA-Z0-9-_]*$\";\nconst ALLOWED_WORKFLOW_INSTANCE_ID_REGEX = new RegExp(\n\tALLOWED_STRING_ID_PATTERN\n);\nconst ALLOWED_WORKFLOW_NAME_REGEX = ALLOWED_WORKFLOW_INSTANCE_ID_REGEX;\n\n// eslint-disable-next-line no-control-regex -- intentional use of control character range to detect invalid characters in workflow names\nconst CONTROL_CHAR_REGEX = new RegExp(\"[\\x00-\\x1F]\");\n\nexport function isValidWorkflowName(name: string): boolean {\n\tif (typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tif (name.length > MAX_WORKFLOW_NAME_LENGTH) {\n\t\treturn false;\n\t}\n\n\treturn ALLOWED_WORKFLOW_NAME_REGEX.test(name);\n}\n\nexport function isValidWorkflowInstanceId(id: string): boolean {\n\tif (typeof id !== \"string\") {\n\t\treturn false;\n\t}\n\n\tif (id.length > MAX_WORKFLOW_INSTANCE_ID_LENGTH) {\n\t\treturn false;\n\t}\n\n\treturn ALLOWED_WORKFLOW_INSTANCE_ID_REGEX.test(id);\n}\n\nexport function isValidStepName(name: string): boolean {\n\tif (name.length > MAX_STEP_NAME_LENGTH) {\n\t\treturn false;\n\t}\n\n\treturn !CONTROL_CHAR_REGEX.test(name);\n}\n\nconst STEP_CONFIG_SCHEMA = z\n\t.object({\n\t\tretries: z\n\t\t\t.object({\n\t\t\t\tdelay: z.number().gte(0).or(z.string()).or(z.function()),\n\t\t\t\tlimit: z.number().gte(0),\n\t\t\t\tbackoff: z.enum([\"constant\", \"linear\", \"exponential\"]).optional(),\n\t\t\t})\n\t\t\t.strict()\n\t\t\t.optional(),\n\t\ttimeout: z.number().gte(0).or(z.string()).optional(),\n\t\tsensitive: z.literal(SENSITIVE_STEP_OUTPUT).optional(),\n\t})\n\t.strict();\n\nexport function isValidStepConfig(stepConfig: unknown): boolean {\n\tconst config = STEP_CONFIG_SCHEMA.safeParse(stepConfig);\n\n\tif (!config.success) {\n\t\treturn false;\n\t}\n\n\tif (\n\t\tconfig.data.retries !== undefined &&\n\t\ttypeof config.data.retries.delay !== \"function\" &&\n\t\tNumber.isNaN(ms(config.data.retries.delay))\n\t) {\n\t\treturn false;\n\t}\n\n\tif (config.data.timeout !== undefined) {\n\t\tconst timeout = config.data.timeout;\n\t\tif (timeout == 0 || Number.isNaN(ms(config.data.timeout))) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n", "import { InstanceEvent } from \"../instance\";\nimport { WorkflowFatalError } from \"./errors\";\nimport { isValidStepConfig } from \"./validators\";\nimport type { WorkflowStepContext } from \"../context\";\nimport type { Engine } from \"../engine\";\nimport type { WorkflowStepConfig } from \"cloudflare:workers\";\n\ntype UserErrorField = {\n\tisUserError?: boolean;\n};\n\n// `:` can't appear in user-step cacheKeys (sha1-hex + `-` only).\nexport const ROLLBACK_CACHE_KEY_PREFIX = \"rollback:\";\n\nexport type RollbackContext = {\n\tctx: WorkflowStepContext;\n\terror: Error;\n\toutput: unknown;\n\t/** @deprecated Use `${ctx.step.name}-${ctx.step.count}` instead. */\n\tstepName: string;\n};\n\n// dup() to outlive the originating step.do call; Symbol.dispose locally\n// (calling `.dispose()` would RPC to a non-existent remote method).\nexport type RollbackFn = ((ctx: RollbackContext) => Promise<void>) & {\n\tdup?: () => RollbackFn;\n\t[Symbol.dispose]?: () => void;\n};\n\nexport type WorkflowStepRollbackConfig = Pick<\n\tWorkflowStepConfig,\n\t\"retries\" | \"timeout\"\n>;\n\nexport type WorkflowStepRollbackOptions = {\n\trollback: RollbackFn;\n\trollbackConfig?: WorkflowStepRollbackConfig;\n};\n\nexport type RollbackRegistryEntry = {\n\tfn: RollbackFn;\n\tstepContext: WorkflowStepContext;\n\toutput?: unknown;\n\tconfig?: WorkflowStepConfig;\n};\n\nexport type RollbackRegistration = RollbackRegistryEntry & {\n\tcacheKey: string;\n};\n\nexport function parseRollbackOptions(\n\tstepName: string,\n\toptions: unknown\n): WorkflowStepRollbackOptions | undefined {\n\tif (options === undefined) {\n\t\treturn undefined;\n\t}\n\n\tif (\n\t\ttypeof options !== \"object\" ||\n\t\toptions === null ||\n\t\tArray.isArray(options)\n\t) {\n\t\tconst error = new WorkflowFatalError(\n\t\t\t`Rollback options for \"${stepName}\" must be an object`\n\t\t) as Error & UserErrorField;\n\t\terror.isUserError = true;\n\t\tthrow error;\n\t}\n\n\tconst rollbackOptions = options as Partial<WorkflowStepRollbackOptions>;\n\tif (typeof rollbackOptions.rollback !== \"function\") {\n\t\tconst error = new WorkflowFatalError(\n\t\t\t`Rollback for \"${stepName}\" must be a function`\n\t\t) as Error & UserErrorField;\n\t\terror.isUserError = true;\n\t\tthrow error;\n\t}\n\n\tif (\n\t\trollbackOptions.rollbackConfig !== undefined &&\n\t\t!isValidStepConfig(rollbackOptions.rollbackConfig)\n\t) {\n\t\tconst error = new WorkflowFatalError(\n\t\t\t`Rollback config for \"${stepName}\" is in a invalid format. See https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/`\n\t\t) as Error & UserErrorField;\n\t\terror.isUserError = true;\n\t\tthrow error;\n\t}\n\n\treturn rollbackOptions as WorkflowStepRollbackOptions;\n}\n\nexport function dupRollbackStub(fn: RollbackFn): RollbackFn {\n\treturn fn.dup ? fn.dup() : fn;\n}\n\nexport function disposeRollbackStub(fn: RollbackFn): void {\n\ttry {\n\t\tfn[Symbol.dispose]?.();\n\t} catch (err) {\n\t\tconsole.warn(\"Failed to dispose rollback stub\", err);\n\t}\n}\n\nexport function registerRollbackFn(\n\tregistry: Map<string, RollbackRegistryEntry>,\n\tregistration: RollbackRegistration\n): void {\n\tconst { cacheKey, fn, stepContext, output, config } = registration;\n\tconst existing = registry.get(cacheKey);\n\tif (existing) {\n\t\t// Existing entry already owns the duped rollback stub. Duplicate registrations\n\t\t// refresh context/output only; this helper has not duped the incoming fn.\n\t\tregistry.set(cacheKey, {\n\t\t\t...existing,\n\t\t\tstepContext,\n\t\t\t...(\"output\" in registration && { output }),\n\t\t});\n\t\treturn;\n\t}\n\tregistry.set(cacheKey, {\n\t\tfn: dupRollbackStub(fn),\n\t\tstepContext,\n\t\t...(\"output\" in registration && { output }),\n\t\t...(config !== undefined && { config }),\n\t});\n}\n\nexport function clearRollbackRegistry(\n\tregistry: Map<string, RollbackRegistryEntry>\n): void {\n\tfor (const entry of registry.values()) {\n\t\tdisposeRollbackStub(entry.fn);\n\t}\n\tregistry.clear();\n}\n\n// LIFO; halts on first failure. Goes through Context.do so each rollback\n// inherits retries/timeouts/attempt-logging.\nexport async function executeRollbacks(\n\tengine: Engine,\n\ttriggerError: Error\n): Promise<{ ranAny: boolean; allSucceeded: boolean }> {\n\tconst eligibleSteps = engine.readEligibleRollbackStepsDesc();\n\tif (eligibleSteps.length === 0) {\n\t\tclearRollbackRegistry(engine.rollbackRegistry);\n\t\treturn { ranAny: false, allSucceeded: true };\n\t}\n\n\tengine.writeLog(InstanceEvent.ROLLBACK_START, null, null, {\n\t\ttriggerError: { name: triggerError.name, message: triggerError.message },\n\t\ttotalSteps: eligibleSteps.length,\n\t});\n\n\tlet allSucceeded = true;\n\tlet completed = 0;\n\n\ttry {\n\t\tfor (const step of eligibleSteps) {\n\t\t\tconst entry = engine.rollbackRegistry.get(step.cacheKey);\n\t\t\tif (entry === undefined) {\n\t\t\t\tengine.writeLog(\n\t\t\t\t\tInstanceEvent.ROLLBACK_STEP_FAILURE,\n\t\t\t\t\tstep.cacheKey,\n\t\t\t\t\tstep.target,\n\t\t\t\t\t{\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tname: \"RollbackMissing\",\n\t\t\t\t\t\t\tmessage: \"Rollback function not available in registry\",\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tallSucceeded = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst ctx = engine.createRollbackContext({ cacheKey: step.cacheKey });\n\t\t\ttry {\n\t\t\t\tawait ctx.do(step.target, entry.config ?? {}, async () => {\n\t\t\t\t\tawait entry.fn({\n\t\t\t\t\t\tctx: structuredClone(entry.stepContext),\n\t\t\t\t\t\terror: triggerError,\n\t\t\t\t\t\toutput: entry.output,\n\t\t\t\t\t\tstepName: step.target,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tcompleted++;\n\t\t\t} catch {\n\t\t\t\t// Context.do already wrote ROLLBACK_STEP_FAILURE; halt the chain.\n\t\t\t\tallSucceeded = false;\n\t\t\t\tbreak;\n\t\t\t} finally {\n\t\t\t\tdisposeRollbackStub(entry.fn);\n\t\t\t\tengine.rollbackRegistry.delete(step.cacheKey);\n\t\t\t}\n\t\t}\n\t} finally {\n\t\tclearRollbackRegistry(engine.rollbackRegistry);\n\t}\n\n\tengine.writeLog(\n\t\tallSucceeded\n\t\t\t? InstanceEvent.ROLLBACK_COMPLETE\n\t\t\t: InstanceEvent.ROLLBACK_FAILED,\n\t\tnull,\n\t\tnull,\n\t\t{ totalSteps: eligibleSteps.length, completedSteps: completed }\n\t);\n\treturn { ranAny: completed > 0, allSucceeded };\n}\n", "import {\n\tInvalidStepReadableStreamError,\n\tOversizedStreamChunkError,\n\tStreamOutputStorageLimitError,\n\tUnsupportedStreamChunkError,\n\tWorkflowTimeoutError,\n} from \"./errors\";\n\n// \u2500\u2500 Constants \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const DEFAULT_STREAM_OUTPUT_CHUNK_SIZE = 256 * 1024;\nexport const STREAM_OUTPUT_META_SUFFIX = \"-value-stream-meta\";\nexport const MAX_STREAM_OUTPUT_INPUT_CHUNK_BYTES = 16 * 1024 * 1024;\nexport const STREAMING_STEP_CHUNKS_TABLE = \"streaming_step_chunks\";\nexport const MAX_OUTPUT_SHOWN_IN_LOGS = 1024;\n\nconst DO_STORAGE_LIMIT = 1024 * 1024 * 1024 + 100 * 1024 * 1024;\nconst STREAM_OUTPUT_STORAGE_WRITE_HEADROOM_BYTES = 16 * 1024;\n\n// \u2500\u2500 Types \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport enum StreamOutputState {\n\tPending = \"pending\",\n\tCommitting = \"committing\",\n\tComplete = \"complete\",\n}\n\nexport type StreamOutputMeta = {\n\tversion: 1;\n\tstate: StreamOutputState;\n\tattempt: number;\n\tstartedAt: number;\n\tchunkCount: number;\n\ttotalBytes: number;\n\tcommittedAt: number | null;\n};\n\nexport type StoredStreamOutputPreview =\n\t| { type: \"text\"; output: string }\n\t| { type: \"binary\" };\n\nexport class InvalidStoredStreamOutputError extends Error {\n\tname = \"InvalidStoredStreamOutputError\";\n}\n\n// \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function getStreamOutputMetaKey(cacheKey: string): string {\n\treturn `${cacheKey}${STREAM_OUTPUT_META_SUFFIX}`;\n}\n\nexport function isReadableStreamLike(\n\tvalue: unknown\n): value is ReadableStream<unknown> {\n\treturn value instanceof ReadableStream;\n}\n\nfunction createInvalidStepReadableStreamError(): InvalidStepReadableStreamError {\n\treturn new InvalidStepReadableStreamError(\n\t\t\"Step returned a ReadableStream that is already locked or otherwise unreadable. Return a fresh, unlocked ReadableStream from step.do().\"\n\t);\n}\n\nfunction createOversizedStreamChunkError(): OversizedStreamChunkError {\n\treturn new OversizedStreamChunkError(\n\t\t`Step returned a ReadableStream chunk larger than the maximum allowed size of ${MAX_STREAM_OUTPUT_INPUT_CHUNK_BYTES} bytes. ` +\n\t\t\t\"Return smaller chunks from step.do().\"\n\t);\n}\n\n/**\n * Normalize any incoming chunk to Uint8Array.\n * Accepts ArrayBuffer, TypedArrays (except DataView), and Uint8Array directly.\n * Rejects strings, objects, and other non-binary types.\n */\nfunction normalizeChunkToUint8Array(value: unknown): Uint8Array {\n\tif (value instanceof Uint8Array) {\n\t\treturn value;\n\t}\n\n\tif (value instanceof ArrayBuffer) {\n\t\treturn new Uint8Array(value);\n\t}\n\n\tif (ArrayBuffer.isView(value) && !(value instanceof DataView)) {\n\t\treturn new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n\t}\n\n\tthrow new UnsupportedStreamChunkError(\n\t\t\"Step returned a ReadableStream with unsupported chunk type. \" +\n\t\t\t\"Only ArrayBuffer and TypedArray chunks are supported.\"\n\t);\n}\n\n// \u2500\u2500 Buffer helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction takeBufferedBytes(\n\tbufferedChunks: Uint8Array[],\n\tbyteLength: number\n): Uint8Array {\n\tconst output = new Uint8Array(byteLength);\n\tlet offset = 0;\n\n\twhile (offset < byteLength) {\n\t\tconst chunk = bufferedChunks[0];\n\t\tconst remaining = byteLength - offset;\n\n\t\tif (chunk.byteLength <= remaining) {\n\t\t\toutput.set(chunk, offset);\n\t\t\toffset += chunk.byteLength;\n\t\t\tbufferedChunks.shift();\n\t\t\tcontinue;\n\t\t}\n\n\t\toutput.set(chunk.subarray(0, remaining), offset);\n\t\tbufferedChunks[0] = chunk.subarray(remaining);\n\t\toffset += remaining;\n\t}\n\n\treturn output;\n}\n\n// \u2500\u2500 Stream iteration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nasync function* iterateStreamChunks(\n\tstream: ReadableStream<unknown>,\n\tsignal?: AbortSignal\n): AsyncGenerator<Uint8Array> {\n\tif (stream.locked) {\n\t\tthrow createInvalidStepReadableStreamError();\n\t}\n\n\tif (signal?.aborted) {\n\t\tthrow (\n\t\t\tsignal.reason ??\n\t\t\tnew DOMException(\"The operation was aborted.\", \"AbortError\")\n\t\t);\n\t}\n\n\tlet reader: ReadableStreamDefaultReader<unknown>;\n\ttry {\n\t\treader = stream.getReader();\n\t} catch (error) {\n\t\tif (error instanceof TypeError) {\n\t\t\tthrow createInvalidStepReadableStreamError();\n\t\t}\n\t\tthrow error;\n\t}\n\n\tconst onAbort = () => {\n\t\tvoid reader\n\t\t\t.cancel(\n\t\t\t\tsignal?.reason ??\n\t\t\t\t\tnew DOMException(\"The operation was aborted.\", \"AbortError\")\n\t\t\t)\n\t\t\t.catch(() => {});\n\t};\n\n\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\tlet fullyRead = false;\n\n\ttry {\n\t\twhile (true) {\n\t\t\tlet readResult: ReadableStreamReadResult<unknown>;\n\t\t\ttry {\n\t\t\t\treadResult = await reader.read();\n\t\t\t} catch (readError) {\n\t\t\t\t// When the abort signal has already fired, the read error is an\n\t\t\t\t// expected cancellation (e.g. step timeout or engine shutdown).\n\t\t\t\t// Re-throw the original abort reason so callers can distinguish\n\t\t\t\t// timeouts from genuine stream failures.\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tthrow (\n\t\t\t\t\t\tsignal.reason ??\n\t\t\t\t\t\tnew DOMException(\"The operation was aborted.\", \"AbortError\")\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Any other read failure (broken pipe, upstream connection\n\t\t\t\t// drop, encoding mismatch, etc.) means the ReadableStream the\n\t\t\t\t// step returned is unusable.\n\t\t\t\tthrow new InvalidStepReadableStreamError(\n\t\t\t\t\t\"Failed to read from step ReadableStream output. \" +\n\t\t\t\t\t\t(readError instanceof Error ? readError.message : String(readError))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow (\n\t\t\t\t\tsignal.reason ??\n\t\t\t\t\tnew DOMException(\"The operation was aborted.\", \"AbortError\")\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (readResult.done) {\n\t\t\t\tfullyRead = true;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tyield normalizeChunkToUint8Array(readResult.value);\n\t\t}\n\t} finally {\n\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\tif (!fullyRead) {\n\t\t\tawait reader\n\t\t\t\t.cancel(\n\t\t\t\t\tnew Error(\"stream output consumption stopped before completion\")\n\t\t\t\t)\n\t\t\t\t.catch(() => {});\n\t\t}\n\t\ttry {\n\t\t\treader.releaseLock();\n\t\t} catch {\n\t\t\t// Reader may still be processing cancel()\n\t\t}\n\t}\n}\n\n// \u2500\u2500 SQL helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction deleteAttemptChunks(\n\tstorage: DurableObjectStorage,\n\tcacheKey: string,\n\tattempt: number\n): void {\n\t// eslint-disable-next-line workers-sdk/no-unsafe-command-execution -- DO SQL exec, not child_process\n\tstorage.sql.exec(\n\t\t`DELETE FROM ${STREAMING_STEP_CHUNKS_TABLE} WHERE cache_key = ? AND attempt = ?`,\n\t\tcacheKey,\n\t\tattempt\n\t);\n}\n\nasync function deleteMetaForAttempt(\n\tstorage: DurableObjectStorage,\n\tcacheKey: string,\n\tattempt: number\n): Promise<void> {\n\tconst metaKey = getStreamOutputMetaKey(cacheKey);\n\tconst maybeMeta = await storage.get<StreamOutputMeta>(metaKey);\n\tif (maybeMeta === undefined) {\n\t\treturn;\n\t}\n\tif (maybeMeta.attempt !== attempt) {\n\t\treturn;\n\t}\n\tawait storage.delete(metaKey);\n}\n\n// \u2500\u2500 Integrity validation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ntype StreamOutputChunkSummary = {\n\tchunkCount: number;\n\tminChunkIndex: number | null;\n\tmaxChunkIndex: number | null;\n\ttotalBytes: number;\n};\n\nfunction getStreamOutputChunkSummary(\n\tstorage: DurableObjectStorage,\n\tcacheKey: string,\n\tattempt: number\n): StreamOutputChunkSummary {\n\tconst row = storage.sql\n\t\t.exec<StreamOutputChunkSummary>(\n\t\t\t[\n\t\t\t\t`SELECT`,\n\t\t\t\t`  COUNT(*) AS chunkCount,`,\n\t\t\t\t`  MIN(chunk_index) AS minChunkIndex,`,\n\t\t\t\t`  MAX(chunk_index) AS maxChunkIndex,`,\n\t\t\t\t`  CAST(COALESCE(SUM(LENGTH(chunk)), 0) AS INTEGER) AS totalBytes`,\n\t\t\t\t`FROM ${STREAMING_STEP_CHUNKS_TABLE}`,\n\t\t\t\t`WHERE cache_key = ? AND attempt = ?`,\n\t\t\t].join(\"\\n\"),\n\t\t\tcacheKey,\n\t\t\tattempt\n\t\t)\n\t\t.one();\n\n\tif (row === null) {\n\t\tthrow new Error(\"Expected stream chunk summary query to return a row\");\n\t}\n\treturn row;\n}\n\nexport function getInvalidStoredStreamOutputError(\n\tstorage: DurableObjectStorage,\n\tcacheKey: string,\n\tmeta: StreamOutputMeta\n): InvalidStoredStreamOutputError | undefined {\n\tconst summary = getStreamOutputChunkSummary(storage, cacheKey, meta.attempt);\n\n\tif (meta.chunkCount === 0) {\n\t\tif (\n\t\t\tsummary.chunkCount === 0 &&\n\t\t\tsummary.totalBytes === 0 &&\n\t\t\tsummary.minChunkIndex === null &&\n\t\t\tsummary.maxChunkIndex === null\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\t} else if (\n\t\tsummary.chunkCount === meta.chunkCount &&\n\t\tsummary.minChunkIndex === 0 &&\n\t\tsummary.maxChunkIndex === meta.chunkCount - 1 &&\n\t\tsummary.totalBytes === meta.totalBytes\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn new InvalidStoredStreamOutputError(\n\t\t`Stored streamed step output is corrupt or incomplete for cache key ${cacheKey}. ` +\n\t\t\t`Expected ${meta.chunkCount} chunks / ${meta.totalBytes} bytes, found ` +\n\t\t\t`${summary.chunkCount} chunks / ${summary.totalBytes} bytes with chunk index range ` +\n\t\t\t`${summary.minChunkIndex ?? \"null\"}..${summary.maxChunkIndex ?? \"null\"}.`\n\t);\n}\n\n// \u2500\u2500 Preview \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction readStreamOutputPreviewBytes(options: {\n\tstorage: DurableObjectStorage;\n\tcacheKey: string;\n\tattempt: number;\n\tmaxBytes: number;\n}): Uint8Array {\n\tconst { storage, cacheKey, attempt, maxBytes } = options;\n\t// eslint-disable-next-line workers-sdk/no-unsafe-command-execution -- DO SQL exec, not child_process\n\tconst cursor = storage.sql.exec<{\n\t\tchunk_index: number;\n\t\tchunk: ArrayBuffer;\n\t}>(\n\t\t`SELECT chunk_index, chunk FROM ${STREAMING_STEP_CHUNKS_TABLE} WHERE cache_key = ? AND attempt = ? ORDER BY chunk_index`,\n\t\tcacheKey,\n\t\tattempt\n\t);\n\tconst previewChunks: Uint8Array[] = [];\n\tlet expectedChunkIndex = 0;\n\tlet totalBytes = 0;\n\n\twhile (totalBytes < maxBytes) {\n\t\tconst row = cursor.next();\n\t\tif (row.done) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (row.value.chunk_index !== expectedChunkIndex) {\n\t\t\tthrow new InvalidStoredStreamOutputError(\n\t\t\t\t`Missing chunk ${expectedChunkIndex} for streamed step output`\n\t\t\t);\n\t\t}\n\n\t\tif (!(row.value.chunk instanceof ArrayBuffer)) {\n\t\t\tthrow new InvalidStoredStreamOutputError(\n\t\t\t\t\"Invalid chunk type returned from streaming_step_chunks table\"\n\t\t\t);\n\t\t}\n\n\t\tconst chunkBytes = new Uint8Array(row.value.chunk);\n\t\tconst remainingBytes = maxBytes - totalBytes;\n\t\tconst previewChunk =\n\t\t\tchunkBytes.byteLength > remainingBytes\n\t\t\t\t? chunkBytes.subarray(0, remainingBytes)\n\t\t\t\t: chunkBytes;\n\n\t\tpreviewChunks.push(previewChunk);\n\t\ttotalBytes += previewChunk.byteLength;\n\t\texpectedChunkIndex++;\n\t}\n\n\treturn takeBufferedBytes(previewChunks, totalBytes);\n}\n\nexport function getStoredStreamOutputPreview(options: {\n\tstorage: DurableObjectStorage;\n\tcacheKey: string;\n\tmeta: StreamOutputMeta;\n\tmaxChars: number;\n}): StoredStreamOutputPreview {\n\tconst { storage, cacheKey, meta, maxChars } = options;\n\tif (meta.state !== StreamOutputState.Complete) {\n\t\tthrow new Error(\n\t\t\t\"Cannot preview streamed step output before it is complete\"\n\t\t);\n\t}\n\n\t// UTF-8 uses at most 4 bytes per code point\n\tconst maxPreviewBytes = maxChars * 4;\n\tconst previewBytes = readStreamOutputPreviewBytes({\n\t\tstorage,\n\t\tcacheKey,\n\t\tattempt: meta.attempt,\n\t\tmaxBytes: maxPreviewBytes,\n\t});\n\tconst previewTruncatedByBytes = meta.totalBytes > previewBytes.byteLength;\n\n\ttry {\n\t\tconst decoded = new TextDecoder(\"utf-8\", {\n\t\t\tfatal: true,\n\t\t\tignoreBOM: false,\n\t\t}).decode(previewBytes, { stream: previewTruncatedByBytes });\n\n\t\tconst previewOutput = decoded.substring(0, maxChars);\n\t\tif (decoded.length > maxChars || previewTruncatedByBytes) {\n\t\t\treturn { type: \"text\", output: previewOutput + \"[truncated output]\" };\n\t\t}\n\t\treturn { type: \"text\", output: previewOutput };\n\t} catch {\n\t\treturn { type: \"binary\" };\n\t}\n}\n\n// \u2500\u2500 Cleanup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport async function cleanupPendingStreamOutput(\n\tstorage: DurableObjectStorage,\n\tcacheKey: string\n): Promise<void> {\n\tconst metaKey = getStreamOutputMetaKey(cacheKey);\n\tconst maybeMeta = await storage.get<StreamOutputMeta>(metaKey);\n\n\tif (maybeMeta === undefined) {\n\t\treturn;\n\t}\n\n\tif (maybeMeta.state === StreamOutputState.Complete) {\n\t\treturn;\n\t}\n\n\tawait rollbackStreamOutput(storage, cacheKey, maybeMeta.attempt);\n}\n\nexport async function rollbackStreamOutput(\n\tstorage: DurableObjectStorage,\n\tcacheKey: string,\n\tattempt: number\n): Promise<void> {\n\tdeleteAttemptChunks(storage, cacheKey, attempt);\n\tawait deleteMetaForAttempt(storage, cacheKey, attempt);\n}\n\n// \u2500\u2500 Write \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nasync function doWriteStreamOutput(options: {\n\tstorage: DurableObjectStorage;\n\tcacheKey: string;\n\tattempt: number;\n\tstream: ReadableStream<unknown>;\n\tchunkSizeBytes?: number;\n\tsignal?: AbortSignal;\n\tskipMetaWrite?: boolean;\n}): Promise<StreamOutputMeta> {\n\tconst { storage, cacheKey, attempt, stream, signal, skipMetaWrite } = options;\n\tconst chunkSizeBytes =\n\t\toptions.chunkSizeBytes ?? DEFAULT_STREAM_OUTPUT_CHUNK_SIZE;\n\tconst metaKey = getStreamOutputMetaKey(cacheKey);\n\n\tconst maybeInvalidState = (additionalBytes = 0): unknown => {\n\t\tif (signal?.aborted) {\n\t\t\treturn (\n\t\t\t\tsignal.reason ??\n\t\t\t\tnew DOMException(\"The operation was aborted.\", \"AbortError\")\n\t\t\t);\n\t\t}\n\n\t\tconst currentStorageBytes = storage.sql.databaseSize;\n\t\tif (\n\t\t\tcurrentStorageBytes +\n\t\t\t\tadditionalBytes +\n\t\t\t\tSTREAM_OUTPUT_STORAGE_WRITE_HEADROOM_BYTES >\n\t\t\tDO_STORAGE_LIMIT\n\t\t) {\n\t\t\treturn new StreamOutputStorageLimitError(\n\t\t\t\t\"The instance has exceeded the 1GiB storage limit\"\n\t\t\t);\n\t\t}\n\t};\n\n\tconst initialInvalidState = maybeInvalidState();\n\tif (initialInvalidState !== undefined) {\n\t\tthrow initialInvalidState;\n\t}\n\n\tconst startedAt = Date.now();\n\tif (!skipMetaWrite) {\n\t\tawait storage.put(metaKey, {\n\t\t\tversion: 1,\n\t\t\tstate: StreamOutputState.Pending,\n\t\t\tattempt,\n\t\t\tstartedAt,\n\t\t\tchunkCount: 0,\n\t\t\ttotalBytes: 0,\n\t\t\tcommittedAt: null,\n\t\t} satisfies StreamOutputMeta);\n\t}\n\n\tlet chunkCount = 0;\n\tlet totalBytes = 0;\n\tconst bufferedChunks: Uint8Array[] = [];\n\tlet bufferedBytes = 0;\n\tlet outputCommitted = false;\n\n\tconst flushChunk = async (bytes: Uint8Array) => {\n\t\tconst invalidState = maybeInvalidState(bytes.byteLength);\n\t\tif (invalidState !== undefined) {\n\t\t\tthrow invalidState;\n\t\t}\n\t\t// eslint-disable-next-line workers-sdk/no-unsafe-command-execution -- DO SQL exec, not child_process\n\t\tstorage.sql.exec(\n\t\t\t`INSERT INTO ${STREAMING_STEP_CHUNKS_TABLE} (cache_key, attempt, chunk_index, chunk) VALUES (?, ?, ?, ?)`,\n\t\t\tcacheKey,\n\t\t\tattempt,\n\t\t\tchunkCount,\n\t\t\tbytes\n\t\t);\n\t\ttotalBytes += bytes.byteLength;\n\t\tchunkCount++;\n\t};\n\n\ttry {\n\t\tfor await (const bytes of iterateStreamChunks(stream, signal)) {\n\t\t\tif (bytes.byteLength === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (bytes.byteLength > MAX_STREAM_OUTPUT_INPUT_CHUNK_BYTES) {\n\t\t\t\tthrow createOversizedStreamChunkError();\n\t\t\t}\n\n\t\t\tbufferedChunks.push(bytes);\n\t\t\tbufferedBytes += bytes.byteLength;\n\n\t\t\t// NOTE: we want chunks with fixed length,\n\t\t\t// that's why we buffer them in-memory here\n\t\t\twhile (bufferedBytes >= chunkSizeBytes) {\n\t\t\t\tconst chunk = takeBufferedBytes(bufferedChunks, chunkSizeBytes);\n\t\t\t\tbufferedBytes -= chunk.byteLength;\n\t\t\t\tawait flushChunk(chunk);\n\t\t\t}\n\t\t}\n\n\t\t// Last chunk (remainder)\n\t\tif (bufferedBytes > 0) {\n\t\t\tawait flushChunk(takeBufferedBytes(bufferedChunks, bufferedBytes));\n\t\t\tbufferedBytes = 0;\n\t\t}\n\n\t\tconst meta = {\n\t\t\tversion: 1,\n\t\t\tstate: StreamOutputState.Complete,\n\t\t\tattempt,\n\t\t\tstartedAt,\n\t\t\tchunkCount,\n\t\t\ttotalBytes,\n\t\t\tcommittedAt: Date.now(),\n\t\t} satisfies StreamOutputMeta;\n\n\t\tconst invalidState = maybeInvalidState();\n\t\tif (invalidState !== undefined) {\n\t\t\tthrow invalidState;\n\t\t}\n\n\t\tif (!skipMetaWrite) {\n\t\t\t// Transition to Committing to signal it's safe to await.\n\t\t\t// Mock stream setup still needs the SQL chunks and returned meta, but\n\t\t\t// must not publish the normal stream cache key because Context.do()\n\t\t\t// treats it as a completed prior run and skips step execution logging.\n\t\t\tawait storage.put(metaKey, {\n\t\t\t\tversion: 1,\n\t\t\t\tstate: StreamOutputState.Committing,\n\t\t\t\tattempt,\n\t\t\t\tstartedAt,\n\t\t\t\tchunkCount,\n\t\t\t\ttotalBytes,\n\t\t\t\tcommittedAt: null,\n\t\t\t} satisfies StreamOutputMeta);\n\n\t\t\tawait storage.put(metaKey, meta);\n\t\t}\n\t\toutputCommitted = true;\n\t\treturn meta;\n\t} catch (error) {\n\t\tif (!outputCommitted) {\n\t\t\tawait rollbackStreamOutput(storage, cacheKey, attempt);\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nexport async function writeStreamOutput(options: {\n\tstorage: DurableObjectStorage;\n\tcacheKey: string;\n\tattempt: number;\n\tstream: ReadableStream<unknown>;\n\tchunkSizeBytes?: number;\n\tsignal?: AbortSignal;\n\ttimeoutTask?: Promise<never>;\n\tskipMetaWrite?: boolean;\n}): Promise<StreamOutputMeta> {\n\tconst { storage, cacheKey, attempt, timeoutTask, ...writeOptions } = options;\n\tconst writeTask = doWriteStreamOutput({\n\t\tstorage,\n\t\tcacheKey,\n\t\tattempt,\n\t\t...writeOptions,\n\t});\n\n\tif (timeoutTask === undefined) {\n\t\treturn writeTask;\n\t}\n\n\ttry {\n\t\treturn await Promise.race([writeTask, timeoutTask]);\n\t} catch (error) {\n\t\tif (error instanceof WorkflowTimeoutError) {\n\t\t\tif (options.skipMetaWrite) {\n\t\t\t\tvoid writeTask.catch(() => {});\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tconst maybeMeta = await storage.get<StreamOutputMeta>(\n\t\t\t\tgetStreamOutputMetaKey(cacheKey)\n\t\t\t);\n\t\t\tif (\n\t\t\t\tmaybeMeta?.attempt === attempt &&\n\t\t\t\t(maybeMeta.state === StreamOutputState.Committing ||\n\t\t\t\t\tmaybeMeta.state === StreamOutputState.Complete)\n\t\t\t) {\n\t\t\t\t// Safe to await -- not in the middle of writing chunks\n\t\t\t\treturn await writeTask;\n\t\t\t}\n\n\t\t\tvoid writeTask.catch(() => {});\n\t\t\tthrow error;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\n// \u2500\u2500 Replay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function createReplayReadableStream(options: {\n\tstorage: DurableObjectStorage;\n\tcacheKey: string;\n\tmeta: StreamOutputMeta;\n}): ReadableStream<Uint8Array> {\n\tconst { storage, cacheKey, meta } = options;\n\tif (meta.state !== StreamOutputState.Complete) {\n\t\tthrow new Error(\"Cannot replay streamed step output before it is complete\");\n\t}\n\n\t// eslint-disable-next-line workers-sdk/no-unsafe-command-execution -- DO SQL exec, not child_process\n\tconst chunkCursor = storage.sql.exec<{\n\t\tchunk_index: number;\n\t\tchunk: ArrayBuffer;\n\t}>(\n\t\t`SELECT chunk_index, chunk FROM ${STREAMING_STEP_CHUNKS_TABLE} WHERE cache_key = ? AND attempt = ? ORDER BY chunk_index`,\n\t\tcacheKey,\n\t\tmeta.attempt\n\t);\n\tlet index = 0;\n\n\treturn new ReadableStream<Uint8Array>({\n\t\tpull(controller) {\n\t\t\tif (index >= meta.chunkCount) {\n\t\t\t\tcontroller.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst row = chunkCursor.next();\n\t\t\tif (row.done) {\n\t\t\t\tcontroller.error(\n\t\t\t\t\tnew Error(`Missing chunk ${index} for streamed step output`)\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (row.value.chunk_index !== index) {\n\t\t\t\tcontroller.error(\n\t\t\t\t\tnew Error(`Missing chunk ${index} for streamed step output`)\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!(row.value.chunk instanceof ArrayBuffer)) {\n\t\t\t\tcontroller.error(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\"Invalid chunk type returned from streaming_step_chunks table\"\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcontroller.enqueue(new Uint8Array(row.value.chunk));\n\t\t\tindex++;\n\t\t},\n\t});\n}\n", "import { RpcTarget } from \"cloudflare:workers\";\nimport { computeHash } from \"./lib/cache\";\nimport { isReadableStreamLike, writeStreamOutput } from \"./lib/streams\";\nimport type { Event } from \"./context\";\nimport type { Engine } from \"./engine\";\n\nexport type StepSelector = {\n\tname: string;\n\tindex?: number;\n};\n\ntype UserEvent = {\n\ttype: string;\n\tpayload: unknown;\n};\n\n// KV key prefixes/values used by the modifier/mock system\nexport const MODIFIER_KEYS = {\n\tREPLACE_RESULT: \"replace-result-\",\n\tMOCK_STEP_ERROR: \"mock-step-error-\",\n\tMOCK_EVENT: \"mock-event-\",\n\tFORCE_STEP_TIMEOUT: \"force-step-timeout-\",\n\tFORCE_EVENT_TIMEOUT: \"force-event-timeout-\",\n\tFAILURE_INDEX: \"failure-index-\",\n\tDISABLE_SLEEP: \"disable-sleep-\",\n\tDISABLE_ALL_SLEEPS: \"disableAllSleeps\",\n\tDISABLE_RETRY_DELAY: \"disable-retry-delay-\",\n\tDISABLE_ALL_RETRY_DELAYS: \"disableAllRetryDelays\",\n} as const;\n\nexport function isModifierKey(key: string): boolean {\n\treturn Object.values(MODIFIER_KEYS).some((v) => key.startsWith(v));\n}\n\nexport class WorkflowInstanceModifier extends RpcTarget {\n\t#engine: Engine;\n\t#state: DurableObjectState;\n\n\tconstructor(engine: Engine, state: DurableObjectState) {\n\t\tsuper();\n\t\tthis.#engine = engine;\n\t\tthis.#state = state;\n\t}\n\n\tasync #getWaitForEventCacheKey(step: StepSelector): Promise<string> {\n\t\tlet count = 1;\n\t\tif (step.index) {\n\t\t\tcount = step.index;\n\t\t}\n\t\tconst name = `${step.name}-${count}`;\n\t\tconst hash = await computeHash(name);\n\t\tconst cacheKey = `${hash}-${count}`;\n\t\tconst waitForEventKey = `${cacheKey}-value`;\n\n\t\treturn waitForEventKey;\n\t}\n\n\tasync #getBaseCacheKey(step: StepSelector): Promise<string> {\n\t\tconst hash = await computeHash(step.name);\n\t\tlet count = 1;\n\t\tif (step.index) {\n\t\t\tcount = step.index;\n\t\t}\n\t\treturn `${hash}-${count}`;\n\t}\n\n\tasync #getStepCacheKey(step: StepSelector): Promise<string> {\n\t\tconst baseCacheKey = await this.#getBaseCacheKey(step);\n\t\treturn `${baseCacheKey}-value`;\n\t}\n\n\t#getAndIncrementCounter = async (valueKey: string, by: number) => {\n\t\tconst counterKey = `${MODIFIER_KEYS.FAILURE_INDEX}${valueKey}`;\n\t\tconst next = (await this.#state.storage.get<number>(counterKey)) ?? 1;\n\t\tawait this.#state.storage.put(counterKey, next + by);\n\t\treturn next;\n\t};\n\n\tasync #getSleepStepDisableKey(step: StepSelector): Promise<string> {\n\t\tlet count = 1;\n\t\tif (step.index) {\n\t\t\tcount = step.index;\n\t\t}\n\t\tconst sleepNameCountHash = await computeHash(step.name + count);\n\n\t\treturn `${MODIFIER_KEYS.DISABLE_SLEEP}${sleepNameCountHash}`;\n\t}\n\n\tasync disableSleeps(steps?: StepSelector[]): Promise<void> {\n\t\tif (!steps) {\n\t\t\tawait this.#state.storage.put(MODIFIER_KEYS.DISABLE_ALL_SLEEPS, true);\n\t\t} else {\n\t\t\tfor (const step of steps) {\n\t\t\t\tconst sleepDisableKey = await this.#getSleepStepDisableKey(step);\n\t\t\t\tawait this.#state.storage.put(sleepDisableKey, true);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync disableRetryDelays(steps?: StepSelector[]): Promise<void> {\n\t\tif (!steps) {\n\t\t\tawait this.#state.storage.put(\n\t\t\t\tMODIFIER_KEYS.DISABLE_ALL_RETRY_DELAYS,\n\t\t\t\ttrue\n\t\t\t);\n\t\t} else {\n\t\t\tfor (const step of steps) {\n\t\t\t\tconst valueKey = await this.#getStepCacheKey(step);\n\t\t\t\tawait this.#state.storage.put(\n\t\t\t\t\t`${MODIFIER_KEYS.DISABLE_RETRY_DELAY}${valueKey}`,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// step.do() flow: It first checks if a result or error is already in the cache and, if so, returns it immediately.\n\t// If nothing is in the cache, it checks for remaining attempts and runs the user's code against the defined timeout.\n\t// Since `step.do()` performs this initial cache check, directly changing the `valueKey` would cause it to\n\t// assume the value was pre-cached, preventing it from writing any logs about the step's execution state.\n\t// Storing the value under a separate key is crucial because it ensures all execution logs for the step are\n\t// generated, rather than the step being skipped due to a premature cache hit.\n\tasync mockStepResult(step: StepSelector, stepResult: unknown): Promise<void> {\n\t\tconst valueKey = await this.#getStepCacheKey(step);\n\n\t\tif (\n\t\t\tawait this.#state.storage.get(\n\t\t\t\t`${MODIFIER_KEYS.REPLACE_RESULT}${valueKey}`\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`[WorkflowIntrospector] Trying to mock step '${step.name}' multiple times!`\n\t\t\t);\n\t\t}\n\n\t\tif (isReadableStreamLike(stepResult)) {\n\t\t\t// ReadableStream is not structured-cloneable, so we consume it eagerly\n\t\t\t// and store the chunks via the streaming infrastructure. We use attempt 0\n\t\t\t// to distinguish mock chunks from real execution attempts (which start at 1).\n\t\t\tconst baseCacheKey = await this.#getBaseCacheKey(step);\n\t\t\tconst streamMeta = await writeStreamOutput({\n\t\t\t\tstorage: this.#state.storage,\n\t\t\t\tcacheKey: baseCacheKey,\n\t\t\t\tattempt: 0,\n\t\t\t\tstream: stepResult,\n\t\t\t\tskipMetaWrite: true,\n\t\t\t});\n\n\t\t\tawait this.#state.storage.put(\n\t\t\t\t`${MODIFIER_KEYS.REPLACE_RESULT}${valueKey}`,\n\t\t\t\t{\n\t\t\t\t\t__mockStreamOutput: true,\n\t\t\t\t\tcacheKey: baseCacheKey,\n\t\t\t\t\tmeta: streamMeta,\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tawait this.#state.storage.put(\n\t\t\t\t`${MODIFIER_KEYS.REPLACE_RESULT}${valueKey}`,\n\t\t\t\tstepResult\n\t\t\t);\n\t\t}\n\t}\n\n\t// Same logic of `mockStepResult` but stores an error instead of a value.\n\tasync mockStepError(\n\t\tstep: StepSelector,\n\t\terror: Error,\n\t\ttimes?: number\n\t): Promise<void> {\n\t\tconst valueKey = await this.#getStepCacheKey(step);\n\t\tconst serializableError = {\n\t\t\tname: error.name,\n\t\t\tmessage: error.message,\n\t\t};\n\n\t\tif (\n\t\t\tawait this.#state.storage.get(\n\t\t\t\t`${MODIFIER_KEYS.REPLACE_RESULT}${valueKey}`\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`[WorkflowIntrospector] Trying to mock error on step '${step.name}' after mocking its result!`\n\t\t\t);\n\t\t}\n\n\t\tif (times) {\n\t\t\tconst start = await this.#getAndIncrementCounter(valueKey, times);\n\t\t\tconst mockErrorsPuts = Array.from({ length: times }, (_, i) => {\n\t\t\t\tconst attempt = start + i;\n\t\t\t\tconst mockErrorKey = `${MODIFIER_KEYS.MOCK_STEP_ERROR}${valueKey}-${attempt}`;\n\t\t\t\treturn this.#state.storage.put(mockErrorKey, serializableError);\n\t\t\t});\n\n\t\t\tawait Promise.all(mockErrorsPuts);\n\t\t} else {\n\t\t\tconst mockErrorKey = `${MODIFIER_KEYS.MOCK_STEP_ERROR}${valueKey}`;\n\t\t\tawait this.#state.storage.put(mockErrorKey, serializableError);\n\t\t}\n\t}\n\n\tasync forceStepTimeout(step: StepSelector, times?: number) {\n\t\tconst valueKey = await this.#getStepCacheKey(step);\n\n\t\tif (\n\t\t\tawait this.#state.storage.get(\n\t\t\t\t`${MODIFIER_KEYS.REPLACE_RESULT}${valueKey}`\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`[WorkflowIntrospector] Trying to force timeout on step '${step.name}' after mocking its result!`\n\t\t\t);\n\t\t}\n\n\t\tif (times) {\n\t\t\tconst start = await this.#getAndIncrementCounter(valueKey, times);\n\t\t\tconst forceTimeouts = Array.from({ length: times }, (_, i) => {\n\t\t\t\tconst attempt = start + i;\n\t\t\t\tconst forceStepTimeoutKey = `${MODIFIER_KEYS.FORCE_STEP_TIMEOUT}${valueKey}-${attempt}`;\n\t\t\t\treturn this.#state.storage.put(forceStepTimeoutKey, true);\n\t\t\t});\n\n\t\t\tawait Promise.all(forceTimeouts);\n\t\t} else {\n\t\t\tconst forceStepTimeoutKey = `${MODIFIER_KEYS.FORCE_STEP_TIMEOUT}${valueKey}`;\n\t\t\tawait this.#state.storage.put(forceStepTimeoutKey, true);\n\t\t}\n\t}\n\n\tasync mockEvent(event: UserEvent): Promise<void> {\n\t\tconst myEvent: Event = {\n\t\t\ttimestamp: new Date(),\n\t\t\tpayload: event.payload,\n\t\t\ttype: event.type,\n\t\t};\n\n\t\tawait this.#state.storage.put(\n\t\t\t`${MODIFIER_KEYS.MOCK_EVENT}${event.type}`,\n\t\t\ttrue\n\t\t);\n\t\tawait this.#engine.receiveEvent(myEvent);\n\t}\n\n\tasync forceEventTimeout(step: StepSelector): Promise<void> {\n\t\tconst waitForEventKey = await this.#getWaitForEventCacheKey(step);\n\t\tawait this.#state.storage.put(\n\t\t\t`${MODIFIER_KEYS.FORCE_EVENT_TIMEOUT}${waitForEventKey}`,\n\t\t\ttrue\n\t\t);\n\t}\n}\n", "import { ms } from \"itty-time\";\nimport type { Engine } from \"../engine\";\nimport type { WorkflowSleepDuration } from \"cloudflare:workers\";\n\nexport const ENGINE_TIMEOUT = ms(\"5 minutes\" satisfies WorkflowSleepDuration);\n\nlet latestGracePeriodTimestamp: number | undefined = undefined;\n\nexport type WaitingPromiseType = \"pause\";\n\nexport type GracePeriodCallback = (engine: Engine, timeoutMs: number) => void;\n\nexport class GracePeriodSemaphore {\n\t#counter: number = 0;\n\treadonly callback: GracePeriodCallback;\n\treadonly timeoutMs: number;\n\t#waitingPromises: {\n\t\trejectCallback: () => void;\n\t\tresolveCallback: (value: unknown) => void;\n\t\ttype: WaitingPromiseType;\n\t}[] = [];\n\t#canInitiateSteps = true;\n\t#waitingSteps: {\n\t\trejectCallback: () => void;\n\t\tresolveCallback: (value: unknown) => void;\n\t}[] = [];\n\n\tconstructor(callback: GracePeriodCallback, timeoutMs: number) {\n\t\tthis.callback = callback;\n\t\tthis.timeoutMs = timeoutMs;\n\t}\n\n\t// acquire takes engine to be the same as release\n\tasync acquire(_engine: Engine) {\n\t\tif (!this.#canInitiateSteps) {\n\t\t\tawait new Promise((resolve, reject) => {\n\t\t\t\tthis.#waitingSteps.push({\n\t\t\t\t\tresolveCallback: resolve,\n\t\t\t\t\trejectCallback: reject,\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// when the counter goes from 0 to 1 - we can safely reject the previous grace period\n\t\tif (this.#counter == 0) {\n\t\t\tlatestGracePeriodTimestamp = undefined;\n\t\t}\n\t\tthis.#counter += 1;\n\t}\n\n\tasync release(engine: Engine) {\n\t\tthis.#counter = Math.max(this.#counter - 1, 0);\n\t\tif (this.#counter == 0) {\n\t\t\t// Trigger timeout promise, no need to await here,\n\t\t\t// this can be triggered slightly after it's not time sensitive\n\t\t\tthis.callback(engine, this.timeoutMs);\n\t\t\t// Resolve any promises waiting for all steps to finish (e.g. pause)\n\t\t\tfor (const promise of this.#waitingPromises) {\n\t\t\t\tpromise.resolveCallback(undefined);\n\t\t\t}\n\t\t\tthis.#waitingPromises = [];\n\t\t}\n\t}\n\n\tasync waitUntilNothingIsRunning(\n\t\ttype: WaitingPromiseType,\n\t\tcallback: () => Promise<void>\n\t): Promise<void> {\n\t\tthis.#canInitiateSteps = false;\n\t\tif (this.#counter > 0) {\n\t\t\ttry {\n\t\t\t\tawait new Promise((resolve, reject) => {\n\t\t\t\t\tthis.#waitingPromises.push({\n\t\t\t\t\t\tresolveCallback: resolve,\n\t\t\t\t\t\trejectCallback: reject,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\t// If the promise gets rejected (e.g. resume cancels the pause),\n\t\t\t\t// allow steps to run again and unblock any that were waiting\n\t\t\t\tfor (const promise of this.#waitingSteps) {\n\t\t\t\t\tpromise.resolveCallback(undefined);\n\t\t\t\t}\n\t\t\t\tthis.#waitingSteps = [];\n\t\t\t\tthis.#canInitiateSteps = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tawait callback();\n\t\t// Allow steps to run again and unblock any that were waiting\n\t\tfor (const promise of this.#waitingSteps) {\n\t\t\tpromise.resolveCallback(undefined);\n\t\t}\n\t\tthis.#waitingSteps = [];\n\t\tthis.#canInitiateSteps = true;\n\t}\n\n\tcancelWaitingPromisesByType(type: WaitingPromiseType) {\n\t\tconst sameTypePromises = this.#waitingPromises.filter(\n\t\t\t(val) => val.type === type\n\t\t);\n\t\tif (sameTypePromises.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const promise of sameTypePromises) {\n\t\t\tpromise.rejectCallback();\n\t\t}\n\n\t\tthis.#waitingPromises = this.#waitingPromises.filter(\n\t\t\t(val) => val.type !== type\n\t\t);\n\n\t\tthis.#canInitiateSteps = true;\n\n\t\t// Unblock any steps that were waiting to acquire while the pause was pending\n\t\tfor (const promise of this.#waitingSteps) {\n\t\t\tpromise.resolveCallback(undefined);\n\t\t}\n\t\tthis.#waitingSteps = [];\n\t}\n\n\tdispose() {\n\t\t// Reject all waiting step promises so they stop blocking\n\t\tfor (const promise of this.#waitingSteps) {\n\t\t\tpromise.rejectCallback();\n\t\t}\n\t\tthis.#waitingSteps = [];\n\n\t\t// Reject all waiting promises\n\t\tfor (const promise of this.#waitingPromises) {\n\t\t\tpromise.rejectCallback();\n\t\t}\n\t\tthis.#waitingPromises = [];\n\n\t\tthis.#canInitiateSteps = false;\n\t}\n\n\tisRunningStep() {\n\t\treturn this.#counter > 0;\n\t}\n}\n\nexport const startGracePeriod: GracePeriodCallback = async (\n\tengine: Engine,\n\ttimeoutMs: number\n) => {\n\tconst gracePeriodHandler = async () => {\n\t\tconst thisTimestamp = new Date().valueOf();\n\n\t\t// TODO: Should the grace period be 5 mins every time or 5 mins across lifetimes?\n\t\t// At the moment, it looks like this will reset to 5 mins if a metal crashes\n\t\t// There might possibly waste memory waiting for `timeoutMs` every time\n\t\t// We should eventually strongly persist and respect this value across lifetimes\n\n\t\t// We are starting a new grace period\n\t\t// 1. There should not be one already set\n\t\t// 2. Or if there is, it should be in the past\n\t\tif (\n\t\t\t!(\n\t\t\t\tlatestGracePeriodTimestamp === undefined ||\n\t\t\t\tlatestGracePeriodTimestamp < thisTimestamp\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Can't start grace period since there is already an active one started on \" +\n\t\t\t\t\tlatestGracePeriodTimestamp\n\t\t\t);\n\t\t}\n\n\t\tlatestGracePeriodTimestamp = thisTimestamp;\n\t\tawait scheduler.wait(timeoutMs);\n\t\tif (\n\t\t\tthisTimestamp !== latestGracePeriodTimestamp ||\n\t\t\tengine.timeoutHandler.isRunningStep()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\t// priorityQueue is set before the user code runs which implies that a grace period cannot start\n\t\t// before init finishes where it is set\n\n\t\t// Ensure next alarm is set before we abort\n\t\tawait engine.priorityQueue?.handleNextAlarm();\n\t\t// await engine.abort(ABORT_REASONS.GRACE_PERIOD_COMPLETE);\n\t};\n\tvoid gracePeriodHandler().catch(() => {\n\t\t// Swallow \u2014 the engine is shutting down (abort kills the context,\n\t\t// which rejects the scheduler.wait inside gracePeriodHandler)\n\t});\n};\n", "import { InstanceEvent } from \"../instance\";\nimport { MODIFIER_KEYS } from \"../modifier\";\nimport type { RestartFromStep } from \"../binding\";\nimport type { RawInstanceLog } from \"../instance\";\n\nconst EVENT_MAP_PREFIX = \"EVENT_MAP\";\nconst RESTART_FROM_STEP_KEY = \"RESTART_FROM_STEP\";\n\nconst KV_STEP_SUFFIXES = [\n\t\"-value\",\n\t\"-error\",\n\t\"-config\",\n\t\"-metadata\",\n\t\"-log-written\",\n\t\"-pending\",\n\t\"-value-stream-meta\",\n] as const;\n\nexport function resolveGroupKeysToWipe(\n\tsql: DurableObjectStorage[\"sql\"],\n\tparam: RestartFromStep\n): Set<string> | null {\n\tconst stepTypeToEvent: Record<string, InstanceEvent> = {\n\t\tdo: InstanceEvent.STEP_START,\n\t\tsleep: InstanceEvent.SLEEP_START,\n\t\twaitForEvent: InstanceEvent.WAIT_START,\n\t};\n\tconst targetEvent = stepTypeToEvent[param.type ?? \"do\"];\n\tconst targetCount = param.count ?? 1;\n\n\tconst cursor = sql.exec<RawInstanceLog>(\n\t\t\"SELECT event, target, groupKey FROM states WHERE event IN (?, ?, ?) ORDER BY id\",\n\t\tInstanceEvent.STEP_START,\n\t\tInstanceEvent.SLEEP_START,\n\t\tInstanceEvent.WAIT_START\n\t);\n\n\tlet nameOccurrence = 0;\n\tlet found = false;\n\tconst groupKeys = new Set<string>();\n\n\tfor (const row of cursor) {\n\t\tif (row.groupKey === null) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst groupKey = String(row.groupKey);\n\n\t\tif (found) {\n\t\t\tgroupKeys.add(groupKey);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (row.target === null) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst rawStepName = String(row.target).replace(/-\\d+$/, \"\");\n\t\tif (rawStepName !== param.name) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (row.event !== targetEvent) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tnameOccurrence++;\n\t\tif (nameOccurrence === targetCount) {\n\t\t\tfound = true;\n\t\t\tgroupKeys.add(groupKey);\n\t\t}\n\t}\n\n\treturn found ? groupKeys : null;\n}\n\nfunction getMockedEventMapKeys(allKeys: Map<string, unknown>): Set<string> {\n\tconst mockEventTypes = new Set<string>();\n\tfor (const key of allKeys.keys()) {\n\t\tif (key.startsWith(MODIFIER_KEYS.MOCK_EVENT)) {\n\t\t\tmockEventTypes.add(key.slice(MODIFIER_KEYS.MOCK_EVENT.length));\n\t\t}\n\t}\n\n\tif (mockEventTypes.size === 0) {\n\t\treturn new Set();\n\t}\n\n\tconst preserved = new Set<string>();\n\tfor (const key of allKeys.keys()) {\n\t\tif (key.startsWith(`${EVENT_MAP_PREFIX}\\n`)) {\n\t\t\tconst eventType = key.split(\"\\n\")[1];\n\t\t\tif (eventType !== undefined && mockEventTypes.has(eventType)) {\n\t\t\t\tpreserved.add(key);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn preserved;\n}\n\nasync function deleteGroupKeyBatch(\n\tstorage: DurableObjectStorage,\n\tbatch: string[]\n): Promise<void> {\n\tconst kvKeys: string[] = [];\n\tfor (const groupKey of batch) {\n\t\tfor (const suffix of KV_STEP_SUFFIXES) {\n\t\t\tkvKeys.push(`${groupKey}${suffix}`);\n\t\t}\n\t\tstorage.sql.exec(\"DELETE FROM states WHERE groupKey = ?\", groupKey);\n\t\tstorage.sql.exec(\n\t\t\t\"DELETE FROM streaming_step_chunks WHERE attempt != 0 AND cache_key = ?\",\n\t\t\tgroupKey\n\t\t);\n\t}\n\tawait storage.delete(kvKeys);\n}\n\nexport async function wipeRestartState(\n\tstorage: DurableObjectStorage,\n\tengineStatusKey: string,\n\tpauseDatetimeKey: string,\n\tgroupKeysToWipe: Set<string> | null\n): Promise<void> {\n\tif (groupKeysToWipe) {\n\t\tawait deleteGroupKeyBatch(storage, Array.from(groupKeysToWipe));\n\t\tstorage.sql.exec(\n\t\t\t\"DELETE FROM states WHERE groupKey IS NULL AND event NOT IN (?, ?)\",\n\t\t\tInstanceEvent.WORKFLOW_START,\n\t\t\tInstanceEvent.WORKFLOW_QUEUED\n\t\t);\n\t} else {\n\t\tconst cursor = storage.sql.exec<{ groupKey: string }>(\n\t\t\t\"SELECT DISTINCT groupKey FROM states WHERE groupKey IS NOT NULL\"\n\t\t);\n\t\tconst allGroupKeys = [...cursor].map((r) => r.groupKey);\n\t\tif (allGroupKeys.length > 0) {\n\t\t\tawait deleteGroupKeyBatch(storage, allGroupKeys);\n\t\t}\n\t\tstorage.sql.exec(\"DELETE FROM states\");\n\t}\n\n\tconst keysToDelete: string[] = [engineStatusKey, pauseDatetimeKey];\n\n\tconst allKeys = await storage.list();\n\tconst preservedEventMapKeys = getMockedEventMapKeys(allKeys);\n\tfor (const key of allKeys.keys()) {\n\t\tif (\n\t\t\tkey.startsWith(`${EVENT_MAP_PREFIX}\\n`) &&\n\t\t\t!preservedEventMapKeys.has(key)\n\t\t) {\n\t\t\tkeysToDelete.push(key);\n\t\t}\n\t}\n\tawait storage.delete(keysToDelete);\n\n\tstorage.sql.exec(\"DELETE FROM priority_queue\");\n}\n\nexport async function readAndClearRestartFromStep(\n\tstorage: DurableObjectStorage\n): Promise<RestartFromStep | undefined> {\n\tconst value = await storage.get<RestartFromStep>(RESTART_FROM_STEP_KEY);\n\tawait storage.delete(RESTART_FROM_STEP_KEY);\n\treturn value;\n}\n\nexport async function storeRestartFromStep(\n\tstorage: DurableObjectStorage,\n\tfrom: RestartFromStep\n): Promise<void> {\n\tawait storage.put(RESTART_FROM_STEP_KEY, from);\n}\n", "import Heap from \"heap-js\";\nimport type {\n\tInstanceMetadata,\n\tWakerPriorityEntry,\n\tWakerPriorityType,\n} from \"../instance\";\n\nconst wakerPriorityEntryComparator = (\n\ta: WakerPriorityEntry,\n\tb: WakerPriorityEntry\n) => {\n\treturn a.targetTimestamp - b.targetTimestamp;\n};\n\nconst enum SQLiteBoolean {\n\tFALSE = 0,\n\tTRUE = 1,\n}\n\nconst enum EntryType {\n\tRETRY = 0,\n\tSLEEP = 1,\n\tTIMEOUT = 2,\n}\n\ntype PriorityQueueDBEntry = {\n\tid: number;\n\tcreated_on: string;\n\ttarget_timestamp: number;\n\taction: SQLiteBoolean;\n\tentryType: number;\n\thash: string;\n};\n\nexport class TimePriorityQueue {\n\t#heap: Heap<WakerPriorityEntry> = new Heap(wakerPriorityEntryComparator);\n\t#ctx: DurableObjectState;\n\n\tconstructor(ctx: DurableObjectState, _instanceMetadata: InstanceMetadata) {\n\t\tthis.#ctx = ctx;\n\n\t\tthis.#heap.init(this.getEntries());\n\t}\n\n\tpopPastEntries(): WakerPriorityEntry[] | undefined {\n\t\t// early return if there is nothing in the queue\n\t\tif (this.#heap.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst res: WakerPriorityEntry[] = [];\n\t\tconst currentTimestamp = new Date().valueOf();\n\t\t// heap-js does not have a ordered iterator that doesn't consume the input so we\n\t\t// peek the first one, and pop if it's old until it's empty or in the future\n\t\twhile (true) {\n\t\t\tconst element = this.#heap.peek();\n\t\t\tif (element === undefined) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (element.targetTimestamp > currentTimestamp) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// at this point, targetTimestamp is older so we can pop this node because it's no\n\t\t\t// longer relevant\n\t\t\tres.push(element);\n\t\t\tthis.#heap.pop();\n\t\t}\n\t\tthis.#ctx.storage.transactionSync(() => {\n\t\t\tfor (const entry of res) {\n\t\t\t\tthis.removeEntryDB(entry);\n\t\t\t}\n\t\t});\n\t\treturn res;\n\t}\n\n\t/**\n\t * `add` is ran using a transaction so it's race condition free, if it's ran atomically\n\t * @param entry\n\t */\n\tasync add(entry: WakerPriorityEntry) {\n\t\tawait this.#ctx.storage.transaction(async () => {\n\t\t\t// TODO: Handle this\n\t\t\t// const waker = this.#env.WAKERS.idFromName(\n\t\t\t// \tthis.#instanceMetadata.instance.id\n\t\t\t// );\n\t\t\t// const wakerStub = this.#env.WAKERS.get(waker);\n\t\t\t// We can optimise this by only calling it if time is sooner than any other\n\t\t\t// await wakerStub.wake(\n\t\t\t// \tnew Date(entry.targetTimestamp),\n\t\t\t// \tthis.#instanceMetadata\n\t\t\t// );\n\n\t\t\tthis.#heap.add(entry);\n\t\t\tthis.addEntryDB(entry);\n\t\t});\n\t}\n\n\t/**\n\t * `remove` is ran using a transaction so it's race condition free, if it's ran atomically\n\t * @param entry\n\t */\n\tremove(entry: Omit<WakerPriorityEntry, \"targetTimestamp\">) {\n\t\tthis.#ctx.storage.transactionSync(() => {\n\t\t\tthis.removeFirst((e) => {\n\t\t\t\tif (e.hash === entry.hash && e.type === entry.type) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t});\n\t}\n\n\toffsetAll(offset: number) {\n\t\t// Clear the entire PQ table and re-insert only the offset entries.\n\t\t// We can't use the append-only add/remove pattern here because the\n\t\t// UNIQUE (action, entryType, hash) constraint would conflict with\n\t\t// the original action=1 rows still in the table.\n\t\tthis.#ctx.storage.transactionSync(() => {\n\t\t\tconst entries = this.#heap.toArray();\n\n\t\t\t// Wipe the table \u2014 removes all historical add/remove rows\n\t\t\tthis.#ctx.storage.sql.exec(\"DELETE FROM priority_queue\");\n\n\t\t\tconst newEntries = entries.map((value) => ({\n\t\t\t\t...value,\n\t\t\t\ttargetTimestamp: value.targetTimestamp + offset,\n\t\t\t}));\n\t\t\tfor (const entry of newEntries) {\n\t\t\t\tthis.addEntryDB(entry);\n\t\t\t}\n\t\t\t// re-init in-memory heap\n\t\t\tthis.#heap = new Heap(wakerPriorityEntryComparator);\n\t\t\tthis.#heap.init(newEntries);\n\t\t});\n\t}\n\n\tpopTypeAll(entryType: WakerPriorityType) {\n\t\tthis.#ctx.storage.transactionSync(() => {\n\t\t\tthis.filter((e) => e.type !== entryType);\n\t\t});\n\t}\n\n\t// Idempotent, perhaps name should suggest so\n\tasync handleNextAlarm() {\n\t\tconst nextWakeCall = this.#heap.peek();\n\t\tif (nextWakeCall === undefined) {\n\t\t\treturn;\n\t\t}\n\t\t// TODO: Handle this\n\t\t// const waker = this.#env.WAKERS.idFromName(\n\t\t// \tthis.#instanceMetadata.instance.id\n\t\t// );\n\t\t// const wakerStub = this.#env.WAKERS.get(waker);\n\t\t// await wakerStub.wake(\n\t\t// \tnew Date(nextWakeCall.targetTimestamp),\n\t\t// \tthis.#instanceMetadata\n\t\t// );\n\t}\n\n\tgetFirst(\n\t\tcallbackFn: (a: WakerPriorityEntry) => boolean\n\t): WakerPriorityEntry | undefined {\n\t\t// clone it so that people cant just modify the entry on the PQ\n\t\treturn structuredClone(this.#heap.toArray().find(callbackFn));\n\t}\n\n\tprivate removeFirst(callbackFn: (a: WakerPriorityEntry) => boolean) {\n\t\tconst elements = this.#heap.toArray();\n\t\tconst index = elements.findIndex(callbackFn);\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst removedEntry = elements.splice(index, 1)[0];\n\t\tthis.removeEntryDB(removedEntry);\n\n\t\tthis.#heap = new Heap(wakerPriorityEntryComparator);\n\t\tthis.#heap.init(elements);\n\t}\n\n\tprivate filter(callbackFn: (a: WakerPriorityEntry) => boolean) {\n\t\tconst filteredElements = this.#heap.toArray().filter(callbackFn);\n\t\tconst removedElements = this.#heap.toArray().filter((a) => !callbackFn(a));\n\t\tthis.#ctx.storage.transactionSync(() => {\n\t\t\tfor (const entry of removedElements) {\n\t\t\t\tthis.removeEntryDB(entry);\n\t\t\t}\n\t\t});\n\t\tthis.#heap = new Heap(wakerPriorityEntryComparator);\n\t\tthis.#heap.init(filteredElements);\n\t}\n\n\tlength() {\n\t\treturn this.#heap.length;\n\t}\n\n\tprivate getEntries() {\n\t\tconst entries = [\n\t\t\t...this.#ctx.storage.sql.exec(\"SELECT * FROM priority_queue ORDER BY id\"),\n\t\t] as PriorityQueueDBEntry[];\n\n\t\tconst activeEntries: WakerPriorityEntry[] = [];\n\n\t\tentries.forEach((val) => {\n\t\t\tconst entryType = toWakerPriorityType(val.entryType);\n\t\t\t// 0 - removed\n\t\t\tif (val.action == 0) {\n\t\t\t\tconst index = activeEntries.findIndex(\n\t\t\t\t\t(activeVal) =>\n\t\t\t\t\t\tval.hash == activeVal.hash && entryType == activeVal.type\n\t\t\t\t);\n\t\t\t\t// if it's found remove it from the active list\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tactiveEntries.splice(index, 1);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 1 - added\n\t\t\t\tconst index = activeEntries.findIndex(\n\t\t\t\t\t(activeVal) =>\n\t\t\t\t\t\tval.hash == activeVal.hash && entryType == activeVal.type\n\t\t\t\t);\n\t\t\t\t// if it's found remove it from the active list\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tactiveEntries.push({\n\t\t\t\t\t\thash: val.hash,\n\t\t\t\t\t\ttargetTimestamp: val.target_timestamp,\n\t\t\t\t\t\ttype: entryType,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn activeEntries;\n\t}\n\n\tprivate removeEntryDB(entry: WakerPriorityEntry) {\n\t\tthis.#ctx.storage.sql.exec(\n\t\t\t`\n\t\t\tINSERT INTO priority_queue (target_timestamp, action, entryType, hash)\n\t\t\tVALUES (?, ?, ? ,?)\n\t\t\t`,\n\t\t\tentry.targetTimestamp,\n\t\t\tSQLiteBoolean.FALSE,\n\t\t\tfromWakerPriorityType(entry.type),\n\t\t\tentry.hash\n\t\t);\n\t}\n\n\tcheckIfExistedInPast(entry: Omit<WakerPriorityEntry, \"targetTimestamp\">) {\n\t\treturn (\n\t\t\tthis.#ctx.storage.sql\n\t\t\t\t.exec(\n\t\t\t\t\t\"SELECT * FROM priority_queue WHERE entryType = ? AND hash = ? AND action = ?\",\n\t\t\t\t\tfromWakerPriorityType(entry.type),\n\t\t\t\t\tentry.hash,\n\t\t\t\t\t0\n\t\t\t\t)\n\t\t\t\t.toArray().length >= 1\n\t\t);\n\t}\n\n\tprivate addEntryDB(entry: WakerPriorityEntry) {\n\t\tthis.#ctx.storage.sql.exec(\n\t\t\t`\n\t\t\tINSERT INTO priority_queue (target_timestamp, action, entryType, hash)\n\t\t\tVALUES (?, ?, ? ,?)\n\t\t\t`,\n\t\t\tentry.targetTimestamp,\n\t\t\tSQLiteBoolean.TRUE,\n\t\t\tfromWakerPriorityType(entry.type),\n\t\t\tentry.hash\n\t\t);\n\t}\n}\n\nconst toWakerPriorityType = (entryType: EntryType): WakerPriorityType => {\n\tswitch (entryType) {\n\t\tcase EntryType.RETRY:\n\t\t\treturn \"retry\";\n\t\tcase EntryType.SLEEP:\n\t\t\treturn \"sleep\";\n\t\tcase EntryType.TIMEOUT:\n\t\t\treturn \"timeout\";\n\t}\n};\n\nconst fromWakerPriorityType = (entryType: WakerPriorityType): EntryType => {\n\tswitch (entryType) {\n\t\tcase \"retry\":\n\t\t\treturn EntryType.RETRY;\n\t\tcase \"sleep\":\n\t\t\treturn EntryType.SLEEP;\n\t\tcase \"timeout\":\n\t\t\treturn EntryType.TIMEOUT;\n\t\tdefault:\n\t\t\tthrow new Error(`WakerPriorityType \"${entryType}\" has not been handled`);\n\t}\n};\n", "import { RpcTarget, WorkerEntrypoint } from \"cloudflare:workers\";\nimport { InstanceEvent, instanceStatusName } from \"./instance\";\nimport {\n\tisUserTriggeredPause,\n\tisUserTriggeredRestart,\n\tisUserTriggeredTerminate,\n\tWorkflowError,\n} from \"./lib/errors\";\nimport { isValidWorkflowInstanceId } from \"./lib/validators\";\nimport type {\n\tDatabaseInstance,\n\tDatabaseVersion,\n\tDatabaseWorkflow,\n\tEngine,\n\tEngineLogs,\n} from \"./engine\";\nimport type { InstanceStatus as EngineInstanceStatus } from \"./instance\";\nimport type {\n\tWorkflowInstanceModifier,\n\tWorkflowIntrospectionOperation,\n\tWorkflowIntrospectionStreamResult,\n} from \"./types\";\n\ntype Env = {\n\tENGINE: DurableObjectNamespace<Engine>;\n\tBINDING_NAME: string;\n\tWORKFLOW_NAME: string;\n};\n\ntype WorkflowIntrospectionSession = {\n\tid: string;\n\toperations: WorkflowIntrospectionOperation[];\n\tinstanceIds: string[];\n};\n\n// workerd may construct a fresh WorkflowBinding object for each RPC call. Store\n// sessions at module scope so start/modify/get/dispose calls, and later\n// WorkflowBinding.create() calls, all see the same active Workflow session.\nconst workflowIntrospectionSessions = new Map<\n\tstring,\n\tWorkflowIntrospectionSession\n>();\n\nfunction getWorkflowIntrospectionSession(\n\tworkflowName: string,\n\tsessionId: string\n): WorkflowIntrospectionSession {\n\tconst session = workflowIntrospectionSessions.get(workflowName);\n\tif (session?.id !== sessionId) {\n\t\tthrow new Error(\n\t\t\t`Workflow ${JSON.stringify(workflowName)} does not have an active introspection session for this introspector.`\n\t\t);\n\t}\n\treturn session;\n}\n\nfunction isWorkflowIntrospectionStreamResult(\n\tvalue: unknown\n): value is WorkflowIntrospectionStreamResult {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === \"object\" &&\n\t\t\"__workflowIntrospectionStreamResult\" in value &&\n\t\t\"chunks\" in value &&\n\t\tvalue.__workflowIntrospectionStreamResult === true &&\n\t\tArray.isArray(value.chunks)\n\t);\n}\n\nfunction createWorkflowIntrospectionReadableStream(\n\tresult: WorkflowIntrospectionStreamResult\n): ReadableStream<Uint8Array> {\n\treturn new ReadableStream<Uint8Array>({\n\t\tstart(controller) {\n\t\t\tfor (const chunk of result.chunks) {\n\t\t\t\tcontroller.enqueue(chunk.slice());\n\t\t\t}\n\t\t\tcontroller.close();\n\t\t},\n\t});\n}\n\nasync function applyWorkflowIntrospectionOperation(\n\tmodifier: WorkflowInstanceModifier,\n\toperation: WorkflowIntrospectionOperation\n) {\n\tswitch (operation.type) {\n\t\tcase \"disableSleeps\":\n\t\t\tawait modifier.disableSleeps(operation.steps);\n\t\t\tbreak;\n\t\tcase \"disableRetryDelays\":\n\t\t\tawait modifier.disableRetryDelays(operation.steps);\n\t\t\tbreak;\n\t\tcase \"mockStepResult\":\n\t\t\tawait modifier.mockStepResult(\n\t\t\t\toperation.step,\n\t\t\t\tisWorkflowIntrospectionStreamResult(operation.stepResult)\n\t\t\t\t\t? createWorkflowIntrospectionReadableStream(operation.stepResult)\n\t\t\t\t\t: operation.stepResult\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"mockStepError\": {\n\t\t\tconst error = new Error(operation.error.message);\n\t\t\terror.name = operation.error.name;\n\t\t\tawait modifier.mockStepError(operation.step, error, operation.times);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"forceStepTimeout\":\n\t\t\tawait modifier.forceStepTimeout(operation.step, operation.times);\n\t\t\tbreak;\n\t\tcase \"mockEvent\":\n\t\t\tawait modifier.mockEvent(operation.event);\n\t\t\tbreak;\n\t\tcase \"forceEventTimeout\":\n\t\t\tawait modifier.forceEventTimeout(operation.step);\n\t\t\tbreak;\n\t}\n}\n\n// TODO(vaish): import from @cloudflare/workers-types once restart options are published\nexport interface RestartFromStep {\n\tname: string;\n\tcount?: number;\n\ttype?: \"do\" | \"sleep\" | \"waitForEvent\";\n}\n\nexport interface WorkflowInstanceTerminateOptions {\n\t/**\n\t * If true, run registered rollback handlers before terminating the instance.\n\t */\n\trollback?: boolean;\n}\n\nexport interface WorkflowInstanceRestartOptions {\n\tfrom?: RestartFromStep;\n}\n\n// this.env.WORKFLOW is WorkflowBinding\nexport class WorkflowBinding extends WorkerEntrypoint<Env> {\n\tconstructor(ctx: ExecutionContext, env: Env) {\n\t\tsuper(ctx, env);\n\t}\n\n\tpublic async create({\n\t\tid = crypto.randomUUID(),\n\t\tparams = {},\n\t}: WorkflowInstanceCreateOptions = {}): Promise<{\n\t\tid: string;\n\t}> {\n\t\tif (!isValidWorkflowInstanceId(id)) {\n\t\t\tthrow new WorkflowError(\"Workflow instance has invalid id\");\n\t\t}\n\n\t\tconst stubId = this.env.ENGINE.idFromName(id);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\t\tconst introspectionSession = workflowIntrospectionSessions.get(\n\t\t\tthis.env.WORKFLOW_NAME\n\t\t);\n\n\t\tif (introspectionSession !== undefined) {\n\t\t\tconst modifier = stub.getInstanceModifier();\n\t\t\tintrospectionSession.instanceIds.push(id);\n\t\t\tfor (const operation of introspectionSession.operations) {\n\t\t\t\tawait applyWorkflowIntrospectionOperation(modifier, operation);\n\t\t\t}\n\t\t}\n\n\t\tconst now = new Date().toISOString();\n\t\tconst initPromise = stub\n\t\t\t.init(\n\t\t\t\t0, // accountId: number,\n\t\t\t\t{} as DatabaseWorkflow, // workflow: DatabaseWorkflow,\n\t\t\t\t{} as DatabaseVersion, // version: DatabaseVersion,\n\t\t\t\t{\n\t\t\t\t\tid,\n\t\t\t\t\tcreated_on: now,\n\t\t\t\t\tmodified_on: now,\n\t\t\t\t\tworkflow_id: \"\",\n\t\t\t\t\tversion_id: \"\",\n\t\t\t\t\tstatus: 0, // InstanceStatus.Queued\n\t\t\t\t\tstarted_on: now,\n\t\t\t\t\tended_on: null,\n\t\t\t\t} satisfies DatabaseInstance,\n\t\t\t\t{\n\t\t\t\t\ttimestamp: new Date(),\n\t\t\t\t\tpayload: params as Readonly<typeof params>,\n\t\t\t\t\tinstanceId: id,\n\t\t\t\t\tworkflowName: this.env.WORKFLOW_NAME,\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then((val) => {\n\t\t\t\tif (val !== undefined) {\n\t\t\t\t\tval[Symbol.dispose]();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\t// Suppress all rejections: create() should queue and\n\t\t\t\t// return immediately\n\t\t\t});\n\n\t\tthis.ctx.waitUntil(initPromise);\n\n\t\treturn {\n\t\t\tid,\n\t\t};\n\t}\n\n\tpublic async get(id: string): Promise<WorkflowInstance> {\n\t\tconst stubId = this.env.ENGINE.idFromName(id);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\n\t\t// Pass a getter function so WorkflowHandle can get a fresh stub after abort\n\t\tconst getStub = () => this.env.ENGINE.get(this.env.ENGINE.idFromName(id));\n\n\t\tconst handle = new WorkflowHandle(id, stub, getStub);\n\n\t\ttry {\n\t\t\tawait handle.status();\n\t\t} catch {\n\t\t\tthrow new Error(\"instance.not_found\");\n\t\t}\n\n\t\treturn handle;\n\t}\n\n\tpublic async createBatch(\n\t\tbatch: WorkflowInstanceCreateOptions<unknown>[]\n\t): Promise<{ id: string }[]> {\n\t\tif (batch.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t\"WorkflowError: batchCreate should have at least 1 instance\"\n\t\t\t);\n\t\t}\n\n\t\treturn await Promise.all(\n\t\t\tbatch.map(async (val) => {\n\t\t\t\tconst res = await this.create(val);\n\t\t\t\treturn res;\n\t\t\t})\n\t\t);\n\t}\n\n\tpublic async deleteBatch(\n\t\tinstanceIds: string[]\n\t): Promise<WorkflowBatchDeleteResult> {\n\t\tif (instanceIds.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t\"WorkflowError: deleteBatch should have at least 1 instance\"\n\t\t\t);\n\t\t}\n\n\t\tif (instanceIds.length > 100) {\n\t\t\tthrow new Error(\n\t\t\t\t\"WorkflowError: deleteBatch is limited to 100 instances at a time\"\n\t\t\t);\n\t\t}\n\n\t\tconst uniqueIds = [...new Set(instanceIds)];\n\t\tconst resultMap = new Map<\n\t\t\tstring,\n\t\t\t{ ok: true } | { ok: false; code: number; message: string }\n\t\t>();\n\n\t\tconst settled = await Promise.allSettled(\n\t\t\tuniqueIds.map(async (id) => {\n\t\t\t\tconst stubId = this.env.ENGINE.idFromName(id);\n\t\t\t\tconst stub = this.env.ENGINE.get(stubId);\n\t\t\t\ttry {\n\t\t\t\t\tawait stub.unsafeAbort(\"User called delete\");\n\t\t\t\t} catch {\n\t\t\t\t\t// unsafeAbort clears storage and aborts; swallow error\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait stub.getStatus();\n\t\t\t\t\tresultMap.set(id, { ok: true });\n\t\t\t\t} catch {\n\t\t\t\t\tresultMap.set(id, { ok: true });\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\tfor (let i = 0; i < uniqueIds.length; i++) {\n\t\t\tconst result = settled[i];\n\t\t\tif (result.status === \"rejected\") {\n\t\t\t\tresultMap.set(uniqueIds[i], {\n\t\t\t\t\tok: false,\n\t\t\t\t\tcode: 10001,\n\t\t\t\t\tmessage: \"workflows.api.error.internal_server\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst deleted: { id: string }[] = [];\n\t\tconst errors: { id: string; code: number; message: string }[] = [];\n\n\t\tfor (const id of instanceIds) {\n\t\t\tconst result = resultMap.get(id);\n\t\t\tif (result && result.ok) {\n\t\t\t\tdeleted.push({ id });\n\t\t\t} else if (result && !result.ok) {\n\t\t\t\terrors.push({ id, code: result.code, message: result.message });\n\t\t\t} else {\n\t\t\t\tdeleted.push({ id });\n\t\t\t}\n\t\t}\n\n\t\treturn { deleted, errors };\n\t}\n\n\tpublic async unsafeGetBindingName(): Promise<string> {\n\t\t// async because of rpc\n\t\treturn this.env.BINDING_NAME;\n\t}\n\n\tpublic async unsafeStartIntrospection(): Promise<string> {\n\t\tif (workflowIntrospectionSessions.has(this.env.WORKFLOW_NAME)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Workflow ${JSON.stringify(this.env.WORKFLOW_NAME)} already has an active introspection session for binding ${JSON.stringify(this.env.BINDING_NAME)}.`\n\t\t\t);\n\t\t}\n\n\t\tconst sessionId = crypto.randomUUID();\n\t\tworkflowIntrospectionSessions.set(this.env.WORKFLOW_NAME, {\n\t\t\tid: sessionId,\n\t\t\toperations: [],\n\t\t\tinstanceIds: [],\n\t\t});\n\t\treturn sessionId;\n\t}\n\n\tpublic async unsafeStopIntrospection(sessionId: string): Promise<void> {\n\t\tconst session = workflowIntrospectionSessions.get(this.env.WORKFLOW_NAME);\n\t\tif (session?.id === sessionId) {\n\t\t\tworkflowIntrospectionSessions.delete(this.env.WORKFLOW_NAME);\n\t\t}\n\t}\n\n\tpublic async unsafeSetIntrospectionOperations(\n\t\tsessionId: string,\n\t\toperations: WorkflowIntrospectionOperation[]\n\t): Promise<void> {\n\t\tconst session = getWorkflowIntrospectionSession(\n\t\t\tthis.env.WORKFLOW_NAME,\n\t\t\tsessionId\n\t\t);\n\t\tsession.operations = operations;\n\t}\n\n\tpublic async unsafeGetIntrospectionInstances(\n\t\tsessionId: string\n\t): Promise<string[]> {\n\t\treturn getWorkflowIntrospectionSession(this.env.WORKFLOW_NAME, sessionId)\n\t\t\t.instanceIds;\n\t}\n\n\tpublic async unsafeGetInstanceModifier(instanceId: string): Promise<unknown> {\n\t\t// async because of rpc\n\t\tconst stubId = this.env.ENGINE.idFromName(instanceId);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\n\t\tconst instanceModifier = stub.getInstanceModifier();\n\n\t\treturn instanceModifier;\n\t}\n\n\tpublic async unsafeWaitForStepResult(\n\t\tinstanceId: string,\n\t\tname: string,\n\t\tindex?: number\n\t): Promise<unknown> {\n\t\tconst stubId = this.env.ENGINE.idFromName(instanceId);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\n\t\treturn await stub.waitForStepResult(name, index);\n\t}\n\n\tpublic async unsafeAbort(instanceId: string, reason?: string): Promise<void> {\n\t\tconst stubId = this.env.ENGINE.idFromName(instanceId);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\n\t\ttry {\n\t\t\tawait stub.unsafeAbort(reason);\n\t\t} catch {\n\t\t\t// do nothing because we want to dispose this instance\n\t\t}\n\t}\n\n\tpublic async unsafeWaitForStatus(\n\t\tinstanceId: string,\n\t\tstatus: string\n\t): Promise<void> {\n\t\tconst stubId = this.env.ENGINE.idFromName(instanceId);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\t\treturn await stub.waitForStatus(status);\n\t}\n\n\tpublic async unsafeGetOutputOrError(\n\t\tinstanceId: string,\n\t\tisOutput: boolean\n\t): Promise<unknown> {\n\t\tconst stubId = this.env.ENGINE.idFromName(instanceId);\n\t\tconst stub = this.env.ENGINE.get(stubId);\n\t\treturn await stub.getOutputOrError(isOutput);\n\t}\n}\n\nexport class WorkflowHandle extends RpcTarget implements WorkflowInstance {\n\tprivate stub: DurableObjectStub<Engine>;\n\n\tconstructor(\n\t\tpublic id: string,\n\t\tstub: DurableObjectStub<Engine>,\n\t\tprivate getStub: () => DurableObjectStub<Engine>\n\t) {\n\t\tsuper();\n\t\tthis.stub = stub;\n\t}\n\n\tpublic async pause(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.stub.changeInstanceStatus(\"pause\");\n\t\t} catch (e) {\n\t\t\t// pause causes instance abortion\n\t\t\tif (!isUserTriggeredPause(e)) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async resume(): Promise<void> {\n\t\tawait this.stub.changeInstanceStatus(\"resume\");\n\t}\n\n\tpublic async terminate(\n\t\toptions?: WorkflowInstanceTerminateOptions\n\t): Promise<void> {\n\t\ttry {\n\t\t\tawait this.stub.changeInstanceStatus(\"terminate\", undefined, options);\n\t\t} catch (e) {\n\t\t\t// terminate causes instance abortion\n\t\t\tif (!isUserTriggeredTerminate(e)) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async restart(\n\t\toptions?: WorkflowInstanceRestartOptions\n\t): Promise<void> {\n\t\ttry {\n\t\t\tawait this.stub.changeInstanceStatus(\"restart\", options?.from);\n\t\t} catch (e) {\n\t\t\t// restart causes instance abortion\n\t\t\tif (!isUserTriggeredRestart(e)) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\n\t\t// trigger restart flow after abortion\n\t\tthis.stub = this.getStub();\n\t\tawait this.stub.attemptRestart();\n\t}\n\n\tpublic async status(): Promise<\n\t\tInstanceStatus & { __LOCAL_DEV_STEP_OUTPUTS: unknown[] }\n\t> {\n\t\t// Both getStatus() and readLogs() must use the same fresh stub.\n\t\t// After pause/restart/terminate aborts the DO, the stub goes stale\n\t\tconst fetchStatusAndLogs = async () => {\n\t\t\tconst status = await this.stub.getStatus();\n\n\t\t\t// NOTE(lduarte): for some reason, sync functions over RPC are typed as never instead of Promise<EngineLogs>\n\t\t\tconst logs = await (this.stub.readLogs() as unknown as Promise<\n\t\t\t\tEngineLogs & Disposable\n\t\t\t>);\n\n\t\t\treturn { status, logs };\n\t\t};\n\n\t\tlet result: {\n\t\t\tstatus: EngineInstanceStatus;\n\t\t\tlogs: EngineLogs & Disposable;\n\t\t};\n\t\ttry {\n\t\t\tresult = await fetchStatusAndLogs();\n\t\t} catch {\n\t\t\tthis.stub = this.getStub();\n\t\t\tresult = await fetchStatusAndLogs();\n\t\t}\n\t\t// Dispose the RPC handle when the method scope exits\n\t\tusing logs = result.logs;\n\n\t\tconst filteredLogs = logs.logs.filter(\n\t\t\t(log) =>\n\t\t\t\tlog.event === InstanceEvent.STEP_SUCCESS ||\n\t\t\t\tlog.event === InstanceEvent.WAIT_COMPLETE\n\t\t);\n\n\t\tconst stepOutputs = filteredLogs.map((log) =>\n\t\t\tlog.event === InstanceEvent.STEP_SUCCESS\n\t\t\t\t? log.metadata.result\n\t\t\t\t: log.metadata.payload\n\t\t);\n\n\t\tconst workflowOutput =\n\t\t\tlogs.logs.find((log) => log.event === InstanceEvent.WORKFLOW_SUCCESS)\n\t\t\t\t?.metadata.result ?? null;\n\n\t\tconst workflowError = logs.logs.find(\n\t\t\t(log) => log.event === InstanceEvent.WORKFLOW_FAILURE\n\t\t)?.metadata.error;\n\n\t\treturn {\n\t\t\tstatus: instanceStatusName(result.status),\n\t\t\t__LOCAL_DEV_STEP_OUTPUTS: stepOutputs,\n\t\t\toutput: workflowOutput,\n\t\t\terror: workflowError,\n\t\t};\n\t}\n\n\tpublic async delete(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.stub.unsafeAbort(\"User called delete\");\n\t\t} catch {\n\t\t\t// unsafeAbort clears storage and aborts the DO; swallow the\n\t\t\t// resulting error so the caller sees a clean resolution.\n\t\t}\n\t}\n\n\tpublic async sendEvent(args: {\n\t\tpayload: unknown;\n\t\ttype: string;\n\t}): Promise<void> {\n\t\tawait this.stub.receiveEvent({\n\t\t\tpayload: args.payload,\n\t\t\ttype: args.type,\n\t\t\ttimestamp: new Date(),\n\t\t});\n\t}\n}\n"],
  "mappings": "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",
  "names": ["exports", "n", "r", "error", "HeapAsync", "_a", "i", "array", "self", "j", "_b", "Heap", "RpcTarget", "r", "config", "promise", "_default", "base64", "base64url", "bigint", "boolean", "_catch", "cidrv4", "cidrv6", "core_exports", "cuid", "cuid2", "date", "decode", "decodeAsync", "describe", "e164", "email", "emoji", "encode", "encodeAsync", "_enum", "guid", "hex", "hostname", "ipv4", "ipv6", "ksuid", "mac", "meta", "nanoid", "_null", "nullish", "number", "parse", "parseAsync", "safeDecode", "safeDecodeAsync", "safeEncode", "safeEncodeAsync", "safeParse", "safeParseAsync", "string", "ulid", "_undefined", "uuid", "_void", "xid", "core_exports", "_emoji", "_null", "_undefined", "initializer", "_a", "array", "object", "Class", "_a", "config", "base64", "base64url", "hex", "error", "issue", "_a", "version", "time", "_a", "inst", "result", "_a", "checks", "checkResult", "canary", "result", "r", "url", "base64", "isObject", "results", "map", "left", "right", "keyResult", "valueResult", "output", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "number", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "error", "issue", "_a", "meta", "Class", "_emoji", "_undefined", "_null", "Class", "issue", "codec", "_a", "meta", "id", "schema", "json", "file", "registry", "ctx", "schemas_exports", "_default", "base64", "base64url", "bigint", "boolean", "_catch", "cidrv4", "cidrv6", "cuid", "cuid2", "date", "describe", "e164", "email", "emoji", "_enum", "guid", "hex", "hostname", "ipv4", "ipv6", "ksuid", "mac", "meta", "nanoid", "_null", "nullish", "number", "string", "ulid", "_undefined", "uuid", "_void", "xid", "checks_exports", "date", "datetime", "duration", "time", "datetime", "date", "time", "duration", "initializer", "issue", "issues", "parse", "parseAsync", "safeParse", "safeParseAsync", "encode", "decode", "encodeAsync", "decodeAsync", "safeEncode", "safeDecode", "safeEncodeAsync", "safeDecodeAsync", "parse", "safeParse", "parseAsync", "safeParseAsync", "encode", "decode", "encodeAsync", "decodeAsync", "safeEncode", "safeDecode", "safeEncodeAsync", "safeDecodeAsync", "def", "meta", "check", "_default", "_catch", "json", "_emoji", "datetime", "date", "time", "duration", "string", "email", "guid", "uuid", "emoji", "nanoid", "cuid", "cuid2", "ulid", "xid", "ksuid", "ipv4", "mac", "ipv6", "cidrv4", "cidrv6", "base64", "base64url", "e164", "hostname", "hex", "number", "boolean", "bigint", "_undefined", "json", "_null", "json", "_void", "json", "date", "n", "_enum", "string", "json", "issue", "output", "nullish", "_default", "_catch", "json", "codec", "json", "describe", "meta", "string", "number", "boolean", "_null", "map", "schemas_exports", "checks_exports", "zodSchema", "objectSchema", "version", "bigint", "boolean", "date", "number", "string", "string", "number", "boolean", "bigint", "date", "config", "error", "registry", "config", "error", "meta", "hash", "error", "config", "RpcTarget", "error", "hash", "result", "priorityQueueHash", "duration", "event", "promise", "r", "Heap", "EVENT_MAP_PREFIX", "PAUSE_DATETIME", "meta", "error", "version", "RpcTarget", "error", "RpcTarget", "logs"]
}
