"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all5) => { for (var name in all5) __defProp(target, name, { get: all5[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { defaultTestConfig: () => defaultTestConfig, defineConfig: () => defineConfig, loadConfigFromFile: () => loadConfigFromFile }); module.exports = __toCommonJS(index_exports); // ../debug/dist/index.mjs var __defProp2 = Object.defineProperty; var __export2 = (target, all5) => { for (var name in all5) __defProp2(target, name, { get: all5[name], enumerable: true }); }; var colors_exports = {}; __export2(colors_exports, { $: () => $, bgBlack: () => bgBlack, bgBlue: () => bgBlue, bgCyan: () => bgCyan, bgGreen: () => bgGreen, bgMagenta: () => bgMagenta, bgRed: () => bgRed, bgWhite: () => bgWhite, bgYellow: () => bgYellow, black: () => black, blue: () => blue, bold: () => bold, cyan: () => cyan, dim: () => dim, gray: () => gray, green: () => green, grey: () => grey, hidden: () => hidden, inverse: () => inverse, italic: () => italic, magenta: () => magenta, red: () => red, reset: () => reset, strikethrough: () => strikethrough, underline: () => underline, white: () => white, yellow: () => yellow }); var FORCE_COLOR; var NODE_DISABLE_COLORS; var NO_COLOR; var TERM; var isTTY = true; if (typeof process !== "undefined") { ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}); isTTY = process.stdout && process.stdout.isTTY; } var $ = { enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY) }; function init(x, y) { let rgx = new RegExp(`\\x1b\\[${y}m`, "g"); let open = `\x1B[${x}m`, close2 = `\x1B[${y}m`; return function(txt) { if (!$.enabled || txt == null) return txt; return open + (!!~("" + txt).indexOf(close2) ? txt.replace(rgx, close2 + open) : txt) + close2; }; } var reset = init(0, 0); var bold = init(1, 22); var dim = init(2, 22); var italic = init(3, 23); var underline = init(4, 24); var inverse = init(7, 27); var hidden = init(8, 28); var strikethrough = init(9, 29); var black = init(30, 39); var red = init(31, 39); var green = init(32, 39); var yellow = init(33, 39); var blue = init(34, 39); var magenta = init(35, 39); var cyan = init(36, 39); var white = init(37, 39); var gray = init(90, 39); var grey = init(90, 39); var bgBlack = init(40, 49); var bgRed = init(41, 49); var bgGreen = init(42, 49); var bgYellow = init(43, 49); var bgBlue = init(44, 49); var bgMagenta = init(45, 49); var bgCyan = init(46, 49); var bgWhite = init(47, 49); var MAX_ARGS_HISTORY = 100; var COLORS = ["green", "yellow", "blue", "magenta", "cyan", "red"]; var argsHistory = []; var lastTimestamp = Date.now(); var lastColor = 0; var processEnv = typeof process !== "undefined" ? process.env : {}; globalThis.DEBUG ??= processEnv.DEBUG ?? ""; globalThis.DEBUG_COLORS ??= processEnv.DEBUG_COLORS ? processEnv.DEBUG_COLORS === "true" : true; var topProps = { enable(namespace) { if (typeof namespace === "string") { globalThis.DEBUG = namespace; } }, disable() { const prev = globalThis.DEBUG; globalThis.DEBUG = ""; return prev; }, // this is the core logic to check if logging should happen or not enabled(namespace) { const listenedNamespaces = globalThis.DEBUG.split(",").map((s) => { return s.replace(/[.+?^${}()|[\]\\]/g, "\\$&"); }); const isListened = listenedNamespaces.some((listenedNamespace) => { if (listenedNamespace === "" || listenedNamespace[0] === "-") return false; return namespace.match(RegExp(listenedNamespace.split("*").join(".*") + "$")); }); const isExcluded = listenedNamespaces.some((listenedNamespace) => { if (listenedNamespace === "" || listenedNamespace[0] !== "-") return false; return namespace.match(RegExp(listenedNamespace.slice(1).split("*").join(".*") + "$")); }); return isListened && !isExcluded; }, log: (...args2) => { const [namespace, format7, ...rest] = args2; const logWithFormatting = console.warn ?? console.log; logWithFormatting(`${namespace} ${format7}`, ...rest); }, formatters: {} // not implemented }; function debugCreate(namespace) { const instanceProps = { color: COLORS[lastColor++ % COLORS.length], enabled: topProps.enabled(namespace), namespace, log: topProps.log, extend: () => { } // not implemented }; const debugCall = (...args2) => { const { enabled: enabled2, namespace: namespace2, color, log } = instanceProps; if (args2.length !== 0) { argsHistory.push([namespace2, ...args2]); } if (argsHistory.length > MAX_ARGS_HISTORY) { argsHistory.shift(); } if (topProps.enabled(namespace2) || enabled2) { const stringArgs = args2.map((arg) => { if (typeof arg === "string") { return arg; } return safeStringify(arg); }); const ms = `+${Date.now() - lastTimestamp}ms`; lastTimestamp = Date.now(); if (globalThis.DEBUG_COLORS) { log(colors_exports[color](bold(namespace2)), ...stringArgs, colors_exports[color](ms)); } else { log(namespace2, ...stringArgs, ms); } } }; return new Proxy(debugCall, { get: (_, prop) => instanceProps[prop], set: (_, prop, value3) => instanceProps[prop] = value3 }); } var Debug = new Proxy(debugCreate, { get: (_, prop) => topProps[prop], set: (_, prop, value3) => topProps[prop] = value3 }); function safeStringify(value3, indent = 2) { const cache = /* @__PURE__ */ new Set(); return JSON.stringify( value3, (key, value22) => { if (typeof value22 === "object" && value22 !== null) { if (cache.has(value22)) { return `[Circular *]`; } cache.add(value22); } else if (typeof value22 === "bigint") { return value22.toString(); } return value22; }, indent ); } // ../driver-adapter-utils/dist/index.mjs function isDriverAdapterError(error) { return error["name"] === "DriverAdapterError" && typeof error["cause"] === "object"; } function ok(value3) { return { ok: true, value: value3, map(fn) { return ok(fn(value3)); }, flatMap(fn) { return fn(value3); } }; } function err(error) { return { ok: false, error, map() { return err(error); }, flatMap() { return err(error); } }; } var debug = Debug("driver-adapter-utils"); var ErrorRegistryInternal = class { registeredErrors = []; consumeError(id) { return this.registeredErrors[id]; } registerNewError(error) { let i = 0; while (this.registeredErrors[i] !== void 0) { i++; } this.registeredErrors[i] = { error }; return i; } }; var bindMigrationAwareSqlAdapterFactory = (adapterFactory) => { const errorRegistry = new ErrorRegistryInternal(); const boundFactory = { adapterName: adapterFactory.adapterName, provider: adapterFactory.provider, errorRegistry, connect: async (...args2) => { const ctx = await wrapAsync(errorRegistry, adapterFactory.connect.bind(adapterFactory))(...args2); return ctx.map((ctx2) => bindAdapter(ctx2, errorRegistry)); }, connectToShadowDb: async (...args2) => { const ctx = await wrapAsync(errorRegistry, adapterFactory.connectToShadowDb.bind(adapterFactory))(...args2); return ctx.map((ctx2) => bindAdapter(ctx2, errorRegistry)); } }; return boundFactory; }; var bindAdapter = (adapter4, errorRegistry = new ErrorRegistryInternal()) => { const boundAdapter = { adapterName: adapter4.adapterName, errorRegistry, queryRaw: wrapAsync(errorRegistry, adapter4.queryRaw.bind(adapter4)), executeRaw: wrapAsync(errorRegistry, adapter4.executeRaw.bind(adapter4)), executeScript: wrapAsync(errorRegistry, adapter4.executeScript.bind(adapter4)), dispose: wrapAsync(errorRegistry, adapter4.dispose.bind(adapter4)), provider: adapter4.provider, startTransaction: async (...args2) => { const ctx = await wrapAsync(errorRegistry, adapter4.startTransaction.bind(adapter4))(...args2); return ctx.map((ctx2) => bindTransaction(errorRegistry, ctx2)); } }; if (adapter4.getConnectionInfo) { boundAdapter.getConnectionInfo = wrapSync(errorRegistry, adapter4.getConnectionInfo.bind(adapter4)); } return boundAdapter; }; var bindTransaction = (errorRegistry, transaction) => { return { adapterName: transaction.adapterName, provider: transaction.provider, options: transaction.options, queryRaw: wrapAsync(errorRegistry, transaction.queryRaw.bind(transaction)), executeRaw: wrapAsync(errorRegistry, transaction.executeRaw.bind(transaction)), commit: wrapAsync(errorRegistry, transaction.commit.bind(transaction)), rollback: wrapAsync(errorRegistry, transaction.rollback.bind(transaction)) }; }; function wrapAsync(registry, fn) { return async (...args2) => { try { return ok(await fn(...args2)); } catch (error) { debug("[error@wrapAsync]", error); if (isDriverAdapterError(error)) { return err(error.cause); } const id = registry.registerNewError(error); return err({ kind: "GenericJs", id }); } }; } function wrapSync(registry, fn) { return (...args2) => { try { return ok(fn(...args2)); } catch (error) { debug("[error@wrapSync]", error); if (isDriverAdapterError(error)) { return err(error.cause); } const id = registry.registerNewError(error); return err({ kind: "GenericJs", id }); } }; } var mockAdapterErrors = { queryRaw: new Error("Not implemented: queryRaw"), executeRaw: new Error("Not implemented: executeRaw"), startTransaction: new Error("Not implemented: startTransaction"), executeScript: new Error("Not implemented: executeScript"), dispose: new Error("Not implemented: dispose") }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Function.js var isFunction = (input) => typeof input === "function"; var dual = function(arity, body) { if (typeof arity === "function") { return function() { if (arity(arguments)) { return body.apply(this, arguments); } return (self) => body(self, ...arguments); }; } switch (arity) { case 0: case 1: throw new RangeError(`Invalid arity ${arity}`); case 2: return function(a, b) { if (arguments.length >= 2) { return body(a, b); } return function(self) { return body(self, a); }; }; case 3: return function(a, b, c) { if (arguments.length >= 3) { return body(a, b, c); } return function(self) { return body(self, a, b); }; }; case 4: return function(a, b, c, d) { if (arguments.length >= 4) { return body(a, b, c, d); } return function(self) { return body(self, a, b, c); }; }; case 5: return function(a, b, c, d, e) { if (arguments.length >= 5) { return body(a, b, c, d, e); } return function(self) { return body(self, a, b, c, d); }; }; default: return function() { if (arguments.length >= arity) { return body.apply(this, arguments); } const args2 = arguments; return function(self) { return body(self, ...args2); }; }; } }; var identity = (a) => a; var constant = (value3) => () => value3; var constTrue = /* @__PURE__ */ constant(true); var constFalse = /* @__PURE__ */ constant(false); var constNull = /* @__PURE__ */ constant(null); var constUndefined = /* @__PURE__ */ constant(void 0); var constVoid = constUndefined; function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) { switch (arguments.length) { case 1: return a; case 2: return ab(a); case 3: return bc(ab(a)); case 4: return cd(bc(ab(a))); case 5: return de(cd(bc(ab(a)))); case 6: return ef(de(cd(bc(ab(a))))); case 7: return fg(ef(de(cd(bc(ab(a)))))); case 8: return gh(fg(ef(de(cd(bc(ab(a))))))); case 9: return hi(gh(fg(ef(de(cd(bc(ab(a)))))))); default: { let ret = arguments[0]; for (let i = 1; i < arguments.length; i++) { ret = arguments[i](ret); } return ret; } } } // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Either.js var Either_exports = {}; __export(Either_exports, { Do: () => Do, TypeId: () => TypeId3, all: () => all, andThen: () => andThen, ap: () => ap, bind: () => bind2, bindTo: () => bindTo2, filterOrLeft: () => filterOrLeft, flatMap: () => flatMap, flip: () => flip, fromNullable: () => fromNullable, fromOption: () => fromOption2, gen: () => gen, getEquivalence: () => getEquivalence, getLeft: () => getLeft2, getOrElse: () => getOrElse, getOrNull: () => getOrNull, getOrThrow: () => getOrThrow, getOrThrowWith: () => getOrThrowWith, getOrUndefined: () => getOrUndefined, getRight: () => getRight2, isEither: () => isEither2, isLeft: () => isLeft2, isRight: () => isRight2, left: () => left2, let: () => let_2, liftPredicate: () => liftPredicate, map: () => map, mapBoth: () => mapBoth, mapLeft: () => mapLeft, match: () => match, merge: () => merge, orElse: () => orElse, right: () => right2, try: () => try_, zipWith: () => zipWith }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Equivalence.js var make = (isEquivalent) => (self, that) => self === that || isEquivalent(self, that); var isStrictEquivalent = (x, y) => x === y; var strict = () => isStrictEquivalent; var number = /* @__PURE__ */ strict(); var mapInput = /* @__PURE__ */ dual(2, (self, f) => make((x, y) => self(f(x), f(y)))); var Date2 = /* @__PURE__ */ mapInput(number, (date3) => date3.getTime()); var array = (item) => make((self, that) => { if (self.length !== that.length) { return false; } for (let i = 0; i < self.length; i++) { const isEq = item(self[i], that[i]); if (!isEq) { return false; } } return true; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/doNotation.js var let_ = (map15) => dual(3, (self, name, f) => map15(self, (a) => Object.assign({}, a, { [name]: f(a) }))); var bindTo = (map15) => dual(2, (self, name) => map15(self, (a) => ({ [name]: a }))); var bind = (map15, flatMap12) => dual(3, (self, name, f) => flatMap12(self, (a) => map15(f(a), (b) => Object.assign({}, a, { [name]: b })))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/version.js var moduleVersion = "3.12.10"; var getCurrentVersion = () => moduleVersion; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/GlobalValue.js var globalStoreId = `effect/GlobalValue/globalStoreId/${/* @__PURE__ */ getCurrentVersion()}`; var globalStore; var globalValue = (id, compute) => { if (!globalStore) { globalThis[globalStoreId] ??= /* @__PURE__ */ new Map(); globalStore = globalThis[globalStoreId]; } if (!globalStore.has(id)) { globalStore.set(id, compute()); } return globalStore.get(id); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Predicate.js var isTruthy = (input) => !!input; var isSet = (input) => input instanceof Set; var isMap = (input) => input instanceof Map; var isString = (input) => typeof input === "string"; var isNumber = (input) => typeof input === "number"; var isBoolean = (input) => typeof input === "boolean"; var isBigInt = (input) => typeof input === "bigint"; var isSymbol = (input) => typeof input === "symbol"; var isFunction2 = isFunction; var isUndefined = (input) => input === void 0; var isNotUndefined = (input) => input !== void 0; var isNotNull = (input) => input !== null; var isNever = (_) => false; var isRecordOrArray = (input) => typeof input === "object" && input !== null; var isObject = (input) => isRecordOrArray(input) || isFunction2(input); var hasProperty = /* @__PURE__ */ dual(2, (self, property2) => isObject(self) && property2 in self); var isTagged = /* @__PURE__ */ dual(2, (self, tag2) => hasProperty(self, "_tag") && self["_tag"] === tag2); var isNullable = (input) => input === null || input === void 0; var isNotNullable = (input) => input !== null && input !== void 0; var isUint8Array = (input) => input instanceof Uint8Array; var isDate = (input) => input instanceof Date; var isIterable = (input) => hasProperty(input, Symbol.iterator); var isRecord = (input) => isRecordOrArray(input) && !Array.isArray(input); var isPromiseLike = (input) => hasProperty(input, "then") && isFunction2(input.then); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/errors.js var getBugErrorMessage = (message) => `BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Utils.js var GenKindTypeId = /* @__PURE__ */ Symbol.for("effect/Gen/GenKind"); var isGenKind = (u) => isObject(u) && GenKindTypeId in u; var GenKindImpl = class { value; constructor(value3) { this.value = value3; } /** * @since 2.0.0 */ get _F() { return identity; } /** * @since 2.0.0 */ get _R() { return (_) => _; } /** * @since 2.0.0 */ get _O() { return (_) => _; } /** * @since 2.0.0 */ get _E() { return (_) => _; } /** * @since 2.0.0 */ [GenKindTypeId] = GenKindTypeId; /** * @since 2.0.0 */ [Symbol.iterator]() { return new SingleShotGen(this); } }; var SingleShotGen = class _SingleShotGen { self; called = false; constructor(self) { this.self = self; } /** * @since 2.0.0 */ next(a) { return this.called ? { value: a, done: true } : (this.called = true, { value: this.self, done: false }); } /** * @since 2.0.0 */ return(a) { return { value: a, done: true }; } /** * @since 2.0.0 */ throw(e) { throw e; } /** * @since 2.0.0 */ [Symbol.iterator]() { return new _SingleShotGen(this.self); } }; var adapter = () => function() { let x = arguments[0]; for (let i = 1; i < arguments.length; i++) { x = arguments[i](x); } return new GenKindImpl(x); }; var defaultIncHi = 335903614; var defaultIncLo = 4150755663; var MUL_HI = 1481765933 >>> 0; var MUL_LO = 1284865837 >>> 0; var BIT_53 = 9007199254740992; var BIT_27 = 134217728; var PCGRandom = class { _state; constructor(seedHi, seedLo, incHi, incLo) { if (isNullable(seedLo) && isNullable(seedHi)) { seedLo = Math.random() * 4294967295 >>> 0; seedHi = 0; } else if (isNullable(seedLo)) { seedLo = seedHi; seedHi = 0; } if (isNullable(incLo) && isNullable(incHi)) { incLo = this._state ? this._state[3] : defaultIncLo; incHi = this._state ? this._state[2] : defaultIncHi; } else if (isNullable(incLo)) { incLo = incHi; incHi = 0; } this._state = new Int32Array([0, 0, incHi >>> 0, ((incLo || 0) | 1) >>> 0]); this._next(); add64(this._state, this._state[0], this._state[1], seedHi >>> 0, seedLo >>> 0); this._next(); return this; } /** * Returns a copy of the internal state of this random number generator as a * JavaScript Array. * * @category getters * @since 2.0.0 */ getState() { return [this._state[0], this._state[1], this._state[2], this._state[3]]; } /** * Restore state previously retrieved using `getState()`. * * @since 2.0.0 */ setState(state) { this._state[0] = state[0]; this._state[1] = state[1]; this._state[2] = state[2]; this._state[3] = state[3] | 1; } /** * Get a uniformly distributed 32 bit integer between [0, max). * * @category getter * @since 2.0.0 */ integer(max3) { return Math.round(this.number() * Number.MAX_SAFE_INTEGER) % max3; } /** * Get a uniformly distributed IEEE-754 double between 0.0 and 1.0, with * 53 bits of precision (every bit of the mantissa is randomized). * * @category getters * @since 2.0.0 */ number() { const hi = (this._next() & 67108863) * 1; const lo = (this._next() & 134217727) * 1; return (hi * BIT_27 + lo) / BIT_53; } /** @internal */ _next() { const oldHi = this._state[0] >>> 0; const oldLo = this._state[1] >>> 0; mul64(this._state, oldHi, oldLo, MUL_HI, MUL_LO); add64(this._state, this._state[0], this._state[1], this._state[2], this._state[3]); let xsHi = oldHi >>> 18; let xsLo = (oldLo >>> 18 | oldHi << 14) >>> 0; xsHi = (xsHi ^ oldHi) >>> 0; xsLo = (xsLo ^ oldLo) >>> 0; const xorshifted = (xsLo >>> 27 | xsHi << 5) >>> 0; const rot = oldHi >>> 27; const rot2 = (-rot >>> 0 & 31) >>> 0; return (xorshifted >>> rot | xorshifted << rot2) >>> 0; } }; function mul64(out, aHi, aLo, bHi, bLo) { let c1 = (aLo >>> 16) * (bLo & 65535) >>> 0; let c0 = (aLo & 65535) * (bLo >>> 16) >>> 0; let lo = (aLo & 65535) * (bLo & 65535) >>> 0; let hi = (aLo >>> 16) * (bLo >>> 16) + ((c0 >>> 16) + (c1 >>> 16)) >>> 0; c0 = c0 << 16 >>> 0; lo = lo + c0 >>> 0; if (lo >>> 0 < c0 >>> 0) { hi = hi + 1 >>> 0; } c1 = c1 << 16 >>> 0; lo = lo + c1 >>> 0; if (lo >>> 0 < c1 >>> 0) { hi = hi + 1 >>> 0; } hi = hi + Math.imul(aLo, bHi) >>> 0; hi = hi + Math.imul(aHi, bLo) >>> 0; out[0] = hi; out[1] = lo; } function add64(out, aHi, aLo, bHi, bLo) { let hi = aHi + bHi >>> 0; const lo = aLo + bLo >>> 0; if (lo >>> 0 < aLo >>> 0) { hi = hi + 1 | 0; } out[0] = hi; out[1] = lo; } var YieldWrapTypeId = /* @__PURE__ */ Symbol.for("effect/Utils/YieldWrap"); var YieldWrap = class { /** * @since 3.0.6 */ #value; constructor(value3) { this.#value = value3; } /** * @since 3.0.6 */ [YieldWrapTypeId]() { return this.#value; } }; function yieldWrapGet(self) { if (typeof self === "object" && self !== null && YieldWrapTypeId in self) { return self[YieldWrapTypeId](); } throw new Error(getBugErrorMessage("yieldWrapGet")); } var structuralRegionState = /* @__PURE__ */ globalValue("effect/Utils/isStructuralRegion", () => ({ enabled: false, tester: void 0 })); var tracingFunction = (name) => { const wrap = { [name](body) { return body(); } }; return function(fn) { return wrap[name](fn); }; }; var internalCall = /* @__PURE__ */ tracingFunction("effect_internal_function"); var genConstructor = function* () { }.constructor; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Hash.js var randomHashCache = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Hash/randomHashCache"), () => /* @__PURE__ */ new WeakMap()); var symbol = /* @__PURE__ */ Symbol.for("effect/Hash"); var hash = (self) => { if (structuralRegionState.enabled === true) { return 0; } switch (typeof self) { case "number": return number2(self); case "bigint": return string(self.toString(10)); case "boolean": return string(String(self)); case "symbol": return string(String(self)); case "string": return string(self); case "undefined": return string("undefined"); case "function": case "object": { if (self === null) { return string("null"); } else if (self instanceof Date) { return hash(self.toISOString()); } else if (isHash(self)) { return self[symbol](); } else { return random(self); } } default: throw new Error(`BUG: unhandled typeof ${typeof self} - please report an issue at https://github.com/Effect-TS/effect/issues`); } }; var random = (self) => { if (!randomHashCache.has(self)) { randomHashCache.set(self, number2(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))); } return randomHashCache.get(self); }; var combine = (b) => (self) => self * 53 ^ b; var optimize = (n) => n & 3221225471 | n >>> 1 & 1073741824; var isHash = (u) => hasProperty(u, symbol); var number2 = (n) => { if (n !== n || n === Infinity) { return 0; } let h = n | 0; if (h !== n) { h ^= n * 4294967295; } while (n > 4294967295) { h ^= n /= 4294967295; } return optimize(h); }; var string = (str) => { let h = 5381, i = str.length; while (i) { h = h * 33 ^ str.charCodeAt(--i); } return optimize(h); }; var structureKeys = (o, keys5) => { let h = 12289; for (let i = 0; i < keys5.length; i++) { h ^= pipe(string(keys5[i]), combine(hash(o[keys5[i]]))); } return optimize(h); }; var structure = (o) => structureKeys(o, Object.keys(o)); var array2 = (arr) => { let h = 6151; for (let i = 0; i < arr.length; i++) { h = pipe(h, combine(hash(arr[i]))); } return optimize(h); }; var cached = function() { if (arguments.length === 1) { const self2 = arguments[0]; return function(hash4) { Object.defineProperty(self2, symbol, { value() { return hash4; }, enumerable: false }); return hash4; }; } const self = arguments[0]; const hash3 = arguments[1]; Object.defineProperty(self, symbol, { value() { return hash3; }, enumerable: false }); return hash3; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Equal.js var symbol2 = /* @__PURE__ */ Symbol.for("effect/Equal"); function equals() { if (arguments.length === 1) { return (self) => compareBoth(self, arguments[0]); } return compareBoth(arguments[0], arguments[1]); } function compareBoth(self, that) { if (self === that) { return true; } const selfType = typeof self; if (selfType !== typeof that) { return false; } if (selfType === "object" || selfType === "function") { if (self !== null && that !== null) { if (isEqual(self) && isEqual(that)) { if (hash(self) === hash(that) && self[symbol2](that)) { return true; } else { return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false; } } else if (self instanceof Date && that instanceof Date) { return self.toISOString() === that.toISOString(); } } if (structuralRegionState.enabled) { if (Array.isArray(self) && Array.isArray(that)) { return self.length === that.length && self.every((v, i) => compareBoth(v, that[i])); } if (Object.getPrototypeOf(self) === Object.prototype && Object.getPrototypeOf(self) === Object.prototype) { const keysSelf = Object.keys(self); const keysThat = Object.keys(that); if (keysSelf.length === keysThat.length) { for (const key of keysSelf) { if (!(key in that && compareBoth(self[key], that[key]))) { return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false; } } return true; } } return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false; } } return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false; } var isEqual = (u) => hasProperty(u, symbol2); var equivalence = () => equals; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Inspectable.js var NodeInspectSymbol = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom"); var toJSON = (x) => { try { if (hasProperty(x, "toJSON") && isFunction2(x["toJSON"]) && x["toJSON"].length === 0) { return x.toJSON(); } else if (Array.isArray(x)) { return x.map(toJSON); } } catch (_) { return {}; } return redact(x); }; var format = (x) => JSON.stringify(x, null, 2); var BaseProto = { toJSON() { return toJSON(this); }, [NodeInspectSymbol]() { return this.toJSON(); }, toString() { return format(this.toJSON()); } }; var Class = class { /** * @since 2.0.0 */ [NodeInspectSymbol]() { return this.toJSON(); } /** * @since 2.0.0 */ toString() { return format(this.toJSON()); } }; var toStringUnknown = (u, whitespace = 2) => { if (typeof u === "string") { return u; } try { return typeof u === "object" ? stringifyCircular(u, whitespace) : String(u); } catch (_) { return String(u); } }; var stringifyCircular = (obj, whitespace) => { let cache = []; const retVal = JSON.stringify(obj, (_key, value3) => typeof value3 === "object" && value3 !== null ? cache.includes(value3) ? void 0 : cache.push(value3) && (redactableState.fiberRefs !== void 0 && isRedactable(value3) ? value3[symbolRedactable](redactableState.fiberRefs) : value3) : value3, whitespace); cache = void 0; return retVal; }; var symbolRedactable = /* @__PURE__ */ Symbol.for("effect/Inspectable/Redactable"); var isRedactable = (u) => typeof u === "object" && u !== null && symbolRedactable in u; var redactableState = /* @__PURE__ */ globalValue("effect/Inspectable/redactableState", () => ({ fiberRefs: void 0 })); var withRedactableContext = (context3, f) => { const prev = redactableState.fiberRefs; redactableState.fiberRefs = context3; try { return f(); } finally { redactableState.fiberRefs = prev; } }; var redact = (u) => { if (isRedactable(u) && redactableState.fiberRefs !== void 0) { return u[symbolRedactable](redactableState.fiberRefs); } return u; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Pipeable.js var pipeArguments = (self, args2) => { switch (args2.length) { case 0: return self; case 1: return args2[0](self); case 2: return args2[1](args2[0](self)); case 3: return args2[2](args2[1](args2[0](self))); case 4: return args2[3](args2[2](args2[1](args2[0](self)))); case 5: return args2[4](args2[3](args2[2](args2[1](args2[0](self))))); case 6: return args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self)))))); case 7: return args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self))))))); case 8: return args2[7](args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self)))))))); case 9: return args2[8](args2[7](args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self))))))))); default: { let ret = self; for (let i = 0, len = args2.length; i < len; i++) { ret = args2[i](ret); } return ret; } } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/opCodes/effect.js var OP_ASYNC = "Async"; var OP_COMMIT = "Commit"; var OP_FAILURE = "Failure"; var OP_ON_FAILURE = "OnFailure"; var OP_ON_SUCCESS = "OnSuccess"; var OP_ON_SUCCESS_AND_FAILURE = "OnSuccessAndFailure"; var OP_SUCCESS = "Success"; var OP_SYNC = "Sync"; var OP_TAG = "Tag"; var OP_UPDATE_RUNTIME_FLAGS = "UpdateRuntimeFlags"; var OP_WHILE = "While"; var OP_ITERATOR = "Iterator"; var OP_WITH_RUNTIME = "WithRuntime"; var OP_YIELD = "Yield"; var OP_REVERT_FLAGS = "RevertFlags"; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/effectable.js var EffectTypeId = /* @__PURE__ */ Symbol.for("effect/Effect"); var StreamTypeId = /* @__PURE__ */ Symbol.for("effect/Stream"); var SinkTypeId = /* @__PURE__ */ Symbol.for("effect/Sink"); var ChannelTypeId = /* @__PURE__ */ Symbol.for("effect/Channel"); var effectVariance = { /* c8 ignore next */ _R: (_) => _, /* c8 ignore next */ _E: (_) => _, /* c8 ignore next */ _A: (_) => _, _V: /* @__PURE__ */ getCurrentVersion() }; var sinkVariance = { /* c8 ignore next */ _A: (_) => _, /* c8 ignore next */ _In: (_) => _, /* c8 ignore next */ _L: (_) => _, /* c8 ignore next */ _E: (_) => _, /* c8 ignore next */ _R: (_) => _ }; var channelVariance = { /* c8 ignore next */ _Env: (_) => _, /* c8 ignore next */ _InErr: (_) => _, /* c8 ignore next */ _InElem: (_) => _, /* c8 ignore next */ _InDone: (_) => _, /* c8 ignore next */ _OutErr: (_) => _, /* c8 ignore next */ _OutElem: (_) => _, /* c8 ignore next */ _OutDone: (_) => _ }; var EffectPrototype = { [EffectTypeId]: effectVariance, [StreamTypeId]: effectVariance, [SinkTypeId]: sinkVariance, [ChannelTypeId]: channelVariance, [symbol2](that) { return this === that; }, [symbol]() { return cached(this, random(this)); }, [Symbol.iterator]() { return new SingleShotGen(new YieldWrap(this)); }, pipe() { return pipeArguments(this, arguments); } }; var StructuralPrototype = { [symbol]() { return cached(this, structure(this)); }, [symbol2](that) { const selfKeys = Object.keys(this); const thatKeys = Object.keys(that); if (selfKeys.length !== thatKeys.length) { return false; } for (const key of selfKeys) { if (!(key in that && equals(this[key], that[key]))) { return false; } } return true; } }; var CommitPrototype = { ...EffectPrototype, _op: OP_COMMIT }; var StructuralCommitPrototype = { ...CommitPrototype, ...StructuralPrototype }; var Base = /* @__PURE__ */ function() { function Base3() { } Base3.prototype = CommitPrototype; return Base3; }(); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/option.js var TypeId = /* @__PURE__ */ Symbol.for("effect/Option"); var CommonProto = { ...EffectPrototype, [TypeId]: { _A: (_) => _ }, [NodeInspectSymbol]() { return this.toJSON(); }, toString() { return format(this.toJSON()); } }; var SomeProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto), { _tag: "Some", _op: "Some", [symbol2](that) { return isOption(that) && isSome(that) && equals(this.value, that.value); }, [symbol]() { return cached(this, combine(hash(this._tag))(hash(this.value))); }, toJSON() { return { _id: "Option", _tag: this._tag, value: toJSON(this.value) }; } }); var NoneHash = /* @__PURE__ */ hash("None"); var NoneProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto), { _tag: "None", _op: "None", [symbol2](that) { return isOption(that) && isNone(that); }, [symbol]() { return NoneHash; }, toJSON() { return { _id: "Option", _tag: this._tag }; } }); var isOption = (input) => hasProperty(input, TypeId); var isNone = (fa) => fa._tag === "None"; var isSome = (fa) => fa._tag === "Some"; var none = /* @__PURE__ */ Object.create(NoneProto); var some = (value3) => { const a = Object.create(SomeProto); a.value = value3; return a; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/either.js var TypeId2 = /* @__PURE__ */ Symbol.for("effect/Either"); var CommonProto2 = { ...EffectPrototype, [TypeId2]: { _R: (_) => _ }, [NodeInspectSymbol]() { return this.toJSON(); }, toString() { return format(this.toJSON()); } }; var RightProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto2), { _tag: "Right", _op: "Right", [symbol2](that) { return isEither(that) && isRight(that) && equals(this.right, that.right); }, [symbol]() { return combine(hash(this._tag))(hash(this.right)); }, toJSON() { return { _id: "Either", _tag: this._tag, right: toJSON(this.right) }; } }); var LeftProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto2), { _tag: "Left", _op: "Left", [symbol2](that) { return isEither(that) && isLeft(that) && equals(this.left, that.left); }, [symbol]() { return combine(hash(this._tag))(hash(this.left)); }, toJSON() { return { _id: "Either", _tag: this._tag, left: toJSON(this.left) }; } }); var isEither = (input) => hasProperty(input, TypeId2); var isLeft = (ma) => ma._tag === "Left"; var isRight = (ma) => ma._tag === "Right"; var left = (left3) => { const a = Object.create(LeftProto); a.left = left3; return a; }; var right = (right3) => { const a = Object.create(RightProto); a.right = right3; return a; }; var getLeft = (self) => isRight(self) ? none : some(self.left); var getRight = (self) => isLeft(self) ? none : some(self.right); var fromOption = /* @__PURE__ */ dual(2, (self, onNone) => isNone(self) ? left(onNone()) : right(self.value)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Either.js var TypeId3 = TypeId2; var right2 = right; var left2 = left; var fromNullable = /* @__PURE__ */ dual(2, (self, onNullable) => self == null ? left2(onNullable(self)) : right2(self)); var fromOption2 = fromOption; var try_ = (evaluate2) => { if (isFunction2(evaluate2)) { try { return right2(evaluate2()); } catch (e) { return left2(e); } } else { try { return right2(evaluate2.try()); } catch (e) { return left2(evaluate2.catch(e)); } } }; var isEither2 = isEither; var isLeft2 = isLeft; var isRight2 = isRight; var getRight2 = getRight; var getLeft2 = getLeft; var getEquivalence = ({ left: left3, right: right3 }) => make((x, y) => isLeft2(x) ? isLeft2(y) && left3(x.left, y.left) : isRight2(y) && right3(x.right, y.right)); var mapBoth = /* @__PURE__ */ dual(2, (self, { onLeft, onRight }) => isLeft2(self) ? left2(onLeft(self.left)) : right2(onRight(self.right))); var mapLeft = /* @__PURE__ */ dual(2, (self, f) => isLeft2(self) ? left2(f(self.left)) : right2(self.right)); var map = /* @__PURE__ */ dual(2, (self, f) => isRight2(self) ? right2(f(self.right)) : left2(self.left)); var match = /* @__PURE__ */ dual(2, (self, { onLeft, onRight }) => isLeft2(self) ? onLeft(self.left) : onRight(self.right)); var liftPredicate = /* @__PURE__ */ dual(3, (a, predicate, orLeftWith) => predicate(a) ? right2(a) : left2(orLeftWith(a))); var filterOrLeft = /* @__PURE__ */ dual(3, (self, predicate, orLeftWith) => flatMap(self, (r) => predicate(r) ? right2(r) : left2(orLeftWith(r)))); var merge = /* @__PURE__ */ match({ onLeft: identity, onRight: identity }); var getOrElse = /* @__PURE__ */ dual(2, (self, onLeft) => isLeft2(self) ? onLeft(self.left) : self.right); var getOrNull = /* @__PURE__ */ getOrElse(constNull); var getOrUndefined = /* @__PURE__ */ getOrElse(constUndefined); var getOrThrowWith = /* @__PURE__ */ dual(2, (self, onLeft) => { if (isRight2(self)) { return self.right; } throw onLeft(self.left); }); var getOrThrow = /* @__PURE__ */ getOrThrowWith(() => new Error("getOrThrow called on a Left")); var orElse = /* @__PURE__ */ dual(2, (self, that) => isLeft2(self) ? that(self.left) : right2(self.right)); var flatMap = /* @__PURE__ */ dual(2, (self, f) => isLeft2(self) ? left2(self.left) : f(self.right)); var andThen = /* @__PURE__ */ dual(2, (self, f) => flatMap(self, (a) => { const b = isFunction2(f) ? f(a) : f; return isEither2(b) ? b : right2(b); })); var zipWith = /* @__PURE__ */ dual(3, (self, that, f) => flatMap(self, (r) => map(that, (r2) => f(r, r2)))); var ap = /* @__PURE__ */ dual(2, (self, that) => zipWith(self, that, (f, a) => f(a))); var all = (input) => { if (Symbol.iterator in input) { const out2 = []; for (const e of input) { if (isLeft2(e)) { return e; } out2.push(e.right); } return right2(out2); } const out = {}; for (const key of Object.keys(input)) { const e = input[key]; if (isLeft2(e)) { return e; } out[key] = e.right; } return right2(out); }; var flip = (self) => isLeft2(self) ? right2(self.left) : left2(self.right); var adapter2 = /* @__PURE__ */ adapter(); var gen = (...args2) => { const f = args2.length === 1 ? args2[0] : args2[1].bind(args2[0]); const iterator = f(adapter2); let state = iterator.next(); while (!state.done) { const current = isGenKind(state.value) ? state.value.value : yieldWrapGet(state.value); if (isLeft2(current)) { return current; } state = iterator.next(current.right); } return right2(state.value); }; var Do = /* @__PURE__ */ right2({}); var bind2 = /* @__PURE__ */ bind(map, flatMap); var bindTo2 = /* @__PURE__ */ bindTo(map); var let_2 = /* @__PURE__ */ let_(map); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/array.js var isNonEmptyArray = (self) => self.length > 0; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Order.js var make2 = (compare2) => (self, that) => self === that ? 0 : compare2(self, that); var number3 = /* @__PURE__ */ make2((self, that) => self < that ? -1 : 1); var bigint = /* @__PURE__ */ make2((self, that) => self < that ? -1 : 1); var mapInput2 = /* @__PURE__ */ dual(2, (self, f) => make2((b1, b2) => self(f(b1), f(b2)))); var lessThan = (O) => dual(2, (self, that) => O(self, that) === -1); var greaterThan = (O) => dual(2, (self, that) => O(self, that) === 1); var lessThanOrEqualTo = (O) => dual(2, (self, that) => O(self, that) !== 1); var greaterThanOrEqualTo = (O) => dual(2, (self, that) => O(self, that) !== -1); var min = (O) => dual(2, (self, that) => self === that || O(self, that) < 1 ? self : that); var max = (O) => dual(2, (self, that) => self === that || O(self, that) > -1 ? self : that); var clamp = (O) => dual(2, (self, options) => min(O)(options.maximum, max(O)(options.minimum, self))); var between = (O) => dual(2, (self, options) => !lessThan(O)(self, options.minimum) && !greaterThan(O)(self, options.maximum)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Option.js var none2 = () => none; var some2 = some; var isOption2 = isOption; var isNone2 = isNone; var isSome2 = isSome; var match2 = /* @__PURE__ */ dual(2, (self, { onNone, onSome }) => isNone2(self) ? onNone() : onSome(self.value)); var getRight3 = getRight; var getOrElse2 = /* @__PURE__ */ dual(2, (self, onNone) => isNone2(self) ? onNone() : self.value); var orElse2 = /* @__PURE__ */ dual(2, (self, that) => isNone2(self) ? that() : self); var orElseSome = /* @__PURE__ */ dual(2, (self, onNone) => isNone2(self) ? some2(onNone()) : self); var fromNullable2 = (nullableValue) => nullableValue == null ? none2() : some2(nullableValue); var getOrNull2 = /* @__PURE__ */ getOrElse2(constNull); var getOrUndefined2 = /* @__PURE__ */ getOrElse2(constUndefined); var liftThrowable = (f) => (...a) => { try { return some2(f(...a)); } catch (e) { return none2(); } }; var getOrThrowWith2 = /* @__PURE__ */ dual(2, (self, onNone) => { if (isSome2(self)) { return self.value; } throw onNone(); }); var getOrThrow2 = /* @__PURE__ */ getOrThrowWith2(() => new Error("getOrThrow called on a None")); var map2 = /* @__PURE__ */ dual(2, (self, f) => isNone2(self) ? none2() : some2(f(self.value))); var flatMap2 = /* @__PURE__ */ dual(2, (self, f) => isNone2(self) ? none2() : f(self.value)); var filterMap = /* @__PURE__ */ dual(2, (self, f) => isNone2(self) ? none2() : f(self.value)); var filter = /* @__PURE__ */ dual(2, (self, predicate) => filterMap(self, (b) => predicate(b) ? some(b) : none)); var getEquivalence2 = (isEquivalent) => make((x, y) => isNone2(x) ? isNone2(y) : isNone2(y) ? false : isEquivalent(x.value, y.value)); var containsWith = (isEquivalent) => dual(2, (self, a) => isNone2(self) ? false : isEquivalent(self.value, a)); var _equivalence = /* @__PURE__ */ equivalence(); var contains = /* @__PURE__ */ containsWith(_equivalence); var exists = /* @__PURE__ */ dual(2, (self, refinement) => isNone2(self) ? false : refinement(self.value)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Tuple.js var make3 = (...elements) => elements; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Iterable.js var findFirst = /* @__PURE__ */ dual(2, (self, f) => { let i = 0; for (const a of self) { const o = f(a, i); if (isBoolean(o)) { if (o) { return some2(a); } } else { if (isSome2(o)) { return o; } } i++; } return none2(); }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Record.js var fromEntries = Object.fromEntries; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Array.js var allocate = (n) => new Array(n); var makeBy = /* @__PURE__ */ dual(2, (n, f) => { const max3 = Math.max(1, Math.floor(n)); const out = new Array(max3); for (let i = 0; i < max3; i++) { out[i] = f(i); } return out; }); var fromIterable = (collection) => Array.isArray(collection) ? collection : Array.from(collection); var ensure = (self) => Array.isArray(self) ? self : [self]; var match3 = /* @__PURE__ */ dual(2, (self, { onEmpty, onNonEmpty }) => isNonEmptyReadonlyArray(self) ? onNonEmpty(self) : onEmpty()); var matchLeft = /* @__PURE__ */ dual(2, (self, { onEmpty, onNonEmpty }) => isNonEmptyReadonlyArray(self) ? onNonEmpty(headNonEmpty(self), tailNonEmpty(self)) : onEmpty()); var prepend = /* @__PURE__ */ dual(2, (self, head4) => [head4, ...self]); var append = /* @__PURE__ */ dual(2, (self, last3) => [...self, last3]); var appendAll = /* @__PURE__ */ dual(2, (self, that) => fromIterable(self).concat(fromIterable(that))); var isArray = Array.isArray; var isEmptyArray = (self) => self.length === 0; var isEmptyReadonlyArray = isEmptyArray; var isNonEmptyArray2 = isNonEmptyArray; var isNonEmptyReadonlyArray = isNonEmptyArray; var isOutOfBound = (i, as4) => i < 0 || i >= as4.length; var clamp2 = (i, as4) => Math.floor(Math.min(Math.max(0, i), as4.length)); var get = /* @__PURE__ */ dual(2, (self, index) => { const i = Math.floor(index); return isOutOfBound(i, self) ? none2() : some2(self[i]); }); var unsafeGet = /* @__PURE__ */ dual(2, (self, index) => { const i = Math.floor(index); if (isOutOfBound(i, self)) { throw new Error(`Index ${i} out of bounds`); } return self[i]; }); var head = /* @__PURE__ */ get(0); var headNonEmpty = /* @__PURE__ */ unsafeGet(0); var last = (self) => isNonEmptyReadonlyArray(self) ? some2(lastNonEmpty(self)) : none2(); var lastNonEmpty = (self) => self[self.length - 1]; var tailNonEmpty = (self) => self.slice(1); var spanIndex = (self, predicate) => { let i = 0; for (const a of self) { if (!predicate(a, i)) { break; } i++; } return i; }; var span = /* @__PURE__ */ dual(2, (self, predicate) => splitAt(self, spanIndex(self, predicate))); var drop = /* @__PURE__ */ dual(2, (self, n) => { const input = fromIterable(self); return input.slice(clamp2(n, input), input.length); }); var findFirst2 = findFirst; var reverse = (self) => Array.from(self).reverse(); var sort = /* @__PURE__ */ dual(2, (self, O) => { const out = Array.from(self); out.sort(O); return out; }); var zip = /* @__PURE__ */ dual(2, (self, that) => zipWith2(self, that, make3)); var zipWith2 = /* @__PURE__ */ dual(3, (self, that, f) => { const as4 = fromIterable(self); const bs = fromIterable(that); if (isNonEmptyReadonlyArray(as4) && isNonEmptyReadonlyArray(bs)) { const out = [f(headNonEmpty(as4), headNonEmpty(bs))]; const len = Math.min(as4.length, bs.length); for (let i = 1; i < len; i++) { out[i] = f(as4[i], bs[i]); } return out; } return []; }); var containsWith2 = (isEquivalent) => dual(2, (self, a) => { for (const i of self) { if (isEquivalent(a, i)) { return true; } } return false; }); var _equivalence2 = /* @__PURE__ */ equivalence(); var splitAt = /* @__PURE__ */ dual(2, (self, n) => { const input = Array.from(self); const _n = Math.floor(n); if (isNonEmptyReadonlyArray(input)) { if (_n >= 1) { return splitNonEmptyAt(input, _n); } return [[], input]; } return [input, []]; }); var splitNonEmptyAt = /* @__PURE__ */ dual(2, (self, n) => { const _n = Math.max(1, Math.floor(n)); return _n >= self.length ? [copy(self), []] : [prepend(self.slice(1, _n), headNonEmpty(self)), self.slice(_n)]; }); var copy = (self) => self.slice(); var unionWith = /* @__PURE__ */ dual(3, (self, that, isEquivalent) => { const a = fromIterable(self); const b = fromIterable(that); if (isNonEmptyReadonlyArray(a)) { if (isNonEmptyReadonlyArray(b)) { const dedupe2 = dedupeWith(isEquivalent); return dedupe2(appendAll(a, b)); } return a; } return b; }); var union = /* @__PURE__ */ dual(2, (self, that) => unionWith(self, that, _equivalence2)); var intersectionWith = (isEquivalent) => { const has8 = containsWith2(isEquivalent); return dual(2, (self, that) => fromIterable(self).filter((a) => has8(that, a))); }; var intersection = /* @__PURE__ */ intersectionWith(_equivalence2); var empty = () => []; var of = (a) => [a]; var map3 = /* @__PURE__ */ dual(2, (self, f) => self.map(f)); var flatMap3 = /* @__PURE__ */ dual(2, (self, f) => { if (isEmptyReadonlyArray(self)) { return []; } const out = []; for (let i = 0; i < self.length; i++) { const inner = f(self[i], i); for (let j = 0; j < inner.length; j++) { out.push(inner[j]); } } return out; }); var flatten = /* @__PURE__ */ flatMap3(identity); var filterMap2 = /* @__PURE__ */ dual(2, (self, f) => { const as4 = fromIterable(self); const out = []; for (let i = 0; i < as4.length; i++) { const o = f(as4[i], i); if (isSome2(o)) { out.push(o.value); } } return out; }); var reduce = /* @__PURE__ */ dual(3, (self, b, f) => fromIterable(self).reduce((b2, a, i) => f(b2, a, i), b)); var unfold = (b, f) => { const out = []; let next = b; let o; while (isSome2(o = f(next))) { const [a, b2] = o.value; out.push(a); next = b2; } return out; }; var getEquivalence3 = array; var dedupeWith = /* @__PURE__ */ dual(2, (self, isEquivalent) => { const input = fromIterable(self); if (isNonEmptyReadonlyArray(input)) { const out = [headNonEmpty(input)]; const rest = tailNonEmpty(input); for (const r of rest) { if (out.every((a) => !isEquivalent(r, a))) { out.push(r); } } return out; } return []; }); var dedupe = (self) => dedupeWith(self, equivalence()); var join = /* @__PURE__ */ dual(2, (self, sep) => fromIterable(self).join(sep)); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/precondition/PreconditionFailure.js var PreconditionFailure = class _PreconditionFailure extends Error { constructor(interruptExecution = false) { super(); this.interruptExecution = interruptExecution; this.footprint = _PreconditionFailure.SharedFootPrint; } static isFailure(err2) { return err2 != null && err2.footprint === _PreconditionFailure.SharedFootPrint; } }; PreconditionFailure.SharedFootPrint = Symbol.for("fast-check/PreconditionFailure"); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/stream/StreamHelpers.js var Nil = class { [Symbol.iterator]() { return this; } next(value3) { return { value: value3, done: true }; } }; Nil.nil = new Nil(); function nilHelper() { return Nil.nil; } function* mapHelper(g, f) { for (const v of g) { yield f(v); } } function* flatMapHelper(g, f) { for (const v of g) { yield* f(v); } } function* filterHelper(g, f) { for (const v of g) { if (f(v)) { yield v; } } } function* takeNHelper(g, n) { for (let i = 0; i < n; ++i) { const cur = g.next(); if (cur.done) { break; } yield cur.value; } } function* takeWhileHelper(g, f) { let cur = g.next(); while (!cur.done && f(cur.value)) { yield cur.value; cur = g.next(); } } function* joinHelper(g, others) { for (let cur = g.next(); !cur.done; cur = g.next()) { yield cur.value; } for (const s of others) { for (let cur = s.next(); !cur.done; cur = s.next()) { yield cur.value; } } } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/stream/Stream.js var safeSymbolIterator = Symbol.iterator; var Stream = class _Stream { static nil() { return new _Stream(nilHelper()); } static of(...elements) { return new _Stream(elements[safeSymbolIterator]()); } constructor(g) { this.g = g; } next() { return this.g.next(); } [Symbol.iterator]() { return this.g; } map(f) { return new _Stream(mapHelper(this.g, f)); } flatMap(f) { return new _Stream(flatMapHelper(this.g, f)); } dropWhile(f) { let foundEligible = false; function* helper(v) { if (foundEligible || !f(v)) { foundEligible = true; yield v; } } return this.flatMap(helper); } drop(n) { if (n <= 0) { return this; } let idx = 0; function helper() { return idx++ < n; } return this.dropWhile(helper); } takeWhile(f) { return new _Stream(takeWhileHelper(this.g, f)); } take(n) { return new _Stream(takeNHelper(this.g, n)); } filter(f) { return new _Stream(filterHelper(this.g, f)); } every(f) { for (const v of this.g) { if (!f(v)) { return false; } } return true; } has(f) { for (const v of this.g) { if (f(v)) { return [true, v]; } } return [false, null]; } join(...others) { return new _Stream(joinHelper(this.g, others)); } getNthOrLast(nth) { let remaining = nth; let last3 = null; for (const v of this.g) { if (remaining-- === 0) return v; last3 = v; } return last3; } }; function stream(g) { return new Stream(g); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/symbols.js var cloneMethod = Symbol.for("fast-check/cloneMethod"); function hasCloneMethod(instance) { return instance !== null && (typeof instance === "object" || typeof instance === "function") && cloneMethod in instance && typeof instance[cloneMethod] === "function"; } function cloneIfNeeded(instance) { return hasCloneMethod(instance) ? instance[cloneMethod]() : instance; } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/arbitrary/definition/Value.js var safeObjectDefineProperty = Object.defineProperty; var Value = class { constructor(value_, context3, customGetValue = void 0) { this.value_ = value_; this.context = context3; this.hasToBeCloned = customGetValue !== void 0 || hasCloneMethod(value_); this.readOnce = false; if (this.hasToBeCloned) { safeObjectDefineProperty(this, "value", { get: customGetValue !== void 0 ? customGetValue : this.getValue }); } else { this.value = value_; } } getValue() { if (this.hasToBeCloned) { if (!this.readOnce) { this.readOnce = true; return this.value_; } return this.value_[cloneMethod](); } return this.value_; } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/arbitrary/definition/Arbitrary.js var safeObjectAssign = Object.assign; var Arbitrary = class { filter(refinement) { return new FilterArbitrary(this, refinement); } map(mapper, unmapper) { return new MapArbitrary(this, mapper, unmapper); } chain(chainer) { return new ChainArbitrary(this, chainer); } noShrink() { return new NoShrinkArbitrary(this); } noBias() { return new NoBiasArbitrary(this); } }; var ChainArbitrary = class extends Arbitrary { constructor(arb, chainer) { super(); this.arb = arb; this.chainer = chainer; } generate(mrng, biasFactor) { const clonedMrng = mrng.clone(); const src = this.arb.generate(mrng, biasFactor); return this.valueChainer(src, mrng, clonedMrng, biasFactor); } canShrinkWithoutContext(value3) { return false; } shrink(value3, context3) { if (this.isSafeContext(context3)) { return (!context3.stoppedForOriginal ? this.arb.shrink(context3.originalValue, context3.originalContext).map((v) => this.valueChainer(v, context3.clonedMrng.clone(), context3.clonedMrng, context3.originalBias)) : Stream.nil()).join(context3.chainedArbitrary.shrink(value3, context3.chainedContext).map((dst) => { const newContext = safeObjectAssign(safeObjectAssign({}, context3), { chainedContext: dst.context, stoppedForOriginal: true }); return new Value(dst.value_, newContext); })); } return Stream.nil(); } valueChainer(v, generateMrng, clonedMrng, biasFactor) { const chainedArbitrary = this.chainer(v.value_); const dst = chainedArbitrary.generate(generateMrng, biasFactor); const context3 = { originalBias: biasFactor, originalValue: v.value_, originalContext: v.context, stoppedForOriginal: false, chainedArbitrary, chainedContext: dst.context, clonedMrng }; return new Value(dst.value_, context3); } isSafeContext(context3) { return context3 != null && typeof context3 === "object" && "originalBias" in context3 && "originalValue" in context3 && "originalContext" in context3 && "stoppedForOriginal" in context3 && "chainedArbitrary" in context3 && "chainedContext" in context3 && "clonedMrng" in context3; } }; var MapArbitrary = class extends Arbitrary { constructor(arb, mapper, unmapper) { super(); this.arb = arb; this.mapper = mapper; this.unmapper = unmapper; this.bindValueMapper = (v) => this.valueMapper(v); } generate(mrng, biasFactor) { const g = this.arb.generate(mrng, biasFactor); return this.valueMapper(g); } canShrinkWithoutContext(value3) { if (this.unmapper !== void 0) { try { const unmapped = this.unmapper(value3); return this.arb.canShrinkWithoutContext(unmapped); } catch (_err) { return false; } } return false; } shrink(value3, context3) { if (this.isSafeContext(context3)) { return this.arb.shrink(context3.originalValue, context3.originalContext).map(this.bindValueMapper); } if (this.unmapper !== void 0) { const unmapped = this.unmapper(value3); return this.arb.shrink(unmapped, void 0).map(this.bindValueMapper); } return Stream.nil(); } mapperWithCloneIfNeeded(v) { const sourceValue = v.value; const mappedValue = this.mapper(sourceValue); if (v.hasToBeCloned && (typeof mappedValue === "object" && mappedValue !== null || typeof mappedValue === "function") && Object.isExtensible(mappedValue) && !hasCloneMethod(mappedValue)) { Object.defineProperty(mappedValue, cloneMethod, { get: () => () => this.mapperWithCloneIfNeeded(v)[0] }); } return [mappedValue, sourceValue]; } valueMapper(v) { const [mappedValue, sourceValue] = this.mapperWithCloneIfNeeded(v); const context3 = { originalValue: sourceValue, originalContext: v.context }; return new Value(mappedValue, context3); } isSafeContext(context3) { return context3 != null && typeof context3 === "object" && "originalValue" in context3 && "originalContext" in context3; } }; var FilterArbitrary = class extends Arbitrary { constructor(arb, refinement) { super(); this.arb = arb; this.refinement = refinement; this.bindRefinementOnValue = (v) => this.refinementOnValue(v); } generate(mrng, biasFactor) { while (true) { const g = this.arb.generate(mrng, biasFactor); if (this.refinementOnValue(g)) { return g; } } } canShrinkWithoutContext(value3) { return this.arb.canShrinkWithoutContext(value3) && this.refinement(value3); } shrink(value3, context3) { return this.arb.shrink(value3, context3).filter(this.bindRefinementOnValue); } refinementOnValue(v) { return this.refinement(v.value); } }; var NoShrinkArbitrary = class extends Arbitrary { constructor(arb) { super(); this.arb = arb; } generate(mrng, biasFactor) { return this.arb.generate(mrng, biasFactor); } canShrinkWithoutContext(value3) { return this.arb.canShrinkWithoutContext(value3); } shrink(_value, _context) { return Stream.nil(); } noShrink() { return this; } }; var NoBiasArbitrary = class extends Arbitrary { constructor(arb) { super(); this.arb = arb; } generate(mrng, _biasFactor) { return this.arb.generate(mrng, void 0); } canShrinkWithoutContext(value3) { return this.arb.canShrinkWithoutContext(value3); } shrink(value3, context3) { return this.arb.shrink(value3, context3); } noBias() { return this; } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/utils/apply.js var untouchedApply = Function.prototype.apply; var ApplySymbol = Symbol("apply"); function safeExtractApply(f) { try { return f.apply; } catch (err2) { return void 0; } } function safeApplyHacky(f, instance, args2) { const ff = f; ff[ApplySymbol] = untouchedApply; const out = ff[ApplySymbol](instance, args2); delete ff[ApplySymbol]; return out; } function safeApply(f, instance, args2) { if (safeExtractApply(f) === untouchedApply) { return f.apply(instance, args2); } return safeApplyHacky(f, instance, args2); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/utils/globals.js var SArray = typeof Array !== "undefined" ? Array : void 0; var SError = typeof Error !== "undefined" ? Error : void 0; var SString = typeof String !== "undefined" ? String : void 0; var SencodeURIComponent = typeof encodeURIComponent !== "undefined" ? encodeURIComponent : void 0; var SSymbol = Symbol; var untouchedForEach = Array.prototype.forEach; var untouchedIndexOf = Array.prototype.indexOf; var untouchedJoin = Array.prototype.join; var untouchedMap = Array.prototype.map; var untouchedFilter = Array.prototype.filter; var untouchedPush = Array.prototype.push; var untouchedPop = Array.prototype.pop; var untouchedSplice = Array.prototype.splice; var untouchedSlice = Array.prototype.slice; var untouchedSort = Array.prototype.sort; var untouchedEvery = Array.prototype.every; function extractIndexOf(instance) { try { return instance.indexOf; } catch (err2) { return void 0; } } function extractJoin(instance) { try { return instance.join; } catch (err2) { return void 0; } } function extractMap(instance) { try { return instance.map; } catch (err2) { return void 0; } } function extractFilter(instance) { try { return instance.filter; } catch (err2) { return void 0; } } function extractPush(instance) { try { return instance.push; } catch (err2) { return void 0; } } function extractSlice(instance) { try { return instance.slice; } catch (err2) { return void 0; } } function safeIndexOf(instance, ...args2) { if (extractIndexOf(instance) === untouchedIndexOf) { return instance.indexOf(...args2); } return safeApply(untouchedIndexOf, instance, args2); } function safeJoin(instance, ...args2) { if (extractJoin(instance) === untouchedJoin) { return instance.join(...args2); } return safeApply(untouchedJoin, instance, args2); } function safeMap(instance, fn) { if (extractMap(instance) === untouchedMap) { return instance.map(fn); } return safeApply(untouchedMap, instance, [fn]); } function safeFilter(instance, predicate) { if (extractFilter(instance) === untouchedFilter) { return instance.filter(predicate); } return safeApply(untouchedFilter, instance, [predicate]); } function safePush(instance, ...args2) { if (extractPush(instance) === untouchedPush) { return instance.push(...args2); } return safeApply(untouchedPush, instance, args2); } function safeSlice(instance, ...args2) { if (extractSlice(instance) === untouchedSlice) { return instance.slice(...args2); } return safeApply(untouchedSlice, instance, args2); } var untouchedGetTime = Date.prototype.getTime; var untouchedToISOString = Date.prototype.toISOString; function extractGetTime(instance) { try { return instance.getTime; } catch (err2) { return void 0; } } function extractToISOString(instance) { try { return instance.toISOString; } catch (err2) { return void 0; } } function safeGetTime(instance) { if (extractGetTime(instance) === untouchedGetTime) { return instance.getTime(); } return safeApply(untouchedGetTime, instance, []); } function safeToISOString(instance) { if (extractToISOString(instance) === untouchedToISOString) { return instance.toISOString(); } return safeApply(untouchedToISOString, instance, []); } var untouchedAdd = Set.prototype.add; var untouchedHas = Set.prototype.has; var untouchedSet = WeakMap.prototype.set; var untouchedGet = WeakMap.prototype.get; var untouchedMapSet = Map.prototype.set; var untouchedMapGet = Map.prototype.get; function extractMapSet(instance) { try { return instance.set; } catch (err2) { return void 0; } } function extractMapGet(instance) { try { return instance.get; } catch (err2) { return void 0; } } function safeMapSet(instance, key, value3) { if (extractMapSet(instance) === untouchedMapSet) { return instance.set(key, value3); } return safeApply(untouchedMapSet, instance, [key, value3]); } function safeMapGet(instance, key) { if (extractMapGet(instance) === untouchedMapGet) { return instance.get(key); } return safeApply(untouchedMapGet, instance, [key]); } var untouchedSplit = String.prototype.split; var untouchedStartsWith = String.prototype.startsWith; var untouchedEndsWith = String.prototype.endsWith; var untouchedSubstring = String.prototype.substring; var untouchedToLowerCase = String.prototype.toLowerCase; var untouchedToUpperCase = String.prototype.toUpperCase; var untouchedPadStart = String.prototype.padStart; var untouchedCharCodeAt = String.prototype.charCodeAt; var untouchedNormalize = String.prototype.normalize; var untouchedReplace = String.prototype.replace; function extractSplit(instance) { try { return instance.split; } catch (err2) { return void 0; } } function extractCharCodeAt(instance) { try { return instance.charCodeAt; } catch (err2) { return void 0; } } function safeSplit(instance, ...args2) { if (extractSplit(instance) === untouchedSplit) { return instance.split(...args2); } return safeApply(untouchedSplit, instance, args2); } function safeCharCodeAt(instance, index) { if (extractCharCodeAt(instance) === untouchedCharCodeAt) { return instance.charCodeAt(index); } return safeApply(untouchedCharCodeAt, instance, [index]); } var untouchedNumberToString = Number.prototype.toString; function extractNumberToString(instance) { try { return instance.toString; } catch (err2) { return void 0; } } function safeNumberToString(instance, ...args2) { if (extractNumberToString(instance) === untouchedNumberToString) { return instance.toString(...args2); } return safeApply(untouchedNumberToString, instance, args2); } var untouchedToString = Object.prototype.toString; function safeToString(instance) { return safeApply(untouchedToString, instance, []); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/stream/LazyIterableIterator.js var LazyIterableIterator = class { constructor(producer) { this.producer = producer; } [Symbol.iterator]() { if (this.it === void 0) { this.it = this.producer(); } return this.it; } next() { if (this.it === void 0) { this.it = this.producer(); } return this.it.next(); } }; function makeLazy(producer) { return new LazyIterableIterator(producer); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/TupleArbitrary.js var safeArrayIsArray = Array.isArray; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/property/IRawProperty.js var safeMathLog = Math.log; function runIdToFrequency(runId) { return 2 + ~~(safeMathLog(runId + 1) * 0.4342944819032518); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/runner/configuration/GlobalParameters.js var globalParameters = {}; function readConfigureGlobal() { return globalParameters; } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/NoUndefinedAsContext.js var UndefinedContextPlaceholder = Symbol("UndefinedContextPlaceholder"); function noUndefinedAsContext(value3) { if (value3.context !== void 0) { return value3; } if (value3.hasToBeCloned) { return new Value(value3.value_, UndefinedContextPlaceholder, () => value3.value); } return new Value(value3.value_, UndefinedContextPlaceholder); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/property/AsyncProperty.generic.js var AsyncProperty = class _AsyncProperty { constructor(arb, predicate) { this.arb = arb; this.predicate = predicate; const { asyncBeforeEach, asyncAfterEach, beforeEach, afterEach } = readConfigureGlobal() || {}; if (asyncBeforeEach !== void 0 && beforeEach !== void 0) { throw SError(`Global "asyncBeforeEach" and "beforeEach" parameters can't be set at the same time when running async properties`); } if (asyncAfterEach !== void 0 && afterEach !== void 0) { throw SError(`Global "asyncAfterEach" and "afterEach" parameters can't be set at the same time when running async properties`); } this.beforeEachHook = asyncBeforeEach || beforeEach || _AsyncProperty.dummyHook; this.afterEachHook = asyncAfterEach || afterEach || _AsyncProperty.dummyHook; } isAsync() { return true; } generate(mrng, runId) { const value3 = this.arb.generate(mrng, runId != null ? runIdToFrequency(runId) : void 0); return noUndefinedAsContext(value3); } shrink(value3) { if (value3.context === void 0 && !this.arb.canShrinkWithoutContext(value3.value_)) { return Stream.nil(); } const safeContext = value3.context !== UndefinedContextPlaceholder ? value3.context : void 0; return this.arb.shrink(value3.value_, safeContext).map(noUndefinedAsContext); } async runBeforeEach() { await this.beforeEachHook(); } async runAfterEach() { await this.afterEachHook(); } async run(v, dontRunHook) { if (!dontRunHook) { await this.beforeEachHook(); } try { const output = await this.predicate(v); return output == null || output === true ? null : { error: new SError("Property failed by returning false"), errorMessage: "Error: Property failed by returning false" }; } catch (err2) { if (PreconditionFailure.isFailure(err2)) return err2; if (err2 instanceof SError && err2.stack) { return { error: err2, errorMessage: err2.stack }; } return { error: err2, errorMessage: SString(err2) }; } finally { if (!dontRunHook) { await this.afterEachHook(); } } } beforeEach(hookFunction) { const previousBeforeEachHook = this.beforeEachHook; this.beforeEachHook = () => hookFunction(previousBeforeEachHook); return this; } afterEach(hookFunction) { const previousAfterEachHook = this.afterEachHook; this.afterEachHook = () => hookFunction(previousAfterEachHook); return this; } }; AsyncProperty.dummyHook = () => { }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/property/Property.generic.js var Property = class _Property { constructor(arb, predicate) { this.arb = arb; this.predicate = predicate; const { beforeEach = _Property.dummyHook, afterEach = _Property.dummyHook, asyncBeforeEach, asyncAfterEach } = readConfigureGlobal() || {}; if (asyncBeforeEach !== void 0) { throw SError(`"asyncBeforeEach" can't be set when running synchronous properties`); } if (asyncAfterEach !== void 0) { throw SError(`"asyncAfterEach" can't be set when running synchronous properties`); } this.beforeEachHook = beforeEach; this.afterEachHook = afterEach; } isAsync() { return false; } generate(mrng, runId) { const value3 = this.arb.generate(mrng, runId != null ? runIdToFrequency(runId) : void 0); return noUndefinedAsContext(value3); } shrink(value3) { if (value3.context === void 0 && !this.arb.canShrinkWithoutContext(value3.value_)) { return Stream.nil(); } const safeContext = value3.context !== UndefinedContextPlaceholder ? value3.context : void 0; return this.arb.shrink(value3.value_, safeContext).map(noUndefinedAsContext); } runBeforeEach() { this.beforeEachHook(); } runAfterEach() { this.afterEachHook(); } run(v, dontRunHook) { if (!dontRunHook) { this.beforeEachHook(); } try { const output = this.predicate(v); return output == null || output === true ? null : { error: new SError("Property failed by returning false"), errorMessage: "Error: Property failed by returning false" }; } catch (err2) { if (PreconditionFailure.isFailure(err2)) return err2; if (err2 instanceof SError && err2.stack) { return { error: err2, errorMessage: err2.stack }; } return { error: err2, errorMessage: SString(err2) }; } finally { if (!dontRunHook) { this.afterEachHook(); } } } beforeEach(hookFunction) { const previousBeforeEachHook = this.beforeEachHook; this.beforeEachHook = () => hookFunction(previousBeforeEachHook); return this; } afterEach(hookFunction) { const previousAfterEachHook = this.afterEachHook; this.afterEachHook = () => hookFunction(previousAfterEachHook); return this; } }; Property.dummyHook = () => { }; // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/pure-rand-default.js var pure_rand_default_exports = {}; __export(pure_rand_default_exports, { __commitHash: () => __commitHash, __type: () => __type, __version: () => __version, congruential32: () => congruential32, generateN: () => generateN, mersenne: () => MersenneTwister_default, skipN: () => skipN, uniformArrayIntDistribution: () => uniformArrayIntDistribution, uniformBigIntDistribution: () => uniformBigIntDistribution, uniformIntDistribution: () => uniformIntDistribution, unsafeGenerateN: () => unsafeGenerateN, unsafeSkipN: () => unsafeSkipN, unsafeUniformArrayIntDistribution: () => unsafeUniformArrayIntDistribution, unsafeUniformBigIntDistribution: () => unsafeUniformBigIntDistribution, unsafeUniformIntDistribution: () => unsafeUniformIntDistribution, xoroshiro128plus: () => xoroshiro128plus, xorshift128plus: () => xorshift128plus }); // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/generator/RandomGenerator.js function unsafeGenerateN(rng, num) { var out = []; for (var idx = 0; idx != num; ++idx) { out.push(rng.unsafeNext()); } return out; } function generateN(rng, num) { var nextRng = rng.clone(); var out = unsafeGenerateN(nextRng, num); return [out, nextRng]; } function unsafeSkipN(rng, num) { for (var idx = 0; idx != num; ++idx) { rng.unsafeNext(); } } function skipN(rng, num) { var nextRng = rng.clone(); unsafeSkipN(nextRng, num); return nextRng; } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/generator/LinearCongruential.js var MULTIPLIER = 214013; var INCREMENT = 2531011; var MASK = 4294967295; var MASK_2 = (1 << 31) - 1; var computeNextSeed = function(seed) { return seed * MULTIPLIER + INCREMENT & MASK; }; var computeValueFromNextSeed = function(nextseed) { return (nextseed & MASK_2) >> 16; }; var LinearCongruential32 = function() { function LinearCongruential322(seed) { this.seed = seed; } LinearCongruential322.prototype.clone = function() { return new LinearCongruential322(this.seed); }; LinearCongruential322.prototype.next = function() { var nextRng = new LinearCongruential322(this.seed); var out = nextRng.unsafeNext(); return [out, nextRng]; }; LinearCongruential322.prototype.unsafeNext = function() { var s1 = computeNextSeed(this.seed); var v1 = computeValueFromNextSeed(s1); var s2 = computeNextSeed(s1); var v2 = computeValueFromNextSeed(s2); this.seed = computeNextSeed(s2); var v3 = computeValueFromNextSeed(this.seed); var vnext = v3 + (v2 + (v1 << 15) << 15); return vnext | 0; }; LinearCongruential322.prototype.getState = function() { return [this.seed]; }; return LinearCongruential322; }(); function fromState(state) { var valid = state.length === 1; if (!valid) { throw new Error("The state must have been produced by a congruential32 RandomGenerator"); } return new LinearCongruential32(state[0]); } var congruential32 = Object.assign(function(seed) { return new LinearCongruential32(seed); }, { fromState }); // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/generator/MersenneTwister.js var __read = function(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = function(to, from, pack2) { if (pack2 || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var MersenneTwister = function() { function MersenneTwister2(states, index) { this.states = states; this.index = index; } MersenneTwister2.twist = function(prev) { var mt = prev.slice(); for (var idx = 0; idx !== MersenneTwister2.N - MersenneTwister2.M; ++idx) { var y_1 = (mt[idx] & MersenneTwister2.MASK_UPPER) + (mt[idx + 1] & MersenneTwister2.MASK_LOWER); mt[idx] = mt[idx + MersenneTwister2.M] ^ y_1 >>> 1 ^ -(y_1 & 1) & MersenneTwister2.A; } for (var idx = MersenneTwister2.N - MersenneTwister2.M; idx !== MersenneTwister2.N - 1; ++idx) { var y_2 = (mt[idx] & MersenneTwister2.MASK_UPPER) + (mt[idx + 1] & MersenneTwister2.MASK_LOWER); mt[idx] = mt[idx + MersenneTwister2.M - MersenneTwister2.N] ^ y_2 >>> 1 ^ -(y_2 & 1) & MersenneTwister2.A; } var y = (mt[MersenneTwister2.N - 1] & MersenneTwister2.MASK_UPPER) + (mt[0] & MersenneTwister2.MASK_LOWER); mt[MersenneTwister2.N - 1] = mt[MersenneTwister2.M - 1] ^ y >>> 1 ^ -(y & 1) & MersenneTwister2.A; return mt; }; MersenneTwister2.seeded = function(seed) { var out = Array(MersenneTwister2.N); out[0] = seed; for (var idx = 1; idx !== MersenneTwister2.N; ++idx) { var xored = out[idx - 1] ^ out[idx - 1] >>> 30; out[idx] = Math.imul(MersenneTwister2.F, xored) + idx | 0; } return out; }; MersenneTwister2.from = function(seed) { return new MersenneTwister2(MersenneTwister2.twist(MersenneTwister2.seeded(seed)), 0); }; MersenneTwister2.prototype.clone = function() { return new MersenneTwister2(this.states, this.index); }; MersenneTwister2.prototype.next = function() { var nextRng = new MersenneTwister2(this.states, this.index); var out = nextRng.unsafeNext(); return [out, nextRng]; }; MersenneTwister2.prototype.unsafeNext = function() { var y = this.states[this.index]; y ^= this.states[this.index] >>> MersenneTwister2.U; y ^= y << MersenneTwister2.S & MersenneTwister2.B; y ^= y << MersenneTwister2.T & MersenneTwister2.C; y ^= y >>> MersenneTwister2.L; if (++this.index >= MersenneTwister2.N) { this.states = MersenneTwister2.twist(this.states); this.index = 0; } return y; }; MersenneTwister2.prototype.getState = function() { return __spreadArray([this.index], __read(this.states), false); }; MersenneTwister2.fromState = function(state) { var valid = state.length === MersenneTwister2.N + 1 && state[0] >= 0 && state[0] < MersenneTwister2.N; if (!valid) { throw new Error("The state must have been produced by a mersenne RandomGenerator"); } return new MersenneTwister2(state.slice(1), state[0]); }; MersenneTwister2.N = 624; MersenneTwister2.M = 397; MersenneTwister2.R = 31; MersenneTwister2.A = 2567483615; MersenneTwister2.F = 1812433253; MersenneTwister2.U = 11; MersenneTwister2.S = 7; MersenneTwister2.B = 2636928640; MersenneTwister2.T = 15; MersenneTwister2.C = 4022730752; MersenneTwister2.L = 18; MersenneTwister2.MASK_LOWER = Math.pow(2, MersenneTwister2.R) - 1; MersenneTwister2.MASK_UPPER = Math.pow(2, MersenneTwister2.R); return MersenneTwister2; }(); function fromState2(state) { return MersenneTwister.fromState(state); } var MersenneTwister_default = Object.assign(function(seed) { return MersenneTwister.from(seed); }, { fromState: fromState2 }); // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/generator/XorShift.js var XorShift128Plus = function() { function XorShift128Plus2(s01, s00, s11, s10) { this.s01 = s01; this.s00 = s00; this.s11 = s11; this.s10 = s10; } XorShift128Plus2.prototype.clone = function() { return new XorShift128Plus2(this.s01, this.s00, this.s11, this.s10); }; XorShift128Plus2.prototype.next = function() { var nextRng = new XorShift128Plus2(this.s01, this.s00, this.s11, this.s10); var out = nextRng.unsafeNext(); return [out, nextRng]; }; XorShift128Plus2.prototype.unsafeNext = function() { var a0 = this.s00 ^ this.s00 << 23; var a1 = this.s01 ^ (this.s01 << 23 | this.s00 >>> 9); var b0 = a0 ^ this.s10 ^ (a0 >>> 18 | a1 << 14) ^ (this.s10 >>> 5 | this.s11 << 27); var b1 = a1 ^ this.s11 ^ a1 >>> 18 ^ this.s11 >>> 5; var out = this.s00 + this.s10 | 0; this.s01 = this.s11; this.s00 = this.s10; this.s11 = b1; this.s10 = b0; return out; }; XorShift128Plus2.prototype.jump = function() { var nextRng = new XorShift128Plus2(this.s01, this.s00, this.s11, this.s10); nextRng.unsafeJump(); return nextRng; }; XorShift128Plus2.prototype.unsafeJump = function() { var ns01 = 0; var ns00 = 0; var ns11 = 0; var ns10 = 0; var jump = [1667051007, 2321340297, 1548169110, 304075285]; for (var i = 0; i !== 4; ++i) { for (var mask = 1; mask; mask <<= 1) { if (jump[i] & mask) { ns01 ^= this.s01; ns00 ^= this.s00; ns11 ^= this.s11; ns10 ^= this.s10; } this.unsafeNext(); } } this.s01 = ns01; this.s00 = ns00; this.s11 = ns11; this.s10 = ns10; }; XorShift128Plus2.prototype.getState = function() { return [this.s01, this.s00, this.s11, this.s10]; }; return XorShift128Plus2; }(); function fromState3(state) { var valid = state.length === 4; if (!valid) { throw new Error("The state must have been produced by a xorshift128plus RandomGenerator"); } return new XorShift128Plus(state[0], state[1], state[2], state[3]); } var xorshift128plus = Object.assign(function(seed) { return new XorShift128Plus(-1, ~seed, seed | 0, 0); }, { fromState: fromState3 }); // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/generator/XoroShiro.js var XoroShiro128Plus = function() { function XoroShiro128Plus2(s01, s00, s11, s10) { this.s01 = s01; this.s00 = s00; this.s11 = s11; this.s10 = s10; } XoroShiro128Plus2.prototype.clone = function() { return new XoroShiro128Plus2(this.s01, this.s00, this.s11, this.s10); }; XoroShiro128Plus2.prototype.next = function() { var nextRng = new XoroShiro128Plus2(this.s01, this.s00, this.s11, this.s10); var out = nextRng.unsafeNext(); return [out, nextRng]; }; XoroShiro128Plus2.prototype.unsafeNext = function() { var out = this.s00 + this.s10 | 0; var a0 = this.s10 ^ this.s00; var a1 = this.s11 ^ this.s01; var s00 = this.s00; var s01 = this.s01; this.s00 = s00 << 24 ^ s01 >>> 8 ^ a0 ^ a0 << 16; this.s01 = s01 << 24 ^ s00 >>> 8 ^ a1 ^ (a1 << 16 | a0 >>> 16); this.s10 = a1 << 5 ^ a0 >>> 27; this.s11 = a0 << 5 ^ a1 >>> 27; return out; }; XoroShiro128Plus2.prototype.jump = function() { var nextRng = new XoroShiro128Plus2(this.s01, this.s00, this.s11, this.s10); nextRng.unsafeJump(); return nextRng; }; XoroShiro128Plus2.prototype.unsafeJump = function() { var ns01 = 0; var ns00 = 0; var ns11 = 0; var ns10 = 0; var jump = [3639956645, 3750757012, 1261568508, 386426335]; for (var i = 0; i !== 4; ++i) { for (var mask = 1; mask; mask <<= 1) { if (jump[i] & mask) { ns01 ^= this.s01; ns00 ^= this.s00; ns11 ^= this.s11; ns10 ^= this.s10; } this.unsafeNext(); } } this.s01 = ns01; this.s00 = ns00; this.s11 = ns11; this.s10 = ns10; }; XoroShiro128Plus2.prototype.getState = function() { return [this.s01, this.s00, this.s11, this.s10]; }; return XoroShiro128Plus2; }(); function fromState4(state) { var valid = state.length === 4; if (!valid) { throw new Error("The state must have been produced by a xoroshiro128plus RandomGenerator"); } return new XoroShiro128Plus(state[0], state[1], state[2], state[3]); } var xoroshiro128plus = Object.assign(function(seed) { return new XoroShiro128Plus(-1, ~seed, seed | 0, 0); }, { fromState: fromState4 }); // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/internals/ArrayInt.js function addArrayIntToNew(arrayIntA, arrayIntB) { if (arrayIntA.sign !== arrayIntB.sign) { return substractArrayIntToNew(arrayIntA, { sign: -arrayIntB.sign, data: arrayIntB.data }); } var data = []; var reminder = 0; var dataA = arrayIntA.data; var dataB = arrayIntB.data; for (var indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) { var vA = indexA >= 0 ? dataA[indexA] : 0; var vB = indexB >= 0 ? dataB[indexB] : 0; var current = vA + vB + reminder; data.push(current >>> 0); reminder = ~~(current / 4294967296); } if (reminder !== 0) { data.push(reminder); } return { sign: arrayIntA.sign, data: data.reverse() }; } function addOneToPositiveArrayInt(arrayInt) { arrayInt.sign = 1; var data = arrayInt.data; for (var index = data.length - 1; index >= 0; --index) { if (data[index] === 4294967295) { data[index] = 0; } else { data[index] += 1; return arrayInt; } } data.unshift(1); return arrayInt; } function isStrictlySmaller(dataA, dataB) { var maxLength2 = Math.max(dataA.length, dataB.length); for (var index = 0; index < maxLength2; ++index) { var indexA = index + dataA.length - maxLength2; var indexB = index + dataB.length - maxLength2; var vA = indexA >= 0 ? dataA[indexA] : 0; var vB = indexB >= 0 ? dataB[indexB] : 0; if (vA < vB) return true; if (vA > vB) return false; } return false; } function substractArrayIntToNew(arrayIntA, arrayIntB) { if (arrayIntA.sign !== arrayIntB.sign) { return addArrayIntToNew(arrayIntA, { sign: -arrayIntB.sign, data: arrayIntB.data }); } var dataA = arrayIntA.data; var dataB = arrayIntB.data; if (isStrictlySmaller(dataA, dataB)) { var out = substractArrayIntToNew(arrayIntB, arrayIntA); out.sign = -out.sign; return out; } var data = []; var reminder = 0; for (var indexA = dataA.length - 1, indexB = dataB.length - 1; indexA >= 0 || indexB >= 0; --indexA, --indexB) { var vA = indexA >= 0 ? dataA[indexA] : 0; var vB = indexB >= 0 ? dataB[indexB] : 0; var current = vA - vB - reminder; data.push(current >>> 0); reminder = current < 0 ? 1 : 0; } return { sign: arrayIntA.sign, data: data.reverse() }; } function trimArrayIntInplace(arrayInt) { var data = arrayInt.data; var firstNonZero = 0; for (; firstNonZero !== data.length && data[firstNonZero] === 0; ++firstNonZero) { } if (firstNonZero === data.length) { arrayInt.sign = 1; arrayInt.data = [0]; return arrayInt; } data.splice(0, firstNonZero); return arrayInt; } function fromNumberToArrayInt64(out, n) { if (n < 0) { var posN = -n; out.sign = -1; out.data[0] = ~~(posN / 4294967296); out.data[1] = posN >>> 0; } else { out.sign = 1; out.data[0] = ~~(n / 4294967296); out.data[1] = n >>> 0; } return out; } function substractArrayInt64(out, arrayIntA, arrayIntB) { var lowA = arrayIntA.data[1]; var highA = arrayIntA.data[0]; var signA = arrayIntA.sign; var lowB = arrayIntB.data[1]; var highB = arrayIntB.data[0]; var signB = arrayIntB.sign; out.sign = 1; if (signA === 1 && signB === -1) { var low_1 = lowA + lowB; var high = highA + highB + (low_1 > 4294967295 ? 1 : 0); out.data[0] = high >>> 0; out.data[1] = low_1 >>> 0; return out; } var lowFirst = lowA; var highFirst = highA; var lowSecond = lowB; var highSecond = highB; if (signA === -1) { lowFirst = lowB; highFirst = highB; lowSecond = lowA; highSecond = highA; } var reminderLow = 0; var low = lowFirst - lowSecond; if (low < 0) { reminderLow = 1; low = low >>> 0; } out.data[0] = highFirst - highSecond - reminderLow; out.data[1] = low; return out; } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/internals/UnsafeUniformIntDistributionInternal.js function unsafeUniformIntDistributionInternal(rangeSize, rng) { var MaxAllowed = rangeSize > 2 ? ~~(4294967296 / rangeSize) * rangeSize : 4294967296; var deltaV = rng.unsafeNext() + 2147483648; while (deltaV >= MaxAllowed) { deltaV = rng.unsafeNext() + 2147483648; } return deltaV % rangeSize; } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/internals/UnsafeUniformArrayIntDistributionInternal.js function unsafeUniformArrayIntDistributionInternal(out, rangeSize, rng) { var rangeLength = rangeSize.length; while (true) { for (var index = 0; index !== rangeLength; ++index) { var indexRangeSize = index === 0 ? rangeSize[0] + 1 : 4294967296; var g = unsafeUniformIntDistributionInternal(indexRangeSize, rng); out[index] = g; } for (var index = 0; index !== rangeLength; ++index) { var current = out[index]; var currentInRange = rangeSize[index]; if (current < currentInRange) { return out; } else if (current > currentInRange) { break; } } } } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/UnsafeUniformArrayIntDistribution.js function unsafeUniformArrayIntDistribution(from, to, rng) { var rangeSize = trimArrayIntInplace(addOneToPositiveArrayInt(substractArrayIntToNew(to, from))); var emptyArrayIntData = rangeSize.data.slice(0); var g = unsafeUniformArrayIntDistributionInternal(emptyArrayIntData, rangeSize.data, rng); return trimArrayIntInplace(addArrayIntToNew({ sign: 1, data: g }, from)); } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/UniformArrayIntDistribution.js function uniformArrayIntDistribution(from, to, rng) { if (rng != null) { var nextRng = rng.clone(); return [unsafeUniformArrayIntDistribution(from, to, nextRng), nextRng]; } return function(rng2) { var nextRng2 = rng2.clone(); return [unsafeUniformArrayIntDistribution(from, to, nextRng2), nextRng2]; }; } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/UnsafeUniformBigIntDistribution.js var SBigInt = typeof BigInt !== "undefined" ? BigInt : void 0; function unsafeUniformBigIntDistribution(from, to, rng) { var diff8 = to - from + SBigInt(1); var MinRng = SBigInt(-2147483648); var NumValues = SBigInt(4294967296); var FinalNumValues = NumValues; var NumIterations = 1; while (FinalNumValues < diff8) { FinalNumValues *= NumValues; ++NumIterations; } var MaxAcceptedRandom = FinalNumValues - FinalNumValues % diff8; while (true) { var value3 = SBigInt(0); for (var num = 0; num !== NumIterations; ++num) { var out = rng.unsafeNext(); value3 = NumValues * value3 + (SBigInt(out) - MinRng); } if (value3 < MaxAcceptedRandom) { var inDiff = value3 % diff8; return inDiff + from; } } } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/UniformBigIntDistribution.js function uniformBigIntDistribution(from, to, rng) { if (rng != null) { var nextRng = rng.clone(); return [unsafeUniformBigIntDistribution(from, to, nextRng), nextRng]; } return function(rng2) { var nextRng2 = rng2.clone(); return [unsafeUniformBigIntDistribution(from, to, nextRng2), nextRng2]; }; } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/UnsafeUniformIntDistribution.js var safeNumberMaxSafeInteger = Number.MAX_SAFE_INTEGER; var sharedA = { sign: 1, data: [0, 0] }; var sharedB = { sign: 1, data: [0, 0] }; var sharedC = { sign: 1, data: [0, 0] }; var sharedData = [0, 0]; function uniformLargeIntInternal(from, to, rangeSize, rng) { var rangeSizeArrayIntValue = rangeSize <= safeNumberMaxSafeInteger ? fromNumberToArrayInt64(sharedC, rangeSize) : substractArrayInt64(sharedC, fromNumberToArrayInt64(sharedA, to), fromNumberToArrayInt64(sharedB, from)); if (rangeSizeArrayIntValue.data[1] === 4294967295) { rangeSizeArrayIntValue.data[0] += 1; rangeSizeArrayIntValue.data[1] = 0; } else { rangeSizeArrayIntValue.data[1] += 1; } unsafeUniformArrayIntDistributionInternal(sharedData, rangeSizeArrayIntValue.data, rng); return sharedData[0] * 4294967296 + sharedData[1] + from; } function unsafeUniformIntDistribution(from, to, rng) { var rangeSize = to - from; if (rangeSize <= 4294967295) { var g = unsafeUniformIntDistributionInternal(rangeSize + 1, rng); return g + from; } return uniformLargeIntInternal(from, to, rangeSize, rng); } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/distribution/UniformIntDistribution.js function uniformIntDistribution(from, to, rng) { if (rng != null) { var nextRng = rng.clone(); return [unsafeUniformIntDistribution(from, to, nextRng), nextRng]; } return function(rng2) { var nextRng2 = rng2.clone(); return [unsafeUniformIntDistribution(from, to, nextRng2), nextRng2]; }; } // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/pure-rand-default.js var __type = "module"; var __version = "6.1.0"; var __commitHash = "a413dd2b721516be2ef29adffb515c5ae67bfbad"; // ../../node_modules/.pnpm/pure-rand@6.1.0/node_modules/pure-rand/lib/esm/pure-rand.js var pure_rand_default = pure_rand_default_exports; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/runner/configuration/VerbosityLevel.js var VerbosityLevel; (function(VerbosityLevel2) { VerbosityLevel2[VerbosityLevel2["None"] = 0] = "None"; VerbosityLevel2[VerbosityLevel2["Verbose"] = 1] = "Verbose"; VerbosityLevel2[VerbosityLevel2["VeryVerbose"] = 2] = "VeryVerbose"; })(VerbosityLevel || (VerbosityLevel = {})); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/runner/configuration/QualifiedParameters.js var safeDateNow = Date.now; var safeMathMin = Math.min; var safeMathRandom = Math.random; var QualifiedParameters = class _QualifiedParameters { constructor(op) { const p = op || {}; this.seed = _QualifiedParameters.readSeed(p); this.randomType = _QualifiedParameters.readRandomType(p); this.numRuns = _QualifiedParameters.readNumRuns(p); this.verbose = _QualifiedParameters.readVerbose(p); this.maxSkipsPerRun = _QualifiedParameters.readOrDefault(p, "maxSkipsPerRun", 100); this.timeout = _QualifiedParameters.safeTimeout(_QualifiedParameters.readOrDefault(p, "timeout", null)); this.skipAllAfterTimeLimit = _QualifiedParameters.safeTimeout(_QualifiedParameters.readOrDefault(p, "skipAllAfterTimeLimit", null)); this.interruptAfterTimeLimit = _QualifiedParameters.safeTimeout(_QualifiedParameters.readOrDefault(p, "interruptAfterTimeLimit", null)); this.markInterruptAsFailure = _QualifiedParameters.readBoolean(p, "markInterruptAsFailure"); this.skipEqualValues = _QualifiedParameters.readBoolean(p, "skipEqualValues"); this.ignoreEqualValues = _QualifiedParameters.readBoolean(p, "ignoreEqualValues"); this.logger = _QualifiedParameters.readOrDefault(p, "logger", (v) => { console.log(v); }); this.path = _QualifiedParameters.readOrDefault(p, "path", ""); this.unbiased = _QualifiedParameters.readBoolean(p, "unbiased"); this.examples = _QualifiedParameters.readOrDefault(p, "examples", []); this.endOnFailure = _QualifiedParameters.readBoolean(p, "endOnFailure"); this.reporter = _QualifiedParameters.readOrDefault(p, "reporter", null); this.asyncReporter = _QualifiedParameters.readOrDefault(p, "asyncReporter", null); this.errorWithCause = _QualifiedParameters.readBoolean(p, "errorWithCause"); } toParameters() { const orUndefined2 = (value3) => value3 !== null ? value3 : void 0; const parameters = { seed: this.seed, randomType: this.randomType, numRuns: this.numRuns, maxSkipsPerRun: this.maxSkipsPerRun, timeout: orUndefined2(this.timeout), skipAllAfterTimeLimit: orUndefined2(this.skipAllAfterTimeLimit), interruptAfterTimeLimit: orUndefined2(this.interruptAfterTimeLimit), markInterruptAsFailure: this.markInterruptAsFailure, skipEqualValues: this.skipEqualValues, ignoreEqualValues: this.ignoreEqualValues, path: this.path, logger: this.logger, unbiased: this.unbiased, verbose: this.verbose, examples: this.examples, endOnFailure: this.endOnFailure, reporter: orUndefined2(this.reporter), asyncReporter: orUndefined2(this.asyncReporter), errorWithCause: this.errorWithCause }; return parameters; } static read(op) { return new _QualifiedParameters(op); } }; QualifiedParameters.createQualifiedRandomGenerator = (random2) => { return (seed) => { const rng = random2(seed); if (rng.unsafeJump === void 0) { rng.unsafeJump = () => unsafeSkipN(rng, 42); } return rng; }; }; QualifiedParameters.readSeed = (p) => { if (p.seed == null) return safeDateNow() ^ safeMathRandom() * 4294967296; const seed32 = p.seed | 0; if (p.seed === seed32) return seed32; const gap = p.seed - seed32; return seed32 ^ gap * 4294967296; }; QualifiedParameters.readRandomType = (p) => { if (p.randomType == null) return pure_rand_default.xorshift128plus; if (typeof p.randomType === "string") { switch (p.randomType) { case "mersenne": return QualifiedParameters.createQualifiedRandomGenerator(pure_rand_default.mersenne); case "congruential": case "congruential32": return QualifiedParameters.createQualifiedRandomGenerator(pure_rand_default.congruential32); case "xorshift128plus": return pure_rand_default.xorshift128plus; case "xoroshiro128plus": return pure_rand_default.xoroshiro128plus; default: throw new Error(`Invalid random specified: '${p.randomType}'`); } } const mrng = p.randomType(0); if ("min" in mrng && mrng.min !== -2147483648) { throw new Error(`Invalid random number generator: min must equal -0x80000000, got ${String(mrng.min)}`); } if ("max" in mrng && mrng.max !== 2147483647) { throw new Error(`Invalid random number generator: max must equal 0x7fffffff, got ${String(mrng.max)}`); } if ("unsafeJump" in mrng) { return p.randomType; } return QualifiedParameters.createQualifiedRandomGenerator(p.randomType); }; QualifiedParameters.readNumRuns = (p) => { const defaultValue = 100; if (p.numRuns != null) return p.numRuns; if (p.num_runs != null) return p.num_runs; return defaultValue; }; QualifiedParameters.readVerbose = (p) => { if (p.verbose == null) return VerbosityLevel.None; if (typeof p.verbose === "boolean") { return p.verbose === true ? VerbosityLevel.Verbose : VerbosityLevel.None; } if (p.verbose <= VerbosityLevel.None) { return VerbosityLevel.None; } if (p.verbose >= VerbosityLevel.VeryVerbose) { return VerbosityLevel.VeryVerbose; } return p.verbose | 0; }; QualifiedParameters.readBoolean = (p, key) => p[key] === true; QualifiedParameters.readOrDefault = (p, key, defaultValue) => { const value3 = p[key]; return value3 != null ? value3 : defaultValue; }; QualifiedParameters.safeTimeout = (value3) => { if (value3 === null) { return null; } return safeMathMin(value3, 2147483647); }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/utils/stringify.js var safeArrayFrom = Array.from; var safeBufferIsBuffer = typeof Buffer !== "undefined" ? Buffer.isBuffer : void 0; var safeJsonStringify = JSON.stringify; var safeNumberIsNaN = Number.isNaN; var safeObjectKeys = Object.keys; var safeObjectGetOwnPropertySymbols = Object.getOwnPropertySymbols; var safeObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var safeObjectGetPrototypeOf = Object.getPrototypeOf; var safeNegativeInfinity = Number.NEGATIVE_INFINITY; var safePositiveInfinity = Number.POSITIVE_INFINITY; var toStringMethod = Symbol.for("fast-check/toStringMethod"); function hasToStringMethod(instance) { return instance !== null && (typeof instance === "object" || typeof instance === "function") && toStringMethod in instance && typeof instance[toStringMethod] === "function"; } var asyncToStringMethod = Symbol.for("fast-check/asyncToStringMethod"); function hasAsyncToStringMethod(instance) { return instance !== null && (typeof instance === "object" || typeof instance === "function") && asyncToStringMethod in instance && typeof instance[asyncToStringMethod] === "function"; } var findSymbolNameRegex = /^Symbol\((.*)\)$/; function getSymbolDescription(s) { if (s.description !== void 0) return s.description; const m = findSymbolNameRegex.exec(SString(s)); return m && m[1].length ? m[1] : null; } function stringifyNumber(numValue) { switch (numValue) { case 0: return 1 / numValue === safeNegativeInfinity ? "-0" : "0"; case safeNegativeInfinity: return "Number.NEGATIVE_INFINITY"; case safePositiveInfinity: return "Number.POSITIVE_INFINITY"; default: return numValue === numValue ? SString(numValue) : "Number.NaN"; } } function isSparseArray(arr) { let previousNumberedIndex = -1; for (const index in arr) { const numberedIndex = Number(index); if (numberedIndex !== previousNumberedIndex + 1) return true; previousNumberedIndex = numberedIndex; } return previousNumberedIndex + 1 !== arr.length; } function stringifyInternal(value3, previousValues, getAsyncContent) { const currentValues = [...previousValues, value3]; if (typeof value3 === "object") { if (safeIndexOf(previousValues, value3) !== -1) { return "[cyclic]"; } } if (hasAsyncToStringMethod(value3)) { const content = getAsyncContent(value3); if (content.state === "fulfilled") { return content.value; } } if (hasToStringMethod(value3)) { try { return value3[toStringMethod](); } catch (err2) { } } switch (safeToString(value3)) { case "[object Array]": { const arr = value3; if (arr.length >= 50 && isSparseArray(arr)) { const assignments = []; for (const index in arr) { if (!safeNumberIsNaN(Number(index))) safePush(assignments, `${index}:${stringifyInternal(arr[index], currentValues, getAsyncContent)}`); } return assignments.length !== 0 ? `Object.assign(Array(${arr.length}),{${safeJoin(assignments, ",")}})` : `Array(${arr.length})`; } const stringifiedArray = safeJoin(safeMap(arr, (v) => stringifyInternal(v, currentValues, getAsyncContent)), ","); return arr.length === 0 || arr.length - 1 in arr ? `[${stringifiedArray}]` : `[${stringifiedArray},]`; } case "[object BigInt]": return `${value3}n`; case "[object Boolean]": { const unboxedToString = value3 == true ? "true" : "false"; return typeof value3 === "boolean" ? unboxedToString : `new Boolean(${unboxedToString})`; } case "[object Date]": { const d = value3; return safeNumberIsNaN(safeGetTime(d)) ? `new Date(NaN)` : `new Date(${safeJsonStringify(safeToISOString(d))})`; } case "[object Map]": return `new Map(${stringifyInternal(Array.from(value3), currentValues, getAsyncContent)})`; case "[object Null]": return `null`; case "[object Number]": return typeof value3 === "number" ? stringifyNumber(value3) : `new Number(${stringifyNumber(Number(value3))})`; case "[object Object]": { try { const toStringAccessor = value3.toString; if (typeof toStringAccessor === "function" && toStringAccessor !== Object.prototype.toString) { return value3.toString(); } } catch (err2) { return "[object Object]"; } const mapper = (k) => `${k === "__proto__" ? '["__proto__"]' : typeof k === "symbol" ? `[${stringifyInternal(k, currentValues, getAsyncContent)}]` : safeJsonStringify(k)}:${stringifyInternal(value3[k], currentValues, getAsyncContent)}`; const stringifiedProperties = [ ...safeMap(safeObjectKeys(value3), mapper), ...safeMap(safeFilter(safeObjectGetOwnPropertySymbols(value3), (s) => { const descriptor = safeObjectGetOwnPropertyDescriptor(value3, s); return descriptor && descriptor.enumerable; }), mapper) ]; const rawRepr = "{" + safeJoin(stringifiedProperties, ",") + "}"; if (safeObjectGetPrototypeOf(value3) === null) { return rawRepr === "{}" ? "Object.create(null)" : `Object.assign(Object.create(null),${rawRepr})`; } return rawRepr; } case "[object Set]": return `new Set(${stringifyInternal(Array.from(value3), currentValues, getAsyncContent)})`; case "[object String]": return typeof value3 === "string" ? safeJsonStringify(value3) : `new String(${safeJsonStringify(value3)})`; case "[object Symbol]": { const s = value3; if (SSymbol.keyFor(s) !== void 0) { return `Symbol.for(${safeJsonStringify(SSymbol.keyFor(s))})`; } const desc = getSymbolDescription(s); if (desc === null) { return "Symbol()"; } const knownSymbol = desc.startsWith("Symbol.") && SSymbol[desc.substring(7)]; return s === knownSymbol ? desc : `Symbol(${safeJsonStringify(desc)})`; } case "[object Promise]": { const promiseContent = getAsyncContent(value3); switch (promiseContent.state) { case "fulfilled": return `Promise.resolve(${stringifyInternal(promiseContent.value, currentValues, getAsyncContent)})`; case "rejected": return `Promise.reject(${stringifyInternal(promiseContent.value, currentValues, getAsyncContent)})`; case "pending": return `new Promise(() => {/*pending*/})`; case "unknown": default: return `new Promise(() => {/*unknown*/})`; } } case "[object Error]": if (value3 instanceof Error) { return `new Error(${stringifyInternal(value3.message, currentValues, getAsyncContent)})`; } break; case "[object Undefined]": return `undefined`; case "[object Int8Array]": case "[object Uint8Array]": case "[object Uint8ClampedArray]": case "[object Int16Array]": case "[object Uint16Array]": case "[object Int32Array]": case "[object Uint32Array]": case "[object Float32Array]": case "[object Float64Array]": case "[object BigInt64Array]": case "[object BigUint64Array]": { if (typeof safeBufferIsBuffer === "function" && safeBufferIsBuffer(value3)) { return `Buffer.from(${stringifyInternal(safeArrayFrom(value3.values()), currentValues, getAsyncContent)})`; } const valuePrototype = safeObjectGetPrototypeOf(value3); const className = valuePrototype && valuePrototype.constructor && valuePrototype.constructor.name; if (typeof className === "string") { const typedArray = value3; const valuesFromTypedArr = typedArray.values(); return `${className}.from(${stringifyInternal(safeArrayFrom(valuesFromTypedArr), currentValues, getAsyncContent)})`; } break; } } try { return value3.toString(); } catch (_a) { return safeToString(value3); } } function stringify(value3) { return stringifyInternal(value3, [], () => ({ state: "unknown", value: void 0 })); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/runner/DecorateProperty.js var safeDateNow2 = Date.now; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/runner/reporter/ExecutionStatus.js var ExecutionStatus; (function(ExecutionStatus2) { ExecutionStatus2[ExecutionStatus2["Success"] = 0] = "Success"; ExecutionStatus2[ExecutionStatus2["Skipped"] = -1] = "Skipped"; ExecutionStatus2[ExecutionStatus2["Failure"] = 1] = "Failure"; })(ExecutionStatus || (ExecutionStatus = {})); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/runner/reporter/RunExecution.js var RunExecution = class _RunExecution { constructor(verbosity, interruptedAsFailure) { this.verbosity = verbosity; this.interruptedAsFailure = interruptedAsFailure; this.isSuccess = () => this.pathToFailure == null; this.firstFailure = () => this.pathToFailure ? +safeSplit(this.pathToFailure, ":")[0] : -1; this.numShrinks = () => this.pathToFailure ? safeSplit(this.pathToFailure, ":").length - 1 : 0; this.rootExecutionTrees = []; this.currentLevelExecutionTrees = this.rootExecutionTrees; this.failure = null; this.numSkips = 0; this.numSuccesses = 0; this.interrupted = false; } appendExecutionTree(status, value3) { const currentTree = { status, value: value3, children: [] }; this.currentLevelExecutionTrees.push(currentTree); return currentTree; } fail(value3, id, failure) { if (this.verbosity >= VerbosityLevel.Verbose) { const currentTree = this.appendExecutionTree(ExecutionStatus.Failure, value3); this.currentLevelExecutionTrees = currentTree.children; } if (this.pathToFailure == null) this.pathToFailure = `${id}`; else this.pathToFailure += `:${id}`; this.value = value3; this.failure = failure; } skip(value3) { if (this.verbosity >= VerbosityLevel.VeryVerbose) { this.appendExecutionTree(ExecutionStatus.Skipped, value3); } if (this.pathToFailure == null) { ++this.numSkips; } } success(value3) { if (this.verbosity >= VerbosityLevel.VeryVerbose) { this.appendExecutionTree(ExecutionStatus.Success, value3); } if (this.pathToFailure == null) { ++this.numSuccesses; } } interrupt() { this.interrupted = true; } extractFailures() { if (this.isSuccess()) { return []; } const failures2 = []; let cursor = this.rootExecutionTrees; while (cursor.length > 0 && cursor[cursor.length - 1].status === ExecutionStatus.Failure) { const failureTree = cursor[cursor.length - 1]; failures2.push(failureTree.value); cursor = failureTree.children; } return failures2; } toRunDetails(seed, basePath, maxSkips, qParams) { if (!this.isSuccess()) { return { failed: true, interrupted: this.interrupted, numRuns: this.firstFailure() + 1 - this.numSkips, numSkips: this.numSkips, numShrinks: this.numShrinks(), seed, counterexample: this.value, counterexamplePath: _RunExecution.mergePaths(basePath, this.pathToFailure), error: this.failure.errorMessage, errorInstance: this.failure.error, failures: this.extractFailures(), executionSummary: this.rootExecutionTrees, verbose: this.verbosity, runConfiguration: qParams.toParameters() }; } const considerInterruptedAsFailure = this.interruptedAsFailure || this.numSuccesses === 0; const failed = this.numSkips > maxSkips || this.interrupted && considerInterruptedAsFailure; const out = { failed, interrupted: this.interrupted, numRuns: this.numSuccesses, numSkips: this.numSkips, numShrinks: 0, seed, counterexample: null, counterexamplePath: null, error: null, errorInstance: null, failures: [], executionSummary: this.rootExecutionTrees, verbose: this.verbosity, runConfiguration: qParams.toParameters() }; return out; } }; RunExecution.mergePaths = (offsetPath, path2) => { if (offsetPath.length === 0) return path2; const offsetItems = offsetPath.split(":"); const remainingItems = path2.split(":"); const middle = +offsetItems[offsetItems.length - 1] + +remainingItems[0]; return [...offsetItems.slice(0, offsetItems.length - 1), `${middle}`, ...remainingItems.slice(1)].join(":"); }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/random/generator/Random.js var Random = class _Random { constructor(sourceRng) { this.internalRng = sourceRng.clone(); } clone() { return new _Random(this.internalRng); } next(bits) { return unsafeUniformIntDistribution(0, (1 << bits) - 1, this.internalRng); } nextBoolean() { return unsafeUniformIntDistribution(0, 1, this.internalRng) == 1; } nextInt(min3, max3) { return unsafeUniformIntDistribution(min3 == null ? _Random.MIN_INT : min3, max3 == null ? _Random.MAX_INT : max3, this.internalRng); } nextBigInt(min3, max3) { return unsafeUniformBigIntDistribution(min3, max3, this.internalRng); } nextArrayInt(min3, max3) { return unsafeUniformArrayIntDistribution(min3, max3, this.internalRng); } nextDouble() { const a = this.next(26); const b = this.next(27); return (a * _Random.DBL_FACTOR + b) * _Random.DBL_DIVISOR; } getState() { if ("getState" in this.internalRng && typeof this.internalRng.getState === "function") { return this.internalRng.getState(); } return void 0; } }; Random.MIN_INT = 2147483648 | 0; Random.MAX_INT = 2147483647 | 0; Random.DBL_FACTOR = Math.pow(2, 27); Random.DBL_DIVISOR = Math.pow(2, -53); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/builders/StableArbitraryGeneratorCache.js var safeArrayIsArray2 = Array.isArray; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/BiasNumericRange.js var safeMathFloor = Math.floor; var safeMathLog2 = Math.log; function integerLogLike(v) { return safeMathFloor(safeMathLog2(v) / safeMathLog2(2)); } function biasNumericRange(min3, max3, logLike) { if (min3 === max3) { return [{ min: min3, max: max3 }]; } if (min3 < 0 && max3 > 0) { const logMin = logLike(-min3); const logMax = logLike(max3); return [ { min: -logMin, max: logMax }, { min: max3 - logMax, max: max3 }, { min: min3, max: min3 + logMin } ]; } const logGap = logLike(max3 - min3); const arbCloseToMin = { min: min3, max: min3 + logGap }; const arbCloseToMax = { min: max3 - logGap, max: max3 }; return min3 < 0 ? [arbCloseToMax, arbCloseToMin] : [arbCloseToMin, arbCloseToMax]; } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/ShrinkInteger.js var safeMathCeil = Math.ceil; var safeMathFloor2 = Math.floor; function halvePosInteger(n) { return safeMathFloor2(n / 2); } function halveNegInteger(n) { return safeMathCeil(n / 2); } function shrinkInteger(current, target, tryTargetAsap) { const realGap = current - target; function* shrinkDecr() { let previous = tryTargetAsap ? void 0 : target; const gap = tryTargetAsap ? realGap : halvePosInteger(realGap); for (let toremove = gap; toremove > 0; toremove = halvePosInteger(toremove)) { const next = toremove === realGap ? target : current - toremove; yield new Value(next, previous); previous = next; } } function* shrinkIncr() { let previous = tryTargetAsap ? void 0 : target; const gap = tryTargetAsap ? realGap : halveNegInteger(realGap); for (let toremove = gap; toremove < 0; toremove = halveNegInteger(toremove)) { const next = toremove === realGap ? target : current - toremove; yield new Value(next, previous); previous = next; } } return realGap > 0 ? stream(shrinkDecr()) : stream(shrinkIncr()); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/IntegerArbitrary.js var safeMathSign = Math.sign; var safeNumberIsInteger = Number.isInteger; var safeObjectIs = Object.is; var IntegerArbitrary = class _IntegerArbitrary extends Arbitrary { constructor(min3, max3) { super(); this.min = min3; this.max = max3; } generate(mrng, biasFactor) { const range = this.computeGenerateRange(mrng, biasFactor); return new Value(mrng.nextInt(range.min, range.max), void 0); } canShrinkWithoutContext(value3) { return typeof value3 === "number" && safeNumberIsInteger(value3) && !safeObjectIs(value3, -0) && this.min <= value3 && value3 <= this.max; } shrink(current, context3) { if (!_IntegerArbitrary.isValidContext(current, context3)) { const target = this.defaultTarget(); return shrinkInteger(current, target, true); } if (this.isLastChanceTry(current, context3)) { return Stream.of(new Value(context3, void 0)); } return shrinkInteger(current, context3, false); } defaultTarget() { if (this.min <= 0 && this.max >= 0) { return 0; } return this.min < 0 ? this.max : this.min; } computeGenerateRange(mrng, biasFactor) { if (biasFactor === void 0 || mrng.nextInt(1, biasFactor) !== 1) { return { min: this.min, max: this.max }; } const ranges = biasNumericRange(this.min, this.max, integerLogLike); if (ranges.length === 1) { return ranges[0]; } const id = mrng.nextInt(-2 * (ranges.length - 1), ranges.length - 2); return id < 0 ? ranges[0] : ranges[id + 1]; } isLastChanceTry(current, context3) { if (current > 0) return current === context3 + 1 && current > this.min; if (current < 0) return current === context3 - 1 && current < this.max; return false; } static isValidContext(current, context3) { if (context3 === void 0) { return false; } if (typeof context3 !== "number") { throw new Error(`Invalid context type passed to IntegerArbitrary (#1)`); } if (context3 !== 0 && safeMathSign(current) !== safeMathSign(context3)) { throw new Error(`Invalid context value passed to IntegerArbitrary (#2)`); } return true; } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/integer.js var safeNumberIsInteger2 = Number.isInteger; function buildCompleteIntegerConstraints(constraints) { const min3 = constraints.min !== void 0 ? constraints.min : -2147483648; const max3 = constraints.max !== void 0 ? constraints.max : 2147483647; return { min: min3, max: max3 }; } function integer(constraints = {}) { const fullConstraints = buildCompleteIntegerConstraints(constraints); if (fullConstraints.min > fullConstraints.max) { throw new Error("fc.integer maximum value should be equal or greater than the minimum one"); } if (!safeNumberIsInteger2(fullConstraints.min)) { throw new Error("fc.integer minimum value should be an integer"); } if (!safeNumberIsInteger2(fullConstraints.max)) { throw new Error("fc.integer maximum value should be an integer"); } return new IntegerArbitrary(fullConstraints.min, fullConstraints.max); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/DepthContext.js var depthContextCache = /* @__PURE__ */ new Map(); function getDepthContextFor(contextMeta) { if (contextMeta === void 0) { return { depth: 0 }; } if (typeof contextMeta !== "string") { return contextMeta; } const cachedContext = safeMapGet(depthContextCache, contextMeta); if (cachedContext !== void 0) { return cachedContext; } const context3 = { depth: 0 }; safeMapSet(depthContextCache, contextMeta, context3); return context3; } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/implementations/NoopSlicedGenerator.js var NoopSlicedGenerator = class { constructor(arb, mrng, biasFactor) { this.arb = arb; this.mrng = mrng; this.biasFactor = biasFactor; } attemptExact() { return; } next() { return this.arb.generate(this.mrng, this.biasFactor); } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/implementations/SlicedBasedGenerator.js var safeMathMin2 = Math.min; var safeMathMax = Math.max; var SlicedBasedGenerator = class { constructor(arb, mrng, slices, biasFactor) { this.arb = arb; this.mrng = mrng; this.slices = slices; this.biasFactor = biasFactor; this.activeSliceIndex = 0; this.nextIndexInSlice = 0; this.lastIndexInSlice = -1; } attemptExact(targetLength) { if (targetLength !== 0 && this.mrng.nextInt(1, this.biasFactor) === 1) { const eligibleIndices = []; for (let index = 0; index !== this.slices.length; ++index) { const slice = this.slices[index]; if (slice.length === targetLength) { safePush(eligibleIndices, index); } } if (eligibleIndices.length === 0) { return; } this.activeSliceIndex = eligibleIndices[this.mrng.nextInt(0, eligibleIndices.length - 1)]; this.nextIndexInSlice = 0; this.lastIndexInSlice = targetLength - 1; } } next() { if (this.nextIndexInSlice <= this.lastIndexInSlice) { return new Value(this.slices[this.activeSliceIndex][this.nextIndexInSlice++], void 0); } if (this.mrng.nextInt(1, this.biasFactor) !== 1) { return this.arb.generate(this.mrng, this.biasFactor); } this.activeSliceIndex = this.mrng.nextInt(0, this.slices.length - 1); const slice = this.slices[this.activeSliceIndex]; if (this.mrng.nextInt(1, this.biasFactor) !== 1) { this.nextIndexInSlice = 1; this.lastIndexInSlice = slice.length - 1; return new Value(slice[0], void 0); } const rangeBoundaryA = this.mrng.nextInt(0, slice.length - 1); const rangeBoundaryB = this.mrng.nextInt(0, slice.length - 1); this.nextIndexInSlice = safeMathMin2(rangeBoundaryA, rangeBoundaryB); this.lastIndexInSlice = safeMathMax(rangeBoundaryA, rangeBoundaryB); return new Value(slice[this.nextIndexInSlice++], void 0); } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/BuildSlicedGenerator.js function buildSlicedGenerator(arb, mrng, slices, biasFactor) { if (biasFactor === void 0 || slices.length === 0 || mrng.nextInt(1, biasFactor) !== 1) { return new NoopSlicedGenerator(arb, mrng, biasFactor); } return new SlicedBasedGenerator(arb, mrng, slices, biasFactor); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/ArrayArbitrary.js var safeMathFloor3 = Math.floor; var safeMathLog3 = Math.log; var safeMathMax2 = Math.max; var safeArrayIsArray3 = Array.isArray; function biasedMaxLength(minLength2, maxLength2) { if (minLength2 === maxLength2) { return minLength2; } return minLength2 + safeMathFloor3(safeMathLog3(maxLength2 - minLength2) / safeMathLog3(2)); } var ArrayArbitrary = class _ArrayArbitrary extends Arbitrary { constructor(arb, minLength2, maxGeneratedLength, maxLength2, depthIdentifier, setBuilder, customSlices) { super(); this.arb = arb; this.minLength = minLength2; this.maxGeneratedLength = maxGeneratedLength; this.maxLength = maxLength2; this.setBuilder = setBuilder; this.customSlices = customSlices; this.lengthArb = integer({ min: minLength2, max: maxGeneratedLength }); this.depthContext = getDepthContextFor(depthIdentifier); } preFilter(tab) { if (this.setBuilder === void 0) { return tab; } const s = this.setBuilder(); for (let index = 0; index !== tab.length; ++index) { s.tryAdd(tab[index]); } return s.getData(); } static makeItCloneable(vs, shrinkables) { vs[cloneMethod] = () => { const cloned = []; for (let idx = 0; idx !== shrinkables.length; ++idx) { safePush(cloned, shrinkables[idx].value); } this.makeItCloneable(cloned, shrinkables); return cloned; }; return vs; } generateNItemsNoDuplicates(setBuilder, N, mrng, biasFactorItems) { let numSkippedInRow = 0; const s = setBuilder(); const slicedGenerator = buildSlicedGenerator(this.arb, mrng, this.customSlices, biasFactorItems); while (s.size() < N && numSkippedInRow < this.maxGeneratedLength) { const current = slicedGenerator.next(); if (s.tryAdd(current)) { numSkippedInRow = 0; } else { numSkippedInRow += 1; } } return s.getData(); } safeGenerateNItemsNoDuplicates(setBuilder, N, mrng, biasFactorItems) { const depthImpact = safeMathMax2(0, N - biasedMaxLength(this.minLength, this.maxGeneratedLength)); this.depthContext.depth += depthImpact; try { return this.generateNItemsNoDuplicates(setBuilder, N, mrng, biasFactorItems); } finally { this.depthContext.depth -= depthImpact; } } generateNItems(N, mrng, biasFactorItems) { const items = []; const slicedGenerator = buildSlicedGenerator(this.arb, mrng, this.customSlices, biasFactorItems); slicedGenerator.attemptExact(N); for (let index = 0; index !== N; ++index) { const current = slicedGenerator.next(); safePush(items, current); } return items; } safeGenerateNItems(N, mrng, biasFactorItems) { const depthImpact = safeMathMax2(0, N - biasedMaxLength(this.minLength, this.maxGeneratedLength)); this.depthContext.depth += depthImpact; try { return this.generateNItems(N, mrng, biasFactorItems); } finally { this.depthContext.depth -= depthImpact; } } wrapper(itemsRaw, shrunkOnce, itemsRawLengthContext, startIndex) { const items = shrunkOnce ? this.preFilter(itemsRaw) : itemsRaw; let cloneable = false; const vs = []; const itemsContexts = []; for (let idx = 0; idx !== items.length; ++idx) { const s = items[idx]; cloneable = cloneable || s.hasToBeCloned; safePush(vs, s.value); safePush(itemsContexts, s.context); } if (cloneable) { _ArrayArbitrary.makeItCloneable(vs, items); } const context3 = { shrunkOnce, lengthContext: itemsRaw.length === items.length && itemsRawLengthContext !== void 0 ? itemsRawLengthContext : void 0, itemsContexts, startIndex }; return new Value(vs, context3); } generate(mrng, biasFactor) { const biasMeta = this.applyBias(mrng, biasFactor); const targetSize = biasMeta.size; const items = this.setBuilder !== void 0 ? this.safeGenerateNItemsNoDuplicates(this.setBuilder, targetSize, mrng, biasMeta.biasFactorItems) : this.safeGenerateNItems(targetSize, mrng, biasMeta.biasFactorItems); return this.wrapper(items, false, void 0, 0); } applyBias(mrng, biasFactor) { if (biasFactor === void 0) { return { size: this.lengthArb.generate(mrng, void 0).value }; } if (this.minLength === this.maxGeneratedLength) { return { size: this.lengthArb.generate(mrng, void 0).value, biasFactorItems: biasFactor }; } if (mrng.nextInt(1, biasFactor) !== 1) { return { size: this.lengthArb.generate(mrng, void 0).value }; } if (mrng.nextInt(1, biasFactor) !== 1 || this.minLength === this.maxGeneratedLength) { return { size: this.lengthArb.generate(mrng, void 0).value, biasFactorItems: biasFactor }; } const maxBiasedLength = biasedMaxLength(this.minLength, this.maxGeneratedLength); const targetSizeValue = integer({ min: this.minLength, max: maxBiasedLength }).generate(mrng, void 0); return { size: targetSizeValue.value, biasFactorItems: biasFactor }; } canShrinkWithoutContext(value3) { if (!safeArrayIsArray3(value3) || this.minLength > value3.length || value3.length > this.maxLength) { return false; } for (let index = 0; index !== value3.length; ++index) { if (!(index in value3)) { return false; } if (!this.arb.canShrinkWithoutContext(value3[index])) { return false; } } const filtered = this.preFilter(safeMap(value3, (item) => new Value(item, void 0))); return filtered.length === value3.length; } shrinkItemByItem(value3, safeContext, endIndex) { const shrinks = []; for (let index = safeContext.startIndex; index < endIndex; ++index) { safePush(shrinks, makeLazy(() => this.arb.shrink(value3[index], safeContext.itemsContexts[index]).map((v) => { const beforeCurrent = safeMap(safeSlice(value3, 0, index), (v2, i) => new Value(cloneIfNeeded(v2), safeContext.itemsContexts[i])); const afterCurrent = safeMap(safeSlice(value3, index + 1), (v2, i) => new Value(cloneIfNeeded(v2), safeContext.itemsContexts[i + index + 1])); return [ [...beforeCurrent, v, ...afterCurrent], void 0, index ]; }))); } return Stream.nil().join(...shrinks); } shrinkImpl(value3, context3) { if (value3.length === 0) { return Stream.nil(); } const safeContext = context3 !== void 0 ? context3 : { shrunkOnce: false, lengthContext: void 0, itemsContexts: [], startIndex: 0 }; return this.lengthArb.shrink(value3.length, safeContext.lengthContext).drop(safeContext.shrunkOnce && safeContext.lengthContext === void 0 && value3.length > this.minLength + 1 ? 1 : 0).map((lengthValue) => { const sliceStart = value3.length - lengthValue.value; return [ safeMap(safeSlice(value3, sliceStart), (v, index) => new Value(cloneIfNeeded(v), safeContext.itemsContexts[index + sliceStart])), lengthValue.context, 0 ]; }).join(makeLazy(() => value3.length > this.minLength ? this.shrinkItemByItem(value3, safeContext, 1) : this.shrinkItemByItem(value3, safeContext, value3.length))).join(value3.length > this.minLength ? makeLazy(() => { const subContext = { shrunkOnce: false, lengthContext: void 0, itemsContexts: safeSlice(safeContext.itemsContexts, 1), startIndex: 0 }; return this.shrinkImpl(safeSlice(value3, 1), subContext).filter((v) => this.minLength <= v[0].length + 1).map((v) => { return [[new Value(cloneIfNeeded(value3[0]), safeContext.itemsContexts[0]), ...v[0]], void 0, 0]; }); }) : Stream.nil()); } shrink(value3, context3) { return this.shrinkImpl(value3, context3).map((contextualValue) => this.wrapper(contextualValue[0], true, contextualValue[1], contextualValue[2])); } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/MaxLengthFromMinLength.js var safeMathFloor4 = Math.floor; var safeMathMin3 = Math.min; var MaxLengthUpperBound = 2147483647; var orderedSize = ["xsmall", "small", "medium", "large", "xlarge"]; var orderedRelativeSize = ["-4", "-3", "-2", "-1", "=", "+1", "+2", "+3", "+4"]; var DefaultSize = "small"; function maxLengthFromMinLength(minLength2, size7) { switch (size7) { case "xsmall": return safeMathFloor4(1.1 * minLength2) + 1; case "small": return 2 * minLength2 + 10; case "medium": return 11 * minLength2 + 100; case "large": return 101 * minLength2 + 1e3; case "xlarge": return 1001 * minLength2 + 1e4; default: throw new Error(`Unable to compute lengths based on received size: ${size7}`); } } function relativeSizeToSize(size7, defaultSize) { const sizeInRelative = safeIndexOf(orderedRelativeSize, size7); if (sizeInRelative === -1) { return size7; } const defaultSizeInSize = safeIndexOf(orderedSize, defaultSize); if (defaultSizeInSize === -1) { throw new Error(`Unable to offset size based on the unknown defaulted one: ${defaultSize}`); } const resultingSizeInSize = defaultSizeInSize + sizeInRelative - 4; return resultingSizeInSize < 0 ? orderedSize[0] : resultingSizeInSize >= orderedSize.length ? orderedSize[orderedSize.length - 1] : orderedSize[resultingSizeInSize]; } function maxGeneratedLengthFromSizeForArbitrary(size7, minLength2, maxLength2, specifiedMaxLength) { const { baseSize: defaultSize = DefaultSize, defaultSizeToMaxWhenMaxSpecified } = readConfigureGlobal() || {}; const definedSize = size7 !== void 0 ? size7 : specifiedMaxLength && defaultSizeToMaxWhenMaxSpecified ? "max" : defaultSize; if (definedSize === "max") { return maxLength2; } const finalSize = relativeSizeToSize(definedSize, defaultSize); return safeMathMin3(maxLengthFromMinLength(minLength2, finalSize), maxLength2); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/array.js function array3(arb, constraints = {}) { const size7 = constraints.size; const minLength2 = constraints.minLength || 0; const maxLengthOrUnset = constraints.maxLength; const depthIdentifier = constraints.depthIdentifier; const maxLength2 = maxLengthOrUnset !== void 0 ? maxLengthOrUnset : MaxLengthUpperBound; const specifiedMaxLength = maxLengthOrUnset !== void 0; const maxGeneratedLength = maxGeneratedLengthFromSizeForArbitrary(size7, minLength2, maxLength2, specifiedMaxLength); const customSlices = constraints.experimentalCustomSlices || []; return new ArrayArbitrary(arb, minLength2, maxGeneratedLength, maxLength2, depthIdentifier, void 0, customSlices); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/mappers/IndexToCharString.js var indexToCharStringMapper = String.fromCodePoint; function indexToCharStringUnmapper(c) { if (typeof c !== "string") { throw new Error("Cannot unmap non-string"); } if (c.length === 0 || c.length > 2) { throw new Error("Cannot unmap string with more or less than one character"); } const c1 = safeCharCodeAt(c, 0); if (c.length === 1) { return c1; } const c2 = safeCharCodeAt(c, 1); if (c1 < 55296 || c1 > 56319 || c2 < 56320 || c2 > 57343) { throw new Error("Cannot unmap invalid surrogate pairs"); } return c.codePointAt(0); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/builders/CharacterArbitraryBuilder.js function buildCharacterArbitrary(min3, max3, mapToCode, unmapFromCode) { return integer({ min: min3, max: max3 }).map((n) => indexToCharStringMapper(mapToCode(n)), (c) => unmapFromCode(indexToCharStringUnmapper(c))); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/mappers/IndexToPrintableIndex.js function indexToPrintableIndexMapper(v) { if (v < 95) return v + 32; if (v <= 126) return v - 95; return v; } function indexToPrintableIndexUnmapper(v) { if (v >= 32 && v <= 126) return v - 32; if (v >= 0 && v <= 31) return v + 95; return v; } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/char.js function identity2(v) { return v; } function char() { return buildCharacterArbitrary(32, 126, identity2, identity2); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/fullUnicode.js var gapSize = 57343 + 1 - 55296; function unicodeMapper(v) { if (v < 55296) return indexToPrintableIndexMapper(v); return v + gapSize; } function unicodeUnmapper(v) { if (v < 55296) return indexToPrintableIndexUnmapper(v); if (v <= 57343) return -1; return v - gapSize; } function fullUnicode() { return buildCharacterArbitrary(0, 1114111 - gapSize, unicodeMapper, unicodeUnmapper); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/unicode.js var gapSize2 = 57343 + 1 - 55296; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/context.js var ContextImplem = class _ContextImplem { constructor() { this.receivedLogs = []; } log(data) { this.receivedLogs.push(data); } size() { return this.receivedLogs.length; } toString() { return JSON.stringify({ logs: this.receivedLogs }); } [cloneMethod]() { return new _ContextImplem(); } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/mappers/TimeToDate.js var safeNaN = Number.NaN; var safeNumberIsNaN2 = Number.isNaN; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/date.js var safeNumberIsNaN3 = Number.isNaN; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/CloneArbitrary.js var safeIsArray = Array.isArray; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/StrictlyEqualSet.js var safeNumberIsNaN4 = Number.isNaN; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/FrequencyArbitrary.js var safePositiveInfinity2 = Number.POSITIVE_INFINITY; var safeMaxSafeInteger = Number.MAX_SAFE_INTEGER; var safeNumberIsInteger3 = Number.isInteger; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/nat.js var safeNumberIsInteger4 = Number.isInteger; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/builders/CharacterRangeArbitraryBuilder.js var safeStringFromCharCode = String.fromCharCode; function percentCharArbMapper(c) { const encoded = SencodeURIComponent(c); return c !== encoded ? encoded : `%${safeNumberToString(safeCharCodeAt(c, 0), 16)}`; } function percentCharArbUnmapper(value3) { if (typeof value3 !== "string") { throw new Error("Unsupported"); } const decoded = decodeURIComponent(value3); return decoded; } var percentCharArb = fullUnicode().map(percentCharArbMapper, percentCharArbUnmapper); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/GraphemeRangesHelpers.js var safeStringFromCodePoint = String.fromCodePoint; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/AdapterArbitrary.js var AdaptedValue = Symbol("adapted-value"); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/DoubleHelpers.js var safeNegativeInfinity2 = Number.NEGATIVE_INFINITY; var safePositiveInfinity3 = Number.POSITIVE_INFINITY; var safeEpsilon = Number.EPSILON; var f64 = new Float64Array(1); var u32 = new Uint32Array(f64.buffer, f64.byteOffset); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/FloatingOnlyHelpers.js var safeNumberIsInteger5 = Number.isInteger; var safeNegativeInfinity3 = Number.NEGATIVE_INFINITY; var safePositiveInfinity4 = Number.POSITIVE_INFINITY; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/DoubleOnlyHelpers.js var safeNegativeInfinity4 = Number.NEGATIVE_INFINITY; var safePositiveInfinity5 = Number.POSITIVE_INFINITY; var safeMaxValue = Number.MAX_VALUE; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/double.js var safeNumberIsInteger6 = Number.isInteger; var safeNumberIsNaN5 = Number.isNaN; var safeNegativeInfinity5 = Number.NEGATIVE_INFINITY; var safePositiveInfinity6 = Number.POSITIVE_INFINITY; var safeMaxValue2 = Number.MAX_VALUE; var safeNaN2 = Number.NaN; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/FloatHelpers.js var safeNegativeInfinity6 = Number.NEGATIVE_INFINITY; var safePositiveInfinity7 = Number.POSITIVE_INFINITY; var MIN_VALUE_32 = 2 ** -126 * 2 ** -23; var MAX_VALUE_32 = 2 ** 127 * (1 + (2 ** 23 - 1) / 2 ** 23); var EPSILON_32 = 2 ** -23; var f32 = new Float32Array(1); var u322 = new Uint32Array(f32.buffer, f32.byteOffset); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/FloatOnlyHelpers.js var safeNegativeInfinity7 = Number.NEGATIVE_INFINITY; var safePositiveInfinity8 = Number.POSITIVE_INFINITY; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/float.js var safeNumberIsInteger7 = Number.isInteger; var safeNumberIsNaN6 = Number.isNaN; var safeNegativeInfinity8 = Number.NEGATIVE_INFINITY; var safePositiveInfinity9 = Number.POSITIVE_INFINITY; var safeNaN3 = Number.NaN; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/TextEscaper.js function escapeForTemplateString(originalText) { return originalText.replace(/([$`\\])/g, "\\$1").replace(/\r/g, "\\r"); } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/maxSafeInteger.js var safeMinSafeInteger = Number.MIN_SAFE_INTEGER; var safeMaxSafeInteger2 = Number.MAX_SAFE_INTEGER; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/maxSafeNat.js var safeMaxSafeInteger3 = Number.MAX_SAFE_INTEGER; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/mappers/NatToStringifiedNat.js var safeNumberParseInt = Number.parseInt; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/sparseArray.js var safeArrayIsArray4 = SArray.isArray; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/builders/PartialRecordArbitraryBuilder.js var noKeyValue = Symbol("no-key"); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/SubarrayArbitrary.js var safeArrayIsArray5 = Array.isArray; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/mappers/UintToBase32String.js var encodeSymbolLookupTable = { 10: "A", 11: "B", 12: "C", 13: "D", 14: "E", 15: "F", 16: "G", 17: "H", 18: "J", 19: "K", 20: "M", 21: "N", 22: "P", 23: "Q", 24: "R", 25: "S", 26: "T", 27: "V", 28: "W", 29: "X", 30: "Y", 31: "Z" }; function encodeSymbol(symbol3) { return symbol3 < 10 ? SString(symbol3) : encodeSymbolLookupTable[symbol3]; } function pad(value3, paddingLength) { let extraPadding = ""; while (value3.length + extraPadding.length < paddingLength) { extraPadding += "0"; } return extraPadding + value3; } function smallUintToBase32StringMapper(num) { let base32Str = ""; for (let remaining = num; remaining !== 0; ) { const next = remaining >> 5; const current = remaining - (next << 5); base32Str = encodeSymbol(current) + base32Str; remaining = next; } return base32Str; } function uintToBase32StringMapper(num, paddingLength) { const head4 = ~~(num / 1073741824); const tail = num & 1073741823; return pad(smallUintToBase32StringMapper(head4), paddingLength - 6) + pad(smallUintToBase32StringMapper(tail), 6); } function paddedUintToBase32StringMapper(paddingLength) { return function padded(num) { return uintToBase32StringMapper(num, paddingLength); }; } // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/ulid.js var padded10Mapper = paddedUintToBase32StringMapper(10); var padded8Mapper = paddedUintToBase32StringMapper(8); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/model/commands/CommandsIterable.js var CommandsIterable = class _CommandsIterable { constructor(commands2, metadataForReplay) { this.commands = commands2; this.metadataForReplay = metadataForReplay; } [Symbol.iterator]() { return this.commands[Symbol.iterator](); } [cloneMethod]() { return new _CommandsIterable(this.commands.map((c) => c.clone()), this.metadataForReplay); } toString() { const serializedCommands = this.commands.filter((c) => c.hasRan).map((c) => c.toString()).join(","); const metadata = this.metadataForReplay(); return metadata.length !== 0 ? `${serializedCommands} /*${metadata}*/` : serializedCommands; } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/implementations/SchedulerImplem.js var defaultSchedulerAct = (f) => f(); var SchedulerImplem = class _SchedulerImplem { constructor(act, taskSelector) { this.act = act; this.taskSelector = taskSelector; this.lastTaskId = 0; this.sourceTaskSelector = taskSelector.clone(); this.scheduledTasks = []; this.triggeredTasks = []; this.scheduledWatchers = []; } static buildLog(reportItem) { return `[task\${${reportItem.taskId}}] ${reportItem.label.length !== 0 ? `${reportItem.schedulingType}::${reportItem.label}` : reportItem.schedulingType} ${reportItem.status}${reportItem.outputValue !== void 0 ? ` with value ${escapeForTemplateString(reportItem.outputValue)}` : ""}`; } log(schedulingType, taskId, label, metadata, status, data) { this.triggeredTasks.push({ status, schedulingType, taskId, label, metadata, outputValue: data !== void 0 ? stringify(data) : void 0 }); } scheduleInternal(schedulingType, label, task, metadata, customAct, thenTaskToBeAwaited) { let trigger = null; const taskId = ++this.lastTaskId; const scheduledPromise = new Promise((resolve, reject) => { trigger = () => { (thenTaskToBeAwaited ? task.then(() => thenTaskToBeAwaited()) : task).then((data) => { this.log(schedulingType, taskId, label, metadata, "resolved", data); return resolve(data); }, (err2) => { this.log(schedulingType, taskId, label, metadata, "rejected", err2); return reject(err2); }); }; }); this.scheduledTasks.push({ original: task, scheduled: scheduledPromise, trigger, schedulingType, taskId, label, metadata, customAct }); if (this.scheduledWatchers.length !== 0) { this.scheduledWatchers[0](); } return scheduledPromise; } schedule(task, label, metadata, customAct) { return this.scheduleInternal("promise", label || "", task, metadata, customAct || defaultSchedulerAct); } scheduleFunction(asyncFunction, customAct) { return (...args2) => this.scheduleInternal("function", `${asyncFunction.name}(${args2.map(stringify).join(",")})`, asyncFunction(...args2), void 0, customAct || defaultSchedulerAct); } scheduleSequence(sequenceBuilders, customAct) { const status = { done: false, faulty: false }; const dummyResolvedPromise = { then: (f) => f() }; let resolveSequenceTask = () => { }; const sequenceTask = new Promise((resolve) => resolveSequenceTask = resolve); sequenceBuilders.reduce((previouslyScheduled, item) => { const [builder, label, metadata] = typeof item === "function" ? [item, item.name, void 0] : [item.builder, item.label, item.metadata]; return previouslyScheduled.then(() => { const scheduled = this.scheduleInternal("sequence", label, dummyResolvedPromise, metadata, customAct || defaultSchedulerAct, () => builder()); scheduled.catch(() => { status.faulty = true; resolveSequenceTask(); }); return scheduled; }); }, dummyResolvedPromise).then(() => { status.done = true; resolveSequenceTask(); }, () => { }); return Object.assign(status, { task: Promise.resolve(sequenceTask).then(() => { return { done: status.done, faulty: status.faulty }; }) }); } count() { return this.scheduledTasks.length; } internalWaitOne() { if (this.scheduledTasks.length === 0) { throw new Error("No task scheduled"); } const taskIndex = this.taskSelector.nextTaskIndex(this.scheduledTasks); const [scheduledTask] = this.scheduledTasks.splice(taskIndex, 1); return scheduledTask.customAct(async () => { scheduledTask.trigger(); try { await scheduledTask.scheduled; } catch (_err) { } }); } async waitOne(customAct) { const waitAct = customAct || defaultSchedulerAct; await this.act(() => waitAct(async () => await this.internalWaitOne())); } async waitAll(customAct) { while (this.scheduledTasks.length > 0) { await this.waitOne(customAct); } } async waitFor(unscheduledTask, customAct) { let taskResolved = false; let awaiterPromise = null; const awaiter = async () => { while (!taskResolved && this.scheduledTasks.length > 0) { await this.waitOne(customAct); } awaiterPromise = null; }; const handleNotified = () => { if (awaiterPromise !== null) { return; } awaiterPromise = Promise.resolve().then(awaiter); }; const clearAndReplaceWatcher = () => { const handleNotifiedIndex = this.scheduledWatchers.indexOf(handleNotified); if (handleNotifiedIndex !== -1) { this.scheduledWatchers.splice(handleNotifiedIndex, 1); } if (handleNotifiedIndex === 0 && this.scheduledWatchers.length !== 0) { this.scheduledWatchers[0](); } }; const rewrappedTask = unscheduledTask.then((ret) => { taskResolved = true; if (awaiterPromise === null) { clearAndReplaceWatcher(); return ret; } return awaiterPromise.then(() => { clearAndReplaceWatcher(); return ret; }); }, (err2) => { taskResolved = true; if (awaiterPromise === null) { clearAndReplaceWatcher(); throw err2; } return awaiterPromise.then(() => { clearAndReplaceWatcher(); throw err2; }); }); if (this.scheduledTasks.length > 0 && this.scheduledWatchers.length === 0) { handleNotified(); } this.scheduledWatchers.push(handleNotified); return rewrappedTask; } report() { return [ ...this.triggeredTasks, ...this.scheduledTasks.map((t) => ({ status: "pending", schedulingType: t.schedulingType, taskId: t.taskId, label: t.label, metadata: t.metadata })) ]; } toString() { return "schedulerFor()`\n" + this.report().map(_SchedulerImplem.buildLog).map((log) => `-> ${log}`).join("\n") + "`"; } [cloneMethod]() { return new _SchedulerImplem(this.act, this.sourceTaskSelector); } }; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/ReadRegex.js var TokenizerBlockMode; (function(TokenizerBlockMode2) { TokenizerBlockMode2[TokenizerBlockMode2["Full"] = 0] = "Full"; TokenizerBlockMode2[TokenizerBlockMode2["Character"] = 1] = "Character"; })(TokenizerBlockMode || (TokenizerBlockMode = {})); // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/_internals/helpers/TokenizeRegex.js var safeStringFromCodePoint2 = String.fromCodePoint; // ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/arbitrary/stringMatching.js var safeStringFromCodePoint3 = String.fromCodePoint; var wordChars = [..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"]; var digitChars = [..."0123456789"]; var spaceChars = [..." \r\n\v\f"]; var newLineChars = [..."\r\n"]; var terminatorChars = [...""]; var newLineAndTerminatorChars = [...newLineChars, ...terminatorChars]; var defaultChar = char(); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/schema/util.js var getKeysForIndexSignature = (input, parameter) => { switch (parameter._tag) { case "StringKeyword": case "TemplateLiteral": return Object.keys(input); case "SymbolKeyword": return Object.getOwnPropertySymbols(input); case "Refinement": return getKeysForIndexSignature(input, parameter.from); } }; var ownKeys = (o) => Object.keys(o).concat(Object.getOwnPropertySymbols(o)); var memoizeThunk = (f) => { let done4 = false; let a; return () => { if (done4) { return a; } a = f(); done4 = true; return a; }; }; var formatDate = (date3) => { try { return date3.toISOString(); } catch (e) { return String(date3); } }; var formatUnknown = (u) => { if (isString(u)) { return JSON.stringify(u); } else if (isNumber(u) || u == null || isBoolean(u) || isSymbol(u)) { return String(u); } else if (isDate(u)) { return formatDate(u); } else if (isBigInt(u)) { return String(u) + "n"; } else if (!isArray(u) && hasProperty(u, "toString") && isFunction2(u["toString"]) && u["toString"] !== Object.prototype.toString) { return u["toString"](); } try { JSON.stringify(u); if (isArray(u)) { return `[${u.map(formatUnknown).join(",")}]`; } else { return `{${ownKeys(u).map((k) => `${isString(k) ? JSON.stringify(k) : String(k)}:${formatUnknown(u[k])}`).join(",")}}`; } } catch (e) { return String(u); } }; var formatPropertyKey = (name) => typeof name === "string" ? JSON.stringify(name) : String(name); var isNonEmpty = (x) => Array.isArray(x); var isSingle = (x) => !Array.isArray(x); var formatPathKey = (key) => `[${formatPropertyKey(key)}]`; var formatPath = (path2) => isNonEmpty(path2) ? path2.map(formatPathKey).join("") : formatPathKey(path2); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/schema/errors.js var getErrorMessage = (reason, details, path2, ast) => { let out = reason; if (path2 && isNonEmptyReadonlyArray(path2)) { out += ` at path: ${formatPath(path2)}`; } if (details !== void 0) { out += ` details: ${details}`; } if (ast) { out += ` schema (${ast._tag}): ${ast}`; } return out; }; var getInvalidArgumentErrorMessage = (details) => getErrorMessage("Invalid Argument", details); var getUnsupportedSchemaErrorMessage = (details, path2, ast) => getErrorMessage("Unsupported schema", details, path2, ast); var getEquivalenceUnsupportedErrorMessage = (ast, path2) => getUnsupportedSchemaErrorMessage("Cannot build an Equivalence", path2, ast); var getSchemaExtendErrorMessage = (x, y, path2) => getErrorMessage("Unsupported schema or overlapping types", `cannot extend ${x} with ${y}`, path2); var getSchemaUnsupportedLiteralSpanErrorMessage = (ast) => getErrorMessage("Unsupported template literal span", void 0, void 0, ast); var getASTUnsupportedSchemaErrorMessage = (ast) => getUnsupportedSchemaErrorMessage(void 0, void 0, ast); var getASTUnsupportedKeySchemaErrorMessage = (ast) => getErrorMessage("Unsupported key schema", void 0, void 0, ast); var getASTUnsupportedLiteralErrorMessage = (literal2) => getErrorMessage("Unsupported literal", `literal value: ${formatUnknown(literal2)}`); var getASTDuplicateIndexSignatureErrorMessage = (type) => getErrorMessage("Duplicate index signature", `${type} index signature`); var getASTIndexSignatureParameterErrorMessage = /* @__PURE__ */ getErrorMessage("Unsupported index signature parameter", "An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types"); var getASTRequiredElementFollowinAnOptionalElementErrorMessage = /* @__PURE__ */ getErrorMessage("Invalid element", "A required element cannot follow an optional element. ts(1257)"); var getASTDuplicatePropertySignatureTransformationErrorMessage = (key) => getErrorMessage("Duplicate property signature transformation", `Duplicate key ${formatUnknown(key)}`); var getASTUnsupportedRenameSchemaErrorMessage = (ast) => getUnsupportedSchemaErrorMessage(void 0, void 0, ast); var getASTDuplicatePropertySignatureErrorMessage = (key) => getErrorMessage("Duplicate property signature", `Duplicate key ${formatUnknown(key)}`); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/schema/schemaId.js var DateFromSelfSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/DateFromSelf"); var GreaterThanSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThan"); var GreaterThanOrEqualToSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThanOrEqualTo"); var LessThanSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThan"); var LessThanOrEqualToSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThanOrEqualTo"); var IntSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Int"); var NonNaNSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/NonNaN"); var FiniteSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Finite"); var JsonNumberSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/JsonNumber"); var BetweenSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Between"); var GreaterThanBigintSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThanBigint"); var GreaterThanOrEqualToBigIntSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThanOrEqualToBigint"); var LessThanBigIntSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThanBigint"); var LessThanOrEqualToBigIntSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThanOrEqualToBigint"); var BetweenBigintSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/BetweenBigint"); var MinLengthSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/MinLength"); var MaxLengthSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/MaxLength"); var LengthSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Length"); var MinItemsSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/MinItems"); var MaxItemsSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/MaxItems"); var ItemsCountSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/ItemsCount"); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Number.js var Order = number3; var clamp3 = /* @__PURE__ */ clamp(Order); var remainder = /* @__PURE__ */ dual(2, (self, divisor) => { const selfDecCount = (self.toString().split(".")[1] || "").length; const divisorDecCount = (divisor.toString().split(".")[1] || "").length; const decCount = selfDecCount > divisorDecCount ? selfDecCount : divisorDecCount; const selfInt = parseInt(self.toFixed(decCount).replace(".", "")); const divisorInt = parseInt(divisor.toFixed(decCount).replace(".", "")); return selfInt % divisorInt / Math.pow(10, decCount); }); var parse = (s) => { if (s === "NaN") { return some(NaN); } if (s === "Infinity") { return some(Infinity); } if (s === "-Infinity") { return some(-Infinity); } if (s.trim() === "") { return none; } const n = Number(s); return Number.isNaN(n) ? none : some(n); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/RegExp.js var escape = (string5) => string5.replace(/[/\\^$*+?.()|[\]{}]/g, "\\$&"); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/SchemaAST.js var BrandAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Brand"); var SchemaIdAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/SchemaId"); var MessageAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Message"); var MissingMessageAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/MissingMessage"); var IdentifierAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Identifier"); var TitleAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Title"); var AutoTitleAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/AutoTitle"); var DescriptionAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Description"); var ExamplesAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Examples"); var DefaultAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Default"); var JSONSchemaAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/JSONSchema"); var ArbitraryAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Arbitrary"); var PrettyAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Pretty"); var EquivalenceAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Equivalence"); var DocumentationAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Documentation"); var ConcurrencyAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Concurrency"); var BatchingAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Batching"); var ParseIssueTitleAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/ParseIssueTitle"); var ParseOptionsAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/ParseOptions"); var DecodingFallbackAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/DecodingFallback"); var SurrogateAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/Surrogate"); var StableFilterAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/StableFilter"); var getAnnotation = /* @__PURE__ */ dual(2, (annotated, key) => Object.prototype.hasOwnProperty.call(annotated.annotations, key) ? some2(annotated.annotations[key]) : none2()); var getBrandAnnotation = /* @__PURE__ */ getAnnotation(BrandAnnotationId); var getMessageAnnotation = /* @__PURE__ */ getAnnotation(MessageAnnotationId); var getMissingMessageAnnotation = /* @__PURE__ */ getAnnotation(MissingMessageAnnotationId); var getTitleAnnotation = /* @__PURE__ */ getAnnotation(TitleAnnotationId); var getAutoTitleAnnotation = /* @__PURE__ */ getAnnotation(AutoTitleAnnotationId); var getIdentifierAnnotation = /* @__PURE__ */ getAnnotation(IdentifierAnnotationId); var getDescriptionAnnotation = /* @__PURE__ */ getAnnotation(DescriptionAnnotationId); var getConcurrencyAnnotation = /* @__PURE__ */ getAnnotation(ConcurrencyAnnotationId); var getBatchingAnnotation = /* @__PURE__ */ getAnnotation(BatchingAnnotationId); var getParseIssueTitleAnnotation = /* @__PURE__ */ getAnnotation(ParseIssueTitleAnnotationId); var getParseOptionsAnnotation = /* @__PURE__ */ getAnnotation(ParseOptionsAnnotationId); var getDecodingFallbackAnnotation = /* @__PURE__ */ getAnnotation(DecodingFallbackAnnotationId); var getSurrogateAnnotation = /* @__PURE__ */ getAnnotation(SurrogateAnnotationId); var getStableFilterAnnotation = /* @__PURE__ */ getAnnotation(StableFilterAnnotationId); var hasStableFilter = (annotated) => exists(getStableFilterAnnotation(annotated), (b) => b === true); var JSONIdentifierAnnotationId = /* @__PURE__ */ Symbol.for("effect/annotation/JSONIdentifier"); var getJSONIdentifierAnnotation = /* @__PURE__ */ getAnnotation(JSONIdentifierAnnotationId); var getJSONIdentifier = (annotated) => orElse2(getJSONIdentifierAnnotation(annotated), () => getIdentifierAnnotation(annotated)); var ParseJsonSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/ParseJson"); var Declaration = class { typeParameters; decodeUnknown; encodeUnknown; annotations; /** * @since 3.10.0 */ _tag = "Declaration"; constructor(typeParameters, decodeUnknown3, encodeUnknown3, annotations3 = {}) { this.typeParameters = typeParameters; this.decodeUnknown = decodeUnknown3; this.encodeUnknown = encodeUnknown3; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => ""); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, typeParameters: this.typeParameters.map((ast) => ast.toJSON()), annotations: toJSONAnnotations(this.annotations) }; } }; var createASTGuard = (tag2) => (ast) => ast._tag === tag2; var Literal = class { literal; annotations; /** * @since 3.10.0 */ _tag = "Literal"; constructor(literal2, annotations3 = {}) { this.literal = literal2; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => formatUnknown(this.literal)); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, literal: isBigInt(this.literal) ? String(this.literal) : this.literal, annotations: toJSONAnnotations(this.annotations) }; } }; var isLiteral = /* @__PURE__ */ createASTGuard("Literal"); var $null = /* @__PURE__ */ new Literal(null); var UniqueSymbol = class { symbol; annotations; /** * @since 3.10.0 */ _tag = "UniqueSymbol"; constructor(symbol3, annotations3 = {}) { this.symbol = symbol3; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => formatUnknown(this.symbol)); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, symbol: String(this.symbol), annotations: toJSONAnnotations(this.annotations) }; } }; var isUniqueSymbol = /* @__PURE__ */ createASTGuard("UniqueSymbol"); var UndefinedKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "UndefinedKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var undefinedKeyword = /* @__PURE__ */ new UndefinedKeyword({ [TitleAnnotationId]: "undefined" }); var VoidKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "VoidKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var voidKeyword = /* @__PURE__ */ new VoidKeyword({ [TitleAnnotationId]: "void" }); var NeverKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "NeverKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var neverKeyword = /* @__PURE__ */ new NeverKeyword({ [TitleAnnotationId]: "never" }); var isNeverKeyword = /* @__PURE__ */ createASTGuard("NeverKeyword"); var UnknownKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "UnknownKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var unknownKeyword = /* @__PURE__ */ new UnknownKeyword({ [TitleAnnotationId]: "unknown" }); var AnyKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "AnyKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var anyKeyword = /* @__PURE__ */ new AnyKeyword({ [TitleAnnotationId]: "any" }); var StringKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "StringKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var stringKeyword = /* @__PURE__ */ new StringKeyword({ [TitleAnnotationId]: "string", [DescriptionAnnotationId]: "a string" }); var isStringKeyword = /* @__PURE__ */ createASTGuard("StringKeyword"); var NumberKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "NumberKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var numberKeyword = /* @__PURE__ */ new NumberKeyword({ [TitleAnnotationId]: "number", [DescriptionAnnotationId]: "a number" }); var isNumberKeyword = /* @__PURE__ */ createASTGuard("NumberKeyword"); var BooleanKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "BooleanKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var booleanKeyword = /* @__PURE__ */ new BooleanKeyword({ [TitleAnnotationId]: "boolean", [DescriptionAnnotationId]: "a boolean" }); var isBooleanKeyword = /* @__PURE__ */ createASTGuard("BooleanKeyword"); var BigIntKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "BigIntKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var bigIntKeyword = /* @__PURE__ */ new BigIntKeyword({ [TitleAnnotationId]: "bigint", [DescriptionAnnotationId]: "a bigint" }); var SymbolKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "SymbolKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var symbolKeyword = /* @__PURE__ */ new SymbolKeyword({ [TitleAnnotationId]: "symbol", [DescriptionAnnotationId]: "a symbol" }); var isSymbolKeyword = /* @__PURE__ */ createASTGuard("SymbolKeyword"); var ObjectKeyword = class { annotations; /** * @since 3.10.0 */ _tag = "ObjectKeyword"; constructor(annotations3 = {}) { this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return formatKeyword(this); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, annotations: toJSONAnnotations(this.annotations) }; } }; var objectKeyword = /* @__PURE__ */ new ObjectKeyword({ [TitleAnnotationId]: "object", [DescriptionAnnotationId]: "an object in the TypeScript meaning, i.e. the `object` type" }); var Enums = class { enums; annotations; /** * @since 3.10.0 */ _tag = "Enums"; constructor(enums, annotations3 = {}) { this.enums = enums; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => ` JSON.stringify(value3)).join(" | ")}>`); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, enums: this.enums, annotations: toJSONAnnotations(this.annotations) }; } }; var isEnums = /* @__PURE__ */ createASTGuard("Enums"); var isTemplateLiteralSpanType = (ast) => { switch (ast._tag) { case "Literal": case "NumberKeyword": case "StringKeyword": case "TemplateLiteral": return true; case "Union": return ast.types.every(isTemplateLiteralSpanType); } return false; }; var templateLiteralSpanUnionTypeToString = (type) => { switch (type._tag) { case "Literal": return JSON.stringify(String(type.literal)); case "StringKeyword": return "string"; case "NumberKeyword": return "number"; case "TemplateLiteral": return String(type); case "Union": return type.types.map(templateLiteralSpanUnionTypeToString).join(" | "); } }; var templateLiteralSpanTypeToString = (type) => { switch (type._tag) { case "Literal": return String(type.literal); case "StringKeyword": return "${string}"; case "NumberKeyword": return "${number}"; case "TemplateLiteral": return "${" + String(type) + "}"; case "Union": return "${" + type.types.map(templateLiteralSpanUnionTypeToString).join(" | ") + "}"; } }; var TemplateLiteralSpan = class { literal; /** * @since 3.10.0 */ type; constructor(type, literal2) { this.literal = literal2; if (isTemplateLiteralSpanType(type)) { this.type = type; } else { throw new Error(getSchemaUnsupportedLiteralSpanErrorMessage(type)); } } /** * @since 3.10.0 */ toString() { return templateLiteralSpanTypeToString(this.type) + this.literal; } /** * @since 3.10.0 */ toJSON() { return { type: this.type.toJSON(), literal: this.literal }; } }; var TemplateLiteral = class { head; spans; annotations; /** * @since 3.10.0 */ _tag = "TemplateLiteral"; constructor(head4, spans, annotations3 = {}) { this.head = head4; this.spans = spans; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => formatTemplateLiteral(this)); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, head: this.head, spans: this.spans.map((span2) => span2.toJSON()), annotations: toJSONAnnotations(this.annotations) }; } }; var formatTemplateLiteral = (ast) => "`" + ast.head + ast.spans.map(String).join("") + "`"; var isTemplateLiteral = /* @__PURE__ */ createASTGuard("TemplateLiteral"); var Type = class { type; annotations; constructor(type, annotations3 = {}) { this.type = type; this.annotations = annotations3; } /** * @since 3.10.0 */ toJSON() { return { type: this.type.toJSON(), annotations: toJSONAnnotations(this.annotations) }; } /** * @since 3.10.0 */ toString() { return String(this.type); } }; var OptionalType = class extends Type { isOptional; constructor(type, isOptional, annotations3 = {}) { super(type, annotations3); this.isOptional = isOptional; } /** * @since 3.10.0 */ toJSON() { return { type: this.type.toJSON(), isOptional: this.isOptional, annotations: toJSONAnnotations(this.annotations) }; } /** * @since 3.10.0 */ toString() { return String(this.type) + (this.isOptional ? "?" : ""); } }; var getRestASTs = (rest) => rest.map((annotatedAST) => annotatedAST.type); var TupleType = class { elements; rest; isReadonly; annotations; /** * @since 3.10.0 */ _tag = "TupleType"; constructor(elements, rest, isReadonly, annotations3 = {}) { this.elements = elements; this.rest = rest; this.isReadonly = isReadonly; this.annotations = annotations3; let hasOptionalElement = false; let hasIllegalRequiredElement = false; for (const e of elements) { if (e.isOptional) { hasOptionalElement = true; } else if (hasOptionalElement) { hasIllegalRequiredElement = true; break; } } if (hasIllegalRequiredElement || hasOptionalElement && rest.length > 1) { throw new Error(getASTRequiredElementFollowinAnOptionalElementErrorMessage); } } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => formatTuple(this)); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, elements: this.elements.map((e) => e.toJSON()), rest: this.rest.map((ast) => ast.toJSON()), isReadonly: this.isReadonly, annotations: toJSONAnnotations(this.annotations) }; } }; var formatTuple = (ast) => { const formattedElements = ast.elements.map(String).join(", "); return matchLeft(ast.rest, { onEmpty: () => `readonly [${formattedElements}]`, onNonEmpty: (head4, tail) => { const formattedHead = String(head4); const wrappedHead = formattedHead.includes(" | ") ? `(${formattedHead})` : formattedHead; if (tail.length > 0) { const formattedTail = tail.map(String).join(", "); if (ast.elements.length > 0) { return `readonly [${formattedElements}, ...${wrappedHead}[], ${formattedTail}]`; } else { return `readonly [...${wrappedHead}[], ${formattedTail}]`; } } else { if (ast.elements.length > 0) { return `readonly [${formattedElements}, ...${wrappedHead}[]]`; } else { return `ReadonlyArray<${formattedHead}>`; } } } }); }; var PropertySignature = class extends OptionalType { name; isReadonly; constructor(name, type, isOptional, isReadonly, annotations3) { super(type, isOptional, annotations3); this.name = name; this.isReadonly = isReadonly; } /** * @since 3.10.0 */ toString() { return (this.isReadonly ? "readonly " : "") + String(this.name) + (this.isOptional ? "?" : "") + ": " + this.type; } /** * @since 3.10.0 */ toJSON() { return { name: String(this.name), type: this.type.toJSON(), isOptional: this.isOptional, isReadonly: this.isReadonly, annotations: toJSONAnnotations(this.annotations) }; } }; var isParameter = (ast) => { switch (ast._tag) { case "StringKeyword": case "SymbolKeyword": case "TemplateLiteral": return true; case "Refinement": return isParameter(ast.from); } return false; }; var IndexSignature = class { type; isReadonly; /** * @since 3.10.0 */ parameter; constructor(parameter, type, isReadonly) { this.type = type; this.isReadonly = isReadonly; if (isParameter(parameter)) { this.parameter = parameter; } else { throw new Error(getASTIndexSignatureParameterErrorMessage); } } /** * @since 3.10.0 */ toString() { return (this.isReadonly ? "readonly " : "") + `[x: ${this.parameter}]: ${this.type}`; } /** * @since 3.10.0 */ toJSON() { return { parameter: this.parameter.toJSON(), type: this.type.toJSON(), isReadonly: this.isReadonly }; } }; var TypeLiteral = class { annotations; /** * @since 3.10.0 */ _tag = "TypeLiteral"; /** * @since 3.10.0 */ propertySignatures; /** * @since 3.10.0 */ indexSignatures; constructor(propertySignatures, indexSignatures, annotations3 = {}) { this.annotations = annotations3; const keys5 = {}; for (let i = 0; i < propertySignatures.length; i++) { const name = propertySignatures[i].name; if (Object.prototype.hasOwnProperty.call(keys5, name)) { throw new Error(getASTDuplicatePropertySignatureErrorMessage(name)); } keys5[name] = null; } const parameters = { string: false, symbol: false }; for (let i = 0; i < indexSignatures.length; i++) { const parameter = getParameterBase(indexSignatures[i].parameter); if (isStringKeyword(parameter)) { if (parameters.string) { throw new Error(getASTDuplicateIndexSignatureErrorMessage("string")); } parameters.string = true; } else if (isSymbolKeyword(parameter)) { if (parameters.symbol) { throw new Error(getASTDuplicateIndexSignatureErrorMessage("symbol")); } parameters.symbol = true; } } this.propertySignatures = propertySignatures; this.indexSignatures = indexSignatures; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => formatTypeLiteral(this)); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, propertySignatures: this.propertySignatures.map((ps) => ps.toJSON()), indexSignatures: this.indexSignatures.map((ps) => ps.toJSON()), annotations: toJSONAnnotations(this.annotations) }; } }; var formatIndexSignatures = (iss) => iss.map(String).join("; "); var formatTypeLiteral = (ast) => { if (ast.propertySignatures.length > 0) { const pss = ast.propertySignatures.map(String).join("; "); if (ast.indexSignatures.length > 0) { return `{ ${pss}; ${formatIndexSignatures(ast.indexSignatures)} }`; } else { return `{ ${pss} }`; } } else { if (ast.indexSignatures.length > 0) { return `{ ${formatIndexSignatures(ast.indexSignatures)} }`; } else { return "{}"; } } }; var isTypeLiteral = /* @__PURE__ */ createASTGuard("TypeLiteral"); var sortCandidates = /* @__PURE__ */ sort(/* @__PURE__ */ mapInput2(Order, (ast) => { switch (ast._tag) { case "AnyKeyword": return 0; case "UnknownKeyword": return 1; case "ObjectKeyword": return 2; case "StringKeyword": case "NumberKeyword": case "BooleanKeyword": case "BigIntKeyword": case "SymbolKeyword": return 3; } return 4; })); var literalMap = { string: "StringKeyword", number: "NumberKeyword", boolean: "BooleanKeyword", bigint: "BigIntKeyword" }; var flatten2 = (candidates) => flatMap3(candidates, (ast) => isUnion(ast) ? flatten2(ast.types) : [ast]); var unify = (candidates) => { const cs = sortCandidates(candidates); const out = []; const uniques = {}; const literals = []; for (const ast of cs) { switch (ast._tag) { case "NeverKeyword": break; case "AnyKeyword": return [anyKeyword]; case "UnknownKeyword": return [unknownKeyword]; // uniques case "ObjectKeyword": case "UndefinedKeyword": case "VoidKeyword": case "StringKeyword": case "NumberKeyword": case "BooleanKeyword": case "BigIntKeyword": case "SymbolKeyword": { if (!uniques[ast._tag]) { uniques[ast._tag] = ast; out.push(ast); } break; } case "Literal": { const type = typeof ast.literal; switch (type) { case "string": case "number": case "bigint": case "boolean": { const _tag = literalMap[type]; if (!uniques[_tag] && !literals.includes(ast.literal)) { literals.push(ast.literal); out.push(ast); } break; } // null case "object": { if (!literals.includes(ast.literal)) { literals.push(ast.literal); out.push(ast); } break; } } break; } case "UniqueSymbol": { if (!uniques["SymbolKeyword"] && !literals.includes(ast.symbol)) { literals.push(ast.symbol); out.push(ast); } break; } case "TupleType": { if (!uniques["ObjectKeyword"]) { out.push(ast); } break; } case "TypeLiteral": { if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) { if (!uniques["{}"]) { uniques["{}"] = ast; out.push(ast); } } else if (!uniques["ObjectKeyword"]) { out.push(ast); } break; } default: out.push(ast); } } return out; }; var Union = class _Union { types; annotations; static make = (types, annotations3) => { return isMembers(types) ? new _Union(types, annotations3) : types.length === 1 ? types[0] : neverKeyword; }; /** @internal */ static unify = (candidates, annotations3) => { return _Union.make(unify(flatten2(candidates)), annotations3); }; /** * @since 3.10.0 */ _tag = "Union"; constructor(types, annotations3 = {}) { this.types = types; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => this.types.map(String).join(" | ")); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, types: this.types.map((ast) => ast.toJSON()), annotations: toJSONAnnotations(this.annotations) }; } }; var mapMembers = (members, f) => members.map(f); var isMembers = (as4) => as4.length > 1; var isUnion = /* @__PURE__ */ createASTGuard("Union"); var toJSONMemoMap = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Schema/AST/toJSONMemoMap"), () => /* @__PURE__ */ new WeakMap()); var Suspend = class { f; annotations; /** * @since 3.10.0 */ _tag = "Suspend"; constructor(f, annotations3 = {}) { this.f = f; this.annotations = annotations3; this.f = memoizeThunk(f); } /** * @since 3.10.0 */ toString() { return getExpected(this).pipe(orElse2(() => flatMap2(liftThrowable(this.f)(), (ast) => getExpected(ast))), getOrElse2(() => "")); } /** * @since 3.10.0 */ toJSON() { const ast = this.f(); let out = toJSONMemoMap.get(ast); if (out) { return out; } toJSONMemoMap.set(ast, { _tag: this._tag }); out = { _tag: this._tag, ast: ast.toJSON(), annotations: toJSONAnnotations(this.annotations) }; toJSONMemoMap.set(ast, out); return out; } }; var Refinement = class { from; filter; annotations; /** * @since 3.10.0 */ _tag = "Refinement"; constructor(from, filter8, annotations3 = {}) { this.from = from; this.filter = filter8; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getIdentifierAnnotation(this).pipe(getOrElse2(() => match2(getOrElseExpected(this), { onNone: () => `{ ${this.from} | filter }`, onSome: (expected) => isRefinement(this.from) ? String(this.from) + " & " + expected : expected }))); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, from: this.from.toJSON(), annotations: toJSONAnnotations(this.annotations) }; } }; var isRefinement = /* @__PURE__ */ createASTGuard("Refinement"); var defaultParseOption = {}; var Transformation = class { from; to; transformation; annotations; /** * @since 3.10.0 */ _tag = "Transformation"; constructor(from, to, transformation, annotations3 = {}) { this.from = from; this.to = to; this.transformation = transformation; this.annotations = annotations3; } /** * @since 3.10.0 */ toString() { return getOrElse2(getExpected(this), () => `(${String(this.from)} <-> ${String(this.to)})`); } /** * @since 3.10.0 */ toJSON() { return { _tag: this._tag, from: this.from.toJSON(), to: this.to.toJSON(), annotations: toJSONAnnotations(this.annotations) }; } }; var FinalTransformation = class { decode; encode; /** * @since 3.10.0 */ _tag = "FinalTransformation"; constructor(decode6, encode5) { this.decode = decode6; this.encode = encode5; } }; var createTransformationGuard = (tag2) => (ast) => ast._tag === tag2; var ComposeTransformation = class { /** * @since 3.10.0 */ _tag = "ComposeTransformation"; }; var composeTransformation = /* @__PURE__ */ new ComposeTransformation(); var PropertySignatureTransformation = class { from; to; decode; encode; constructor(from, to, decode6, encode5) { this.from = from; this.to = to; this.decode = decode6; this.encode = encode5; } }; var isRenamingPropertySignatureTransformation = (t) => t.decode === identity && t.encode === identity; var TypeLiteralTransformation = class { propertySignatureTransformations; /** * @since 3.10.0 */ _tag = "TypeLiteralTransformation"; constructor(propertySignatureTransformations) { this.propertySignatureTransformations = propertySignatureTransformations; const fromKeys = {}; const toKeys = {}; for (const pst of propertySignatureTransformations) { const from = pst.from; if (fromKeys[from]) { throw new Error(getASTDuplicatePropertySignatureTransformationErrorMessage(from)); } fromKeys[from] = true; const to = pst.to; if (toKeys[to]) { throw new Error(getASTDuplicatePropertySignatureTransformationErrorMessage(to)); } toKeys[to] = true; } } }; var isTypeLiteralTransformation = /* @__PURE__ */ createTransformationGuard("TypeLiteralTransformation"); var annotations = (ast, a) => { const d = Object.getOwnPropertyDescriptors(ast); const value3 = { ...ast.annotations, ...a }; const surrogate = getSurrogateAnnotation(ast); if (isSome2(surrogate)) { value3[SurrogateAnnotationId] = annotations(surrogate.value, a); } d.annotations.value = value3; return Object.create(Object.getPrototypeOf(ast), d); }; var keyof = (ast) => Union.unify(_keyof(ast)); var STRING_KEYWORD_PATTERN = "[\\s\\S]*"; var NUMBER_KEYWORD_PATTERN = "[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?"; var getTemplateLiteralSpanTypePattern = (type, capture2) => { switch (type._tag) { case "Literal": return escape(String(type.literal)); case "StringKeyword": return STRING_KEYWORD_PATTERN; case "NumberKeyword": return NUMBER_KEYWORD_PATTERN; case "TemplateLiteral": return getTemplateLiteralPattern(type, capture2, false); case "Union": return type.types.map((type2) => getTemplateLiteralSpanTypePattern(type2, capture2)).join("|"); } }; var handleTemplateLiteralSpanTypeParens = (type, s, capture2, top) => { if (isUnion(type)) { if (capture2 && !top) { return `(?:${s})`; } } else if (!capture2 || !top) { return s; } return `(${s})`; }; var getTemplateLiteralPattern = (ast, capture2, top) => { let pattern2 = ``; if (ast.head !== "") { const head4 = escape(ast.head); pattern2 += capture2 && top ? `(${head4})` : head4; } for (const span2 of ast.spans) { const spanPattern = getTemplateLiteralSpanTypePattern(span2.type, capture2); pattern2 += handleTemplateLiteralSpanTypeParens(span2.type, spanPattern, capture2, top); if (span2.literal !== "") { const literal2 = escape(span2.literal); pattern2 += capture2 && top ? `(${literal2})` : literal2; } } return pattern2; }; var getTemplateLiteralRegExp = (ast) => new RegExp(`^${getTemplateLiteralPattern(ast, false, true)}$`); var getTemplateLiteralCapturingRegExp = (ast) => new RegExp(`^${getTemplateLiteralPattern(ast, true, true)}$`); var getNumberIndexedAccess = (ast) => { switch (ast._tag) { case "TupleType": { let hasOptional = false; let out = []; for (const e of ast.elements) { if (e.isOptional) { hasOptional = true; } out.push(e.type); } if (hasOptional) { out.push(undefinedKeyword); } out = out.concat(getRestASTs(ast.rest)); return Union.make(out); } case "Refinement": return getNumberIndexedAccess(ast.from); case "Union": return Union.make(ast.types.map(getNumberIndexedAccess)); case "Suspend": return getNumberIndexedAccess(ast.f()); } throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); }; var getTypeLiteralPropertySignature = (ast, name) => { const ops = findFirst2(ast.propertySignatures, (ps) => ps.name === name); if (isSome2(ops)) { return ops.value; } if (isString(name)) { let out = void 0; for (const is2 of ast.indexSignatures) { const parameterBase = getParameterBase(is2.parameter); switch (parameterBase._tag) { case "TemplateLiteral": { const regex = getTemplateLiteralRegExp(parameterBase); if (regex.test(name)) { return new PropertySignature(name, is2.type, false, true); } break; } case "StringKeyword": { if (out === void 0) { out = new PropertySignature(name, is2.type, false, true); } } } } if (out) { return out; } } else if (isSymbol(name)) { for (const is2 of ast.indexSignatures) { const parameterBase = getParameterBase(is2.parameter); if (isSymbolKeyword(parameterBase)) { return new PropertySignature(name, is2.type, false, true); } } } }; var getPropertyKeyIndexedAccess = (ast, name) => { const annotation = getSurrogateAnnotation(ast); if (isSome2(annotation)) { return getPropertyKeyIndexedAccess(annotation.value, name); } switch (ast._tag) { case "TypeLiteral": { const ps = getTypeLiteralPropertySignature(ast, name); if (ps) { return ps; } break; } case "Union": return new PropertySignature(name, Union.make(ast.types.map((ast2) => getPropertyKeyIndexedAccess(ast2, name).type)), false, true); case "Suspend": return getPropertyKeyIndexedAccess(ast.f(), name); case "Refinement": return getPropertyKeyIndexedAccess(ast.from, name); } throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); }; var getPropertyKeys = (ast) => { const annotation = getSurrogateAnnotation(ast); if (isSome2(annotation)) { return getPropertyKeys(annotation.value); } switch (ast._tag) { case "TypeLiteral": return ast.propertySignatures.map((ps) => ps.name); case "Suspend": return getPropertyKeys(ast.f()); case "Union": return ast.types.slice(1).reduce((out, ast2) => intersection(out, getPropertyKeys(ast2)), getPropertyKeys(ast.types[0])); case "Transformation": return getPropertyKeys(ast.to); } return []; }; var record2 = (key, value3) => { const propertySignatures = []; const indexSignatures = []; const go3 = (key2) => { switch (key2._tag) { case "NeverKeyword": break; case "StringKeyword": case "SymbolKeyword": case "TemplateLiteral": case "Refinement": indexSignatures.push(new IndexSignature(key2, value3, true)); break; case "Literal": if (isString(key2.literal) || isNumber(key2.literal)) { propertySignatures.push(new PropertySignature(key2.literal, value3, false, true)); } else { throw new Error(getASTUnsupportedLiteralErrorMessage(key2.literal)); } break; case "Enums": { for (const [_, name] of key2.enums) { propertySignatures.push(new PropertySignature(name, value3, false, true)); } break; } case "UniqueSymbol": propertySignatures.push(new PropertySignature(key2.symbol, value3, false, true)); break; case "Union": key2.types.forEach(go3); break; default: throw new Error(getASTUnsupportedKeySchemaErrorMessage(key2)); } }; go3(key); return { propertySignatures, indexSignatures }; }; var pick = (ast, keys5) => { const annotation = getSurrogateAnnotation(ast); if (isSome2(annotation)) { return pick(annotation.value, keys5); } switch (ast._tag) { case "TypeLiteral": { const pss = []; const names = {}; for (const ps of ast.propertySignatures) { names[ps.name] = null; if (keys5.includes(ps.name)) { pss.push(ps); } } for (const key of keys5) { if (!(key in names)) { const ps = getTypeLiteralPropertySignature(ast, key); if (ps) { pss.push(ps); } } } return new TypeLiteral(pss, []); } case "Union": return new TypeLiteral(keys5.map((name) => getPropertyKeyIndexedAccess(ast, name)), []); case "Suspend": return pick(ast.f(), keys5); case "Refinement": return pick(ast.from, keys5); case "Transformation": { switch (ast.transformation._tag) { case "ComposeTransformation": return new Transformation(pick(ast.from, keys5), pick(ast.to, keys5), composeTransformation); case "TypeLiteralTransformation": { const ts = []; const fromKeys = []; for (const k of keys5) { const t = ast.transformation.propertySignatureTransformations.find((t2) => t2.to === k); if (t) { ts.push(t); fromKeys.push(t.from); } else { fromKeys.push(k); } } return isNonEmptyReadonlyArray(ts) ? new Transformation(pick(ast.from, fromKeys), pick(ast.to, keys5), new TypeLiteralTransformation(ts)) : pick(ast.from, fromKeys); } } } } throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); }; var omit = (ast, keys5) => pick(ast, getPropertyKeys(ast).filter((name) => !keys5.includes(name))); var orUndefined = (ast) => Union.make([ast, undefinedKeyword]); var partial = (ast, options) => { const exact = options?.exact === true; switch (ast._tag) { case "TupleType": return new TupleType(ast.elements.map((e) => new OptionalType(exact ? e.type : orUndefined(e.type), true)), match3(ast.rest, { onEmpty: () => ast.rest, onNonEmpty: (rest) => [new Type(Union.make([...getRestASTs(rest), undefinedKeyword]))] }), ast.isReadonly); case "TypeLiteral": return new TypeLiteral(ast.propertySignatures.map((ps) => new PropertySignature(ps.name, exact ? ps.type : orUndefined(ps.type), true, ps.isReadonly, ps.annotations)), ast.indexSignatures.map((is2) => new IndexSignature(is2.parameter, orUndefined(is2.type), is2.isReadonly))); case "Union": return Union.make(ast.types.map((member) => partial(member, options))); case "Suspend": return new Suspend(() => partial(ast.f(), options)); case "Declaration": case "Refinement": throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); case "Transformation": { if (isTypeLiteralTransformation(ast.transformation) && ast.transformation.propertySignatureTransformations.every(isRenamingPropertySignatureTransformation)) { return new Transformation(partial(ast.from, options), partial(ast.to, options), ast.transformation); } throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); } } return ast; }; var required = (ast) => { switch (ast._tag) { case "TupleType": return new TupleType(ast.elements.map((e) => new OptionalType(e.type, false)), ast.rest, ast.isReadonly); case "TypeLiteral": return new TypeLiteral(ast.propertySignatures.map((f) => new PropertySignature(f.name, f.type, false, f.isReadonly, f.annotations)), ast.indexSignatures); case "Union": return Union.make(ast.types.map((member) => required(member))); case "Suspend": return new Suspend(() => required(ast.f())); case "Declaration": case "Refinement": throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); case "Transformation": { if (isTypeLiteralTransformation(ast.transformation) && ast.transformation.propertySignatureTransformations.every(isRenamingPropertySignatureTransformation)) { return new Transformation(required(ast.from), required(ast.to), ast.transformation); } throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); } } return ast; }; var mutable = (ast) => { switch (ast._tag) { case "TupleType": return ast.isReadonly === false ? ast : new TupleType(ast.elements, ast.rest, false, ast.annotations); case "TypeLiteral": { const propertySignatures = changeMap(ast.propertySignatures, (ps) => ps.isReadonly === false ? ps : new PropertySignature(ps.name, ps.type, ps.isOptional, false, ps.annotations)); const indexSignatures = changeMap(ast.indexSignatures, (is2) => is2.isReadonly === false ? is2 : new IndexSignature(is2.parameter, is2.type, false)); return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, ast.annotations); } case "Union": { const types = changeMap(ast.types, mutable); return types === ast.types ? ast : Union.make(types, ast.annotations); } case "Suspend": return new Suspend(() => mutable(ast.f()), ast.annotations); case "Refinement": { const from = mutable(ast.from); return from === ast.from ? ast : new Refinement(from, ast.filter, ast.annotations); } case "Transformation": { const from = mutable(ast.from); const to = mutable(ast.to); return from === ast.from && to === ast.to ? ast : new Transformation(from, to, ast.transformation, ast.annotations); } } return ast; }; var typeAST = (ast) => { switch (ast._tag) { case "Declaration": { const typeParameters = changeMap(ast.typeParameters, typeAST); return typeParameters === ast.typeParameters ? ast : new Declaration(typeParameters, ast.decodeUnknown, ast.encodeUnknown, ast.annotations); } case "TupleType": { const elements = changeMap(ast.elements, (e) => { const type = typeAST(e.type); return type === e.type ? e : new OptionalType(type, e.isOptional); }); const restASTs = getRestASTs(ast.rest); const rest = changeMap(restASTs, typeAST); return elements === ast.elements && rest === restASTs ? ast : new TupleType(elements, rest.map((type) => new Type(type)), ast.isReadonly, ast.annotations); } case "TypeLiteral": { const propertySignatures = changeMap(ast.propertySignatures, (p) => { const type = typeAST(p.type); return type === p.type ? p : new PropertySignature(p.name, type, p.isOptional, p.isReadonly); }); const indexSignatures = changeMap(ast.indexSignatures, (is2) => { const type = typeAST(is2.type); return type === is2.type ? is2 : new IndexSignature(is2.parameter, type, is2.isReadonly); }); return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, ast.annotations); } case "Union": { const types = changeMap(ast.types, typeAST); return types === ast.types ? ast : Union.make(types, ast.annotations); } case "Suspend": return new Suspend(() => typeAST(ast.f()), ast.annotations); case "Refinement": { const from = typeAST(ast.from); return from === ast.from ? ast : new Refinement(from, ast.filter, ast.annotations); } case "Transformation": return typeAST(ast.to); } return ast; }; var whiteListAnnotations = (annotationIds) => (annotated) => { let out = void 0; for (const id of annotationIds) { if (Object.prototype.hasOwnProperty.call(annotated.annotations, id)) { if (out === void 0) { out = {}; } out[id] = annotated.annotations[id]; } } return out; }; var blackListAnnotations = (annotationIds) => (annotated) => { const out = { ...annotated.annotations }; for (const id of annotationIds) { delete out[id]; } return out; }; var createJSONIdentifierAnnotation = (annotated) => match2(getJSONIdentifier(annotated), { onNone: () => void 0, onSome: (identifier2) => ({ [JSONIdentifierAnnotationId]: identifier2 }) }); function changeMap(as4, f) { let changed = false; const out = allocate(as4.length); for (let i = 0; i < as4.length; i++) { const a = as4[i]; const fa = f(a); if (fa !== a) { changed = true; } out[i] = fa; } return changed ? out : as4; } var getTransformationFrom = (ast) => { switch (ast._tag) { case "Transformation": return ast.from; case "Refinement": return getTransformationFrom(ast.from); case "Suspend": return getTransformationFrom(ast.f()); } }; var encodedAST_ = (ast, isBound) => { switch (ast._tag) { case "Declaration": { const typeParameters = changeMap(ast.typeParameters, (ast2) => encodedAST_(ast2, isBound)); return typeParameters === ast.typeParameters ? ast : new Declaration(typeParameters, ast.decodeUnknown, ast.encodeUnknown, ast.annotations); } case "TupleType": { const elements = changeMap(ast.elements, (e) => { const type = encodedAST_(e.type, isBound); return type === e.type ? e : new OptionalType(type, e.isOptional); }); const restASTs = getRestASTs(ast.rest); const rest = changeMap(restASTs, (ast2) => encodedAST_(ast2, isBound)); return elements === ast.elements && rest === restASTs ? ast : new TupleType(elements, rest.map((ast2) => new Type(ast2)), ast.isReadonly, createJSONIdentifierAnnotation(ast)); } case "TypeLiteral": { const propertySignatures = changeMap(ast.propertySignatures, (ps) => { const type = encodedAST_(ps.type, isBound); return type === ps.type ? ps : new PropertySignature(ps.name, type, ps.isOptional, ps.isReadonly); }); const indexSignatures = changeMap(ast.indexSignatures, (is2) => { const type = encodedAST_(is2.type, isBound); return type === is2.type ? is2 : new IndexSignature(is2.parameter, type, is2.isReadonly); }); return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, createJSONIdentifierAnnotation(ast)); } case "Union": { const types = changeMap(ast.types, (ast2) => encodedAST_(ast2, isBound)); return types === ast.types ? ast : Union.make(types, createJSONIdentifierAnnotation(ast)); } case "Suspend": return new Suspend(() => encodedAST_(ast.f(), isBound), createJSONIdentifierAnnotation(ast)); case "Refinement": { const from = encodedAST_(ast.from, isBound); if (isBound) { if (from === ast.from) { return ast; } if (getTransformationFrom(ast.from) === void 0 && hasStableFilter(ast)) { return new Refinement(from, ast.filter, ast.annotations); } } const identifier2 = createJSONIdentifierAnnotation(ast); return identifier2 ? annotations(from, identifier2) : from; } case "Transformation": { const identifier2 = createJSONIdentifierAnnotation(ast); return encodedAST_(identifier2 ? annotations(ast.from, identifier2) : ast.from, isBound); } } return ast; }; var encodedAST = (ast) => encodedAST_(ast, false); var encodedBoundAST = (ast) => encodedAST_(ast, true); var toJSONAnnotations = (annotations3) => { const out = {}; for (const k of Object.getOwnPropertySymbols(annotations3)) { out[String(k)] = annotations3[k]; } return out; }; var getParameterBase = (ast) => { switch (ast._tag) { case "StringKeyword": case "SymbolKeyword": case "TemplateLiteral": return ast; case "Refinement": return getParameterBase(ast.from); } }; var equals2 = (self, that) => { switch (self._tag) { case "Literal": return isLiteral(that) && that.literal === self.literal; case "UniqueSymbol": return isUniqueSymbol(that) && that.symbol === self.symbol; case "UndefinedKeyword": case "VoidKeyword": case "NeverKeyword": case "UnknownKeyword": case "AnyKeyword": case "StringKeyword": case "NumberKeyword": case "BooleanKeyword": case "BigIntKeyword": case "SymbolKeyword": case "ObjectKeyword": return that._tag === self._tag; case "TemplateLiteral": return isTemplateLiteral(that) && that.head === self.head && equalsTemplateLiteralSpan(that.spans, self.spans); case "Enums": return isEnums(that) && equalsEnums(that.enums, self.enums); case "Union": return isUnion(that) && equalsUnion(self.types, that.types); case "Refinement": case "TupleType": case "TypeLiteral": case "Suspend": case "Transformation": case "Declaration": return self === that; } }; var equalsTemplateLiteralSpan = /* @__PURE__ */ getEquivalence3((self, that) => { return self.literal === that.literal && equals2(self.type, that.type); }); var equalsEnums = /* @__PURE__ */ getEquivalence3((self, that) => that[0] === self[0] && that[1] === self[1]); var equalsUnion = /* @__PURE__ */ getEquivalence3(equals2); var intersection2 = /* @__PURE__ */ intersectionWith(equals2); var _keyof = (ast) => { switch (ast._tag) { case "Declaration": { const annotation = getSurrogateAnnotation(ast); if (isSome2(annotation)) { return _keyof(annotation.value); } break; } case "TypeLiteral": return ast.propertySignatures.map((p) => isSymbol(p.name) ? new UniqueSymbol(p.name) : new Literal(p.name)).concat(ast.indexSignatures.map((is2) => getParameterBase(is2.parameter))); case "Suspend": return _keyof(ast.f()); case "Union": return ast.types.slice(1).reduce((out, ast2) => intersection2(out, _keyof(ast2)), _keyof(ast.types[0])); case "Transformation": return _keyof(ast.to); } throw new Error(getASTUnsupportedSchemaErrorMessage(ast)); }; var compose = (ab, cd) => new Transformation(ab, cd, composeTransformation); var rename = (ast, mapping) => { switch (ast._tag) { case "TypeLiteral": { const propertySignatureTransformations = []; for (const key of ownKeys(mapping)) { const name = mapping[key]; if (name !== void 0) { propertySignatureTransformations.push(new PropertySignatureTransformation(key, name, identity, identity)); } } if (propertySignatureTransformations.length === 0) { return ast; } return new Transformation(ast, new TypeLiteral(ast.propertySignatures.map((ps) => { const name = mapping[ps.name]; return new PropertySignature(name === void 0 ? ps.name : name, typeAST(ps.type), ps.isOptional, ps.isReadonly, ps.annotations); }), ast.indexSignatures), new TypeLiteralTransformation(propertySignatureTransformations)); } case "Union": return Union.make(ast.types.map((ast2) => rename(ast2, mapping))); case "Suspend": return new Suspend(() => rename(ast.f(), mapping)); case "Transformation": return compose(ast, rename(typeAST(ast), mapping)); } throw new Error(getASTUnsupportedRenameSchemaErrorMessage(ast)); }; var formatKeyword = (ast) => getOrElse2(getExpected(ast), () => ast._tag); function getBrands(ast) { return match2(getBrandAnnotation(ast), { onNone: () => "", onSome: (brands) => brands.map((brand2) => ` & Brand<${formatUnknown(brand2)}>`).join("") }); } var getOrElseExpected = (ast) => getTitleAnnotation(ast).pipe(orElse2(() => getDescriptionAnnotation(ast)), orElse2(() => getAutoTitleAnnotation(ast)), map2((s) => s + getBrands(ast))); var getExpected = (ast) => orElse2(getIdentifierAnnotation(ast), () => getOrElseExpected(ast)); var pruneUndefined = (ast, self, onTransformation) => { switch (ast._tag) { case "UndefinedKeyword": return neverKeyword; case "Union": { const types = []; let hasUndefined = false; for (const type of ast.types) { const pruned = self(type); if (pruned) { hasUndefined = true; if (!isNeverKeyword(pruned)) { types.push(pruned); } } else { types.push(type); } } if (hasUndefined) { return Union.make(types); } break; } case "Suspend": return self(ast.f()); case "Transformation": return onTransformation(ast); } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/BigDecimal.js var FINITE_INT_REGEX = /^[+-]?\d+$/; var TypeId4 = /* @__PURE__ */ Symbol.for("effect/BigDecimal"); var BigDecimalProto = { [TypeId4]: TypeId4, [symbol]() { const normalized = normalize(this); return pipe(hash(normalized.value), combine(number2(normalized.scale)), cached(this)); }, [symbol2](that) { return isBigDecimal(that) && equals3(this, that); }, toString() { return `BigDecimal(${format2(this)})`; }, toJSON() { return { _id: "BigDecimal", value: String(this.value), scale: this.scale }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var isBigDecimal = (u) => hasProperty(u, TypeId4); var make4 = (value3, scale2) => { const o = Object.create(BigDecimalProto); o.value = value3; o.scale = scale2; return o; }; var unsafeMakeNormalized = (value3, scale2) => { if (value3 !== bigint0 && value3 % bigint10 === bigint0) { throw new RangeError("Value must be normalized"); } const o = make4(value3, scale2); o.normalized = o; return o; }; var bigint0 = /* @__PURE__ */ BigInt(0); var bigint10 = /* @__PURE__ */ BigInt(10); var zero = /* @__PURE__ */ unsafeMakeNormalized(bigint0, 0); var normalize = (self) => { if (self.normalized === void 0) { if (self.value === bigint0) { self.normalized = zero; } else { const digits = `${self.value}`; let trail = 0; for (let i = digits.length - 1; i >= 0; i--) { if (digits[i] === "0") { trail++; } else { break; } } if (trail === 0) { self.normalized = self; } const value3 = BigInt(digits.substring(0, digits.length - trail)); const scale2 = self.scale - trail; self.normalized = unsafeMakeNormalized(value3, scale2); } } return self.normalized; }; var scale = /* @__PURE__ */ dual(2, (self, scale2) => { if (scale2 > self.scale) { return make4(self.value * bigint10 ** BigInt(scale2 - self.scale), scale2); } if (scale2 < self.scale) { return make4(self.value / bigint10 ** BigInt(self.scale - scale2), scale2); } return self; }); var Order2 = /* @__PURE__ */ make2((self, that) => { const scmp = number3(sign(self), sign(that)); if (scmp !== 0) { return scmp; } if (self.scale > that.scale) { return bigint(self.value, scale(that, self.scale).value); } if (self.scale < that.scale) { return bigint(scale(self, that.scale).value, that.value); } return bigint(self.value, that.value); }); var lessThan2 = /* @__PURE__ */ lessThan(Order2); var lessThanOrEqualTo2 = /* @__PURE__ */ lessThanOrEqualTo(Order2); var greaterThan2 = /* @__PURE__ */ greaterThan(Order2); var greaterThanOrEqualTo2 = /* @__PURE__ */ greaterThanOrEqualTo(Order2); var between2 = /* @__PURE__ */ between(Order2); var clamp4 = /* @__PURE__ */ clamp(Order2); var sign = (n) => n.value === bigint0 ? 0 : n.value < bigint0 ? -1 : 1; var abs = (n) => n.value < bigint0 ? make4(-n.value, n.scale) : n; var Equivalence = /* @__PURE__ */ make((self, that) => { if (self.scale > that.scale) { return scale(that, self.scale).value === self.value; } if (self.scale < that.scale) { return scale(self, that.scale).value === that.value; } return self.value === that.value; }); var equals3 = /* @__PURE__ */ dual(2, (self, that) => Equivalence(self, that)); var unsafeFromNumber = (n) => getOrThrowWith2(safeFromNumber(n), () => new RangeError(`Number must be finite, got ${n}`)); var safeFromNumber = (n) => { if (!Number.isFinite(n)) { return none2(); } const string5 = `${n}`; if (string5.includes("e")) { return fromString(string5); } const [lead, trail = ""] = string5.split("."); return some2(make4(BigInt(`${lead}${trail}`), trail.length)); }; var fromString = (s) => { if (s === "") { return some2(zero); } let base; let exp; const seperator = s.search(/[eE]/); if (seperator !== -1) { const trail = s.slice(seperator + 1); base = s.slice(0, seperator); exp = Number(trail); if (base === "" || !Number.isSafeInteger(exp) || !FINITE_INT_REGEX.test(trail)) { return none2(); } } else { base = s; exp = 0; } let digits; let offset; const dot = base.search(/\./); if (dot !== -1) { const lead = base.slice(0, dot); const trail = base.slice(dot + 1); digits = `${lead}${trail}`; offset = trail.length; } else { digits = base; offset = 0; } if (!FINITE_INT_REGEX.test(digits)) { return none2(); } const scale2 = offset - exp; if (!Number.isSafeInteger(scale2)) { return none2(); } return some2(make4(BigInt(digits), scale2)); }; var format2 = (n) => { const normalized = normalize(n); if (Math.abs(normalized.scale) >= 16) { return toExponential(normalized); } const negative2 = normalized.value < bigint0; const absolute = negative2 ? `${normalized.value}`.substring(1) : `${normalized.value}`; let before; let after; if (normalized.scale >= absolute.length) { before = "0"; after = "0".repeat(normalized.scale - absolute.length) + absolute; } else { const location = absolute.length - normalized.scale; if (location > absolute.length) { const zeros = location - absolute.length; before = `${absolute}${"0".repeat(zeros)}`; after = ""; } else { after = absolute.slice(location); before = absolute.slice(0, location); } } const complete2 = after === "" ? before : `${before}.${after}`; return negative2 ? `-${complete2}` : complete2; }; var toExponential = (n) => { if (isZero(n)) { return "0e+0"; } const normalized = normalize(n); const digits = `${abs(normalized).value}`; const head4 = digits.slice(0, 1); const tail = digits.slice(1); let output = `${isNegative(normalized) ? "-" : ""}${head4}`; if (tail !== "") { output += `.${tail}`; } const exp = tail.length - normalized.scale; return `${output}e${exp >= 0 ? "+" : ""}${exp}`; }; var unsafeToNumber = (n) => Number(format2(n)); var isZero = (n) => n.value === bigint0; var isNegative = (n) => n.value < bigint0; var isPositive = (n) => n.value > bigint0; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/BigInt.js var Order3 = bigint; var clamp5 = /* @__PURE__ */ clamp(Order3); var toNumber = (b) => { if (b > BigInt(Number.MAX_SAFE_INTEGER) || b < BigInt(Number.MIN_SAFE_INTEGER)) { return none2(); } return some2(Number(b)); }; var fromString2 = (s) => { try { return s.trim() === "" ? none2() : some2(BigInt(s)); } catch (_) { return none2(); } }; var fromNumber = (n) => { if (n > Number.MAX_SAFE_INTEGER || n < Number.MIN_SAFE_INTEGER) { return none2(); } try { return some2(BigInt(n)); } catch (_) { return none2(); } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Boolean.js var not = (self) => !self; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/context.js var TagTypeId = /* @__PURE__ */ Symbol.for("effect/Context/Tag"); var ReferenceTypeId = /* @__PURE__ */ Symbol.for("effect/Context/Reference"); var STMSymbolKey = "effect/STM"; var STMTypeId = /* @__PURE__ */ Symbol.for(STMSymbolKey); var TagProto = { ...EffectPrototype, _op: "Tag", [STMTypeId]: effectVariance, [TagTypeId]: { _Service: (_) => _, _Identifier: (_) => _ }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "Tag", key: this.key, stack: this.stack }; }, [NodeInspectSymbol]() { return this.toJSON(); }, of(self) { return self; }, context(self) { return make5(this, self); } }; var ReferenceProto = { ...TagProto, [ReferenceTypeId]: ReferenceTypeId }; var makeGenericTag = (key) => { const limit = Error.stackTraceLimit; Error.stackTraceLimit = 2; const creationError = new Error(); Error.stackTraceLimit = limit; const tag2 = Object.create(TagProto); Object.defineProperty(tag2, "stack", { get() { return creationError.stack; } }); tag2.key = key; return tag2; }; var Reference = () => (id, options) => { const limit = Error.stackTraceLimit; Error.stackTraceLimit = 2; const creationError = new Error(); Error.stackTraceLimit = limit; function ReferenceClass() { } Object.setPrototypeOf(ReferenceClass, ReferenceProto); ReferenceClass.key = id; ReferenceClass.defaultValue = options.defaultValue; Object.defineProperty(ReferenceClass, "stack", { get() { return creationError.stack; } }); return ReferenceClass; }; var TypeId5 = /* @__PURE__ */ Symbol.for("effect/Context"); var ContextProto = { [TypeId5]: { _Services: (_) => _ }, [symbol2](that) { if (isContext(that)) { if (this.unsafeMap.size === that.unsafeMap.size) { for (const k of this.unsafeMap.keys()) { if (!that.unsafeMap.has(k) || !equals(this.unsafeMap.get(k), that.unsafeMap.get(k))) { return false; } } return true; } } return false; }, [symbol]() { return cached(this, number2(this.unsafeMap.size)); }, pipe() { return pipeArguments(this, arguments); }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "Context", services: Array.from(this.unsafeMap).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); } }; var makeContext = (unsafeMap) => { const context3 = Object.create(ContextProto); context3.unsafeMap = unsafeMap; return context3; }; var serviceNotFoundError = (tag2) => { const error = new Error(`Service not found${tag2.key ? `: ${String(tag2.key)}` : ""}`); if (tag2.stack) { const lines = tag2.stack.split("\n"); if (lines.length > 2) { const afterAt = lines[2].match(/at (.*)/); if (afterAt) { error.message = error.message + ` (defined at ${afterAt[1]})`; } } } if (error.stack) { const lines = error.stack.split("\n"); lines.splice(1, 3); error.stack = lines.join("\n"); } return error; }; var isContext = (u) => hasProperty(u, TypeId5); var isReference = (u) => hasProperty(u, ReferenceTypeId); var _empty = /* @__PURE__ */ makeContext(/* @__PURE__ */ new Map()); var empty2 = () => _empty; var make5 = (tag2, service) => makeContext(/* @__PURE__ */ new Map([[tag2.key, service]])); var add = /* @__PURE__ */ dual(3, (self, tag2, service) => { const map15 = new Map(self.unsafeMap); map15.set(tag2.key, service); return makeContext(map15); }); var defaultValueCache = /* @__PURE__ */ globalValue("effect/Context/defaultValueCache", () => /* @__PURE__ */ new Map()); var getDefaultValue = (tag2) => { if (defaultValueCache.has(tag2.key)) { return defaultValueCache.get(tag2.key); } const value3 = tag2.defaultValue(); defaultValueCache.set(tag2.key, value3); return value3; }; var unsafeGetReference = (self, tag2) => { return self.unsafeMap.has(tag2.key) ? self.unsafeMap.get(tag2.key) : getDefaultValue(tag2); }; var unsafeGet2 = /* @__PURE__ */ dual(2, (self, tag2) => { if (!self.unsafeMap.has(tag2.key)) { if (ReferenceTypeId in tag2) return getDefaultValue(tag2); throw serviceNotFoundError(tag2); } return self.unsafeMap.get(tag2.key); }); var get2 = unsafeGet2; var getOption = /* @__PURE__ */ dual(2, (self, tag2) => { if (!self.unsafeMap.has(tag2.key)) { return isReference(tag2) ? some(getDefaultValue(tag2)) : none; } return some(self.unsafeMap.get(tag2.key)); }); var merge2 = /* @__PURE__ */ dual(2, (self, that) => { const map15 = new Map(self.unsafeMap); for (const [tag2, s] of that.unsafeMap) { map15.set(tag2, s); } return makeContext(map15); }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Context.js var GenericTag = makeGenericTag; var empty3 = empty2; var make6 = make5; var add2 = add; var get3 = get2; var unsafeGet3 = unsafeGet2; var getOption2 = getOption; var merge3 = merge2; var Reference2 = Reference; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Chunk.js var TypeId6 = /* @__PURE__ */ Symbol.for("effect/Chunk"); function copy2(src, srcPos, dest, destPos, len) { for (let i = srcPos; i < Math.min(src.length, srcPos + len); i++) { dest[destPos + i - srcPos] = src[i]; } return dest; } var emptyArray = []; var getEquivalence4 = (isEquivalent) => make((self, that) => self.length === that.length && toReadonlyArray(self).every((value3, i) => isEquivalent(value3, unsafeGet4(that, i)))); var _equivalence3 = /* @__PURE__ */ getEquivalence4(equals); var ChunkProto = { [TypeId6]: { _A: (_) => _ }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "Chunk", values: toReadonlyArray(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, [symbol2](that) { return isChunk(that) && _equivalence3(this, that); }, [symbol]() { return cached(this, array2(toReadonlyArray(this))); }, [Symbol.iterator]() { switch (this.backing._tag) { case "IArray": { return this.backing.array[Symbol.iterator](); } case "IEmpty": { return emptyArray[Symbol.iterator](); } default: { return toReadonlyArray(this)[Symbol.iterator](); } } }, pipe() { return pipeArguments(this, arguments); } }; var makeChunk = (backing) => { const chunk3 = Object.create(ChunkProto); chunk3.backing = backing; switch (backing._tag) { case "IEmpty": { chunk3.length = 0; chunk3.depth = 0; chunk3.left = chunk3; chunk3.right = chunk3; break; } case "IConcat": { chunk3.length = backing.left.length + backing.right.length; chunk3.depth = 1 + Math.max(backing.left.depth, backing.right.depth); chunk3.left = backing.left; chunk3.right = backing.right; break; } case "IArray": { chunk3.length = backing.array.length; chunk3.depth = 0; chunk3.left = _empty2; chunk3.right = _empty2; break; } case "ISingleton": { chunk3.length = 1; chunk3.depth = 0; chunk3.left = _empty2; chunk3.right = _empty2; break; } case "ISlice": { chunk3.length = backing.length; chunk3.depth = backing.chunk.depth + 1; chunk3.left = _empty2; chunk3.right = _empty2; break; } } return chunk3; }; var isChunk = (u) => hasProperty(u, TypeId6); var _empty2 = /* @__PURE__ */ makeChunk({ _tag: "IEmpty" }); var empty4 = () => _empty2; var make7 = (...as4) => unsafeFromNonEmptyArray(as4); var of2 = (a) => makeChunk({ _tag: "ISingleton", a }); var fromIterable2 = (self) => isChunk(self) ? self : unsafeFromArray(fromIterable(self)); var copyToArray = (self, array6, initial) => { switch (self.backing._tag) { case "IArray": { copy2(self.backing.array, 0, array6, initial, self.length); break; } case "IConcat": { copyToArray(self.left, array6, initial); copyToArray(self.right, array6, initial + self.left.length); break; } case "ISingleton": { array6[initial] = self.backing.a; break; } case "ISlice": { let i = 0; let j = initial; while (i < self.length) { array6[j] = unsafeGet4(self, i); i += 1; j += 1; } break; } } }; var toReadonlyArray_ = (self) => { switch (self.backing._tag) { case "IEmpty": { return emptyArray; } case "IArray": { return self.backing.array; } default: { const arr = new Array(self.length); copyToArray(self, arr, 0); self.backing = { _tag: "IArray", array: arr }; self.left = _empty2; self.right = _empty2; self.depth = 0; return arr; } } }; var toReadonlyArray = toReadonlyArray_; var reverseChunk = (self) => { switch (self.backing._tag) { case "IEmpty": case "ISingleton": return self; case "IArray": { return makeChunk({ _tag: "IArray", array: reverse(self.backing.array) }); } case "IConcat": { return makeChunk({ _tag: "IConcat", left: reverse2(self.backing.right), right: reverse2(self.backing.left) }); } case "ISlice": return unsafeFromArray(reverse(toReadonlyArray(self))); } }; var reverse2 = reverseChunk; var unsafeFromArray = (self) => self.length === 0 ? empty4() : self.length === 1 ? of2(self[0]) : makeChunk({ _tag: "IArray", array: self }); var unsafeFromNonEmptyArray = (self) => unsafeFromArray(self); var unsafeGet4 = /* @__PURE__ */ dual(2, (self, index) => { switch (self.backing._tag) { case "IEmpty": { throw new Error(`Index out of bounds`); } case "ISingleton": { if (index !== 0) { throw new Error(`Index out of bounds`); } return self.backing.a; } case "IArray": { if (index >= self.length || index < 0) { throw new Error(`Index out of bounds`); } return self.backing.array[index]; } case "IConcat": { return index < self.left.length ? unsafeGet4(self.left, index) : unsafeGet4(self.right, index - self.left.length); } case "ISlice": { return unsafeGet4(self.backing.chunk, index + self.backing.offset); } } }); var append2 = /* @__PURE__ */ dual(2, (self, a) => appendAll2(self, of2(a))); var prepend2 = /* @__PURE__ */ dual(2, (self, elem) => appendAll2(of2(elem), self)); var drop2 = /* @__PURE__ */ dual(2, (self, n) => { if (n <= 0) { return self; } else if (n >= self.length) { return _empty2; } else { switch (self.backing._tag) { case "ISlice": { return makeChunk({ _tag: "ISlice", chunk: self.backing.chunk, offset: self.backing.offset + n, length: self.backing.length - n }); } case "IConcat": { if (n > self.left.length) { return drop2(self.right, n - self.left.length); } return makeChunk({ _tag: "IConcat", left: drop2(self.left, n), right: self.right }); } default: { return makeChunk({ _tag: "ISlice", chunk: self, offset: n, length: self.length - n }); } } } }); var appendAll2 = /* @__PURE__ */ dual(2, (self, that) => { if (self.backing._tag === "IEmpty") { return that; } if (that.backing._tag === "IEmpty") { return self; } const diff8 = that.depth - self.depth; if (Math.abs(diff8) <= 1) { return makeChunk({ _tag: "IConcat", left: self, right: that }); } else if (diff8 < -1) { if (self.left.depth >= self.right.depth) { const nr = appendAll2(self.right, that); return makeChunk({ _tag: "IConcat", left: self.left, right: nr }); } else { const nrr = appendAll2(self.right.right, that); if (nrr.depth === self.depth - 3) { const nr = makeChunk({ _tag: "IConcat", left: self.right.left, right: nrr }); return makeChunk({ _tag: "IConcat", left: self.left, right: nr }); } else { const nl = makeChunk({ _tag: "IConcat", left: self.left, right: self.right.left }); return makeChunk({ _tag: "IConcat", left: nl, right: nrr }); } } } else { if (that.right.depth >= that.left.depth) { const nl = appendAll2(self, that.left); return makeChunk({ _tag: "IConcat", left: nl, right: that.right }); } else { const nll = appendAll2(self, that.left.left); if (nll.depth === that.depth - 3) { const nl = makeChunk({ _tag: "IConcat", left: nll, right: that.left.right }); return makeChunk({ _tag: "IConcat", left: nl, right: that.right }); } else { const nr = makeChunk({ _tag: "IConcat", left: that.left.right, right: that.right }); return makeChunk({ _tag: "IConcat", left: nll, right: nr }); } } } }); var isEmpty = (self) => self.length === 0; var isNonEmpty2 = (self) => self.length > 0; var unsafeHead = (self) => unsafeGet4(self, 0); var headNonEmpty2 = unsafeHead; var tailNonEmpty2 = (self) => drop2(self, 1); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Duration.js var TypeId7 = /* @__PURE__ */ Symbol.for("effect/Duration"); var bigint02 = /* @__PURE__ */ BigInt(0); var bigint24 = /* @__PURE__ */ BigInt(24); var bigint60 = /* @__PURE__ */ BigInt(60); var bigint1e3 = /* @__PURE__ */ BigInt(1e3); var bigint1e6 = /* @__PURE__ */ BigInt(1e6); var bigint1e9 = /* @__PURE__ */ BigInt(1e9); var DURATION_REGEX = /^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/; var decode = (input) => { if (isDuration(input)) { return input; } else if (isNumber(input)) { return millis(input); } else if (isBigInt(input)) { return nanos(input); } else if (Array.isArray(input) && input.length === 2 && input.every(isNumber)) { if (input[0] === -Infinity || input[1] === -Infinity || Number.isNaN(input[0]) || Number.isNaN(input[1])) { return zero2; } if (input[0] === Infinity || input[1] === Infinity) { return infinity; } return nanos(BigInt(Math.round(input[0] * 1e9)) + BigInt(Math.round(input[1]))); } else if (isString(input)) { const match10 = DURATION_REGEX.exec(input); if (match10) { const [_, valueStr, unit] = match10; const value3 = Number(valueStr); switch (unit) { case "nano": case "nanos": return nanos(BigInt(valueStr)); case "micro": case "micros": return micros(BigInt(valueStr)); case "milli": case "millis": return millis(value3); case "second": case "seconds": return seconds(value3); case "minute": case "minutes": return minutes(value3); case "hour": case "hours": return hours(value3); case "day": case "days": return days(value3); case "week": case "weeks": return weeks(value3); } } } throw new Error("Invalid DurationInput"); }; var zeroValue = { _tag: "Millis", millis: 0 }; var infinityValue = { _tag: "Infinity" }; var DurationProto = { [TypeId7]: TypeId7, [symbol]() { return cached(this, structure(this.value)); }, [symbol2](that) { return isDuration(that) && equals4(this, that); }, toString() { return `Duration(${format3(this)})`; }, toJSON() { switch (this.value._tag) { case "Millis": return { _id: "Duration", _tag: "Millis", millis: this.value.millis }; case "Nanos": return { _id: "Duration", _tag: "Nanos", hrtime: toHrTime(this) }; case "Infinity": return { _id: "Duration", _tag: "Infinity" }; } }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var make8 = (input) => { const duration2 = Object.create(DurationProto); if (isNumber(input)) { if (isNaN(input) || input <= 0) { duration2.value = zeroValue; } else if (!Number.isFinite(input)) { duration2.value = infinityValue; } else if (!Number.isInteger(input)) { duration2.value = { _tag: "Nanos", nanos: BigInt(Math.round(input * 1e6)) }; } else { duration2.value = { _tag: "Millis", millis: input }; } } else if (input <= bigint02) { duration2.value = zeroValue; } else { duration2.value = { _tag: "Nanos", nanos: input }; } return duration2; }; var isDuration = (u) => hasProperty(u, TypeId7); var isFinite = (self) => self.value._tag !== "Infinity"; var isZero2 = (self) => { switch (self.value._tag) { case "Millis": { return self.value.millis === 0; } case "Nanos": { return self.value.nanos === bigint02; } case "Infinity": { return false; } } }; var zero2 = /* @__PURE__ */ make8(0); var infinity = /* @__PURE__ */ make8(Infinity); var nanos = (nanos2) => make8(nanos2); var micros = (micros2) => make8(micros2 * bigint1e3); var millis = (millis2) => make8(millis2); var seconds = (seconds2) => make8(seconds2 * 1e3); var minutes = (minutes2) => make8(minutes2 * 6e4); var hours = (hours2) => make8(hours2 * 36e5); var days = (days2) => make8(days2 * 864e5); var weeks = (weeks2) => make8(weeks2 * 6048e5); var toMillis = (self) => match4(self, { onMillis: (millis2) => millis2, onNanos: (nanos2) => Number(nanos2) / 1e6 }); var toNanos = (self) => { const _self = decode(self); switch (_self.value._tag) { case "Infinity": return none2(); case "Nanos": return some2(_self.value.nanos); case "Millis": return some2(BigInt(Math.round(_self.value.millis * 1e6))); } }; var unsafeToNanos = (self) => { const _self = decode(self); switch (_self.value._tag) { case "Infinity": throw new Error("Cannot convert infinite duration to nanos"); case "Nanos": return _self.value.nanos; case "Millis": return BigInt(Math.round(_self.value.millis * 1e6)); } }; var toHrTime = (self) => { const _self = decode(self); switch (_self.value._tag) { case "Infinity": return [Infinity, 0]; case "Nanos": return [Number(_self.value.nanos / bigint1e9), Number(_self.value.nanos % bigint1e9)]; case "Millis": return [Math.floor(_self.value.millis / 1e3), Math.round(_self.value.millis % 1e3 * 1e6)]; } }; var match4 = /* @__PURE__ */ dual(2, (self, options) => { const _self = decode(self); switch (_self.value._tag) { case "Nanos": return options.onNanos(_self.value.nanos); case "Infinity": return options.onMillis(Infinity); case "Millis": return options.onMillis(_self.value.millis); } }); var matchWith = /* @__PURE__ */ dual(3, (self, that, options) => { const _self = decode(self); const _that = decode(that); if (_self.value._tag === "Infinity" || _that.value._tag === "Infinity") { return options.onMillis(toMillis(_self), toMillis(_that)); } else if (_self.value._tag === "Nanos" || _that.value._tag === "Nanos") { const selfNanos = _self.value._tag === "Nanos" ? _self.value.nanos : BigInt(Math.round(_self.value.millis * 1e6)); const thatNanos = _that.value._tag === "Nanos" ? _that.value.nanos : BigInt(Math.round(_that.value.millis * 1e6)); return options.onNanos(selfNanos, thatNanos); } return options.onMillis(_self.value.millis, _that.value.millis); }); var Order4 = /* @__PURE__ */ make2((self, that) => matchWith(self, that, { onMillis: (self2, that2) => self2 < that2 ? -1 : self2 > that2 ? 1 : 0, onNanos: (self2, that2) => self2 < that2 ? -1 : self2 > that2 ? 1 : 0 })); var between3 = /* @__PURE__ */ between(/* @__PURE__ */ mapInput2(Order4, decode)); var Equivalence2 = (self, that) => matchWith(self, that, { onMillis: (self2, that2) => self2 === that2, onNanos: (self2, that2) => self2 === that2 }); var _clamp = /* @__PURE__ */ clamp(Order4); var clamp6 = /* @__PURE__ */ dual(2, (self, options) => _clamp(decode(self), { minimum: decode(options.minimum), maximum: decode(options.maximum) })); var lessThan3 = /* @__PURE__ */ dual(2, (self, that) => matchWith(self, that, { onMillis: (self2, that2) => self2 < that2, onNanos: (self2, that2) => self2 < that2 })); var lessThanOrEqualTo3 = /* @__PURE__ */ dual(2, (self, that) => matchWith(self, that, { onMillis: (self2, that2) => self2 <= that2, onNanos: (self2, that2) => self2 <= that2 })); var greaterThan3 = /* @__PURE__ */ dual(2, (self, that) => matchWith(self, that, { onMillis: (self2, that2) => self2 > that2, onNanos: (self2, that2) => self2 > that2 })); var greaterThanOrEqualTo3 = /* @__PURE__ */ dual(2, (self, that) => matchWith(self, that, { onMillis: (self2, that2) => self2 >= that2, onNanos: (self2, that2) => self2 >= that2 })); var equals4 = /* @__PURE__ */ dual(2, (self, that) => Equivalence2(decode(self), decode(that))); var parts = (self) => { const duration2 = decode(self); if (duration2.value._tag === "Infinity") { return { days: Infinity, hours: Infinity, minutes: Infinity, seconds: Infinity, millis: Infinity, nanos: Infinity }; } const nanos2 = unsafeToNanos(duration2); const ms = nanos2 / bigint1e6; const sec = ms / bigint1e3; const min3 = sec / bigint60; const hr = min3 / bigint60; const days2 = hr / bigint24; return { days: Number(days2), hours: Number(hr % bigint24), minutes: Number(min3 % bigint60), seconds: Number(sec % bigint60), millis: Number(ms % bigint1e3), nanos: Number(nanos2 % bigint1e6) }; }; var format3 = (self) => { const duration2 = decode(self); if (duration2.value._tag === "Infinity") { return "Infinity"; } if (isZero2(duration2)) { return "0"; } const fragments = parts(duration2); const pieces = []; if (fragments.days !== 0) { pieces.push(`${fragments.days}d`); } if (fragments.hours !== 0) { pieces.push(`${fragments.hours}h`); } if (fragments.minutes !== 0) { pieces.push(`${fragments.minutes}m`); } if (fragments.seconds !== 0) { pieces.push(`${fragments.seconds}s`); } if (fragments.millis !== 0) { pieces.push(`${fragments.millis}ms`); } if (fragments.nanos !== 0) { pieces.push(`${fragments.nanos}ns`); } return pieces.join(" "); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/hashMap/config.js var SIZE = 5; var BUCKET_SIZE = /* @__PURE__ */ Math.pow(2, SIZE); var MASK2 = BUCKET_SIZE - 1; var MAX_INDEX_NODE = BUCKET_SIZE / 2; var MIN_ARRAY_NODE = BUCKET_SIZE / 4; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/hashMap/bitwise.js function popcount(x) { x -= x >> 1 & 1431655765; x = (x & 858993459) + (x >> 2 & 858993459); x = x + (x >> 4) & 252645135; x += x >> 8; x += x >> 16; return x & 127; } function hashFragment(shift, h) { return h >>> shift & MASK2; } function toBitmap(x) { return 1 << x; } function fromBitmap(bitmap, bit) { return popcount(bitmap & bit - 1); } // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/stack.js var make9 = (value3, previous) => ({ value: value3, previous }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/hashMap/array.js function arrayUpdate(mutate4, at, v, arr) { let out = arr; if (!mutate4) { const len = arr.length; out = new Array(len); for (let i = 0; i < len; ++i) out[i] = arr[i]; } out[at] = v; return out; } function arraySpliceOut(mutate4, at, arr) { const newLen = arr.length - 1; let i = 0; let g = 0; let out = arr; if (mutate4) { i = g = at; } else { out = new Array(newLen); while (i < at) out[g++] = arr[i++]; } ; ++i; while (i <= newLen) out[g++] = arr[i++]; if (mutate4) { out.length = newLen; } return out; } function arraySpliceIn(mutate4, at, v, arr) { const len = arr.length; if (mutate4) { let i2 = len; while (i2 >= at) arr[i2--] = arr[i2]; arr[at] = v; return arr; } let i = 0, g = 0; const out = new Array(len + 1); while (i < at) out[g++] = arr[i++]; out[at] = v; while (i < len) out[++g] = arr[i++]; return out; } // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/hashMap/node.js var EmptyNode = class _EmptyNode { _tag = "EmptyNode"; modify(edit, _shift, f, hash3, key, size7) { const v = f(none2()); if (isNone2(v)) return new _EmptyNode(); ++size7.value; return new LeafNode(edit, hash3, key, v); } }; function isEmptyNode(a) { return isTagged(a, "EmptyNode"); } function isLeafNode(node) { return isEmptyNode(node) || node._tag === "LeafNode" || node._tag === "CollisionNode"; } function canEditNode(node, edit) { return isEmptyNode(node) ? false : edit === node.edit; } var LeafNode = class _LeafNode { edit; hash; key; value; _tag = "LeafNode"; constructor(edit, hash3, key, value3) { this.edit = edit; this.hash = hash3; this.key = key; this.value = value3; } modify(edit, shift, f, hash3, key, size7) { if (equals(key, this.key)) { const v2 = f(this.value); if (v2 === this.value) return this; else if (isNone2(v2)) { ; --size7.value; return new EmptyNode(); } if (canEditNode(this, edit)) { this.value = v2; return this; } return new _LeafNode(edit, hash3, key, v2); } const v = f(none2()); if (isNone2(v)) return this; ++size7.value; return mergeLeaves(edit, shift, this.hash, this, hash3, new _LeafNode(edit, hash3, key, v)); } }; var CollisionNode = class _CollisionNode { edit; hash; children; _tag = "CollisionNode"; constructor(edit, hash3, children) { this.edit = edit; this.hash = hash3; this.children = children; } modify(edit, shift, f, hash3, key, size7) { if (hash3 === this.hash) { const canEdit = canEditNode(this, edit); const list = this.updateCollisionList(canEdit, edit, this.hash, this.children, f, key, size7); if (list === this.children) return this; return list.length > 1 ? new _CollisionNode(edit, this.hash, list) : list[0]; } const v = f(none2()); if (isNone2(v)) return this; ++size7.value; return mergeLeaves(edit, shift, this.hash, this, hash3, new LeafNode(edit, hash3, key, v)); } updateCollisionList(mutate4, edit, hash3, list, f, key, size7) { const len = list.length; for (let i = 0; i < len; ++i) { const child = list[i]; if ("key" in child && equals(key, child.key)) { const value3 = child.value; const newValue2 = f(value3); if (newValue2 === value3) return list; if (isNone2(newValue2)) { ; --size7.value; return arraySpliceOut(mutate4, i, list); } return arrayUpdate(mutate4, i, new LeafNode(edit, hash3, key, newValue2), list); } } const newValue = f(none2()); if (isNone2(newValue)) return list; ++size7.value; return arrayUpdate(mutate4, len, new LeafNode(edit, hash3, key, newValue), list); } }; var IndexedNode = class _IndexedNode { edit; mask; children; _tag = "IndexedNode"; constructor(edit, mask, children) { this.edit = edit; this.mask = mask; this.children = children; } modify(edit, shift, f, hash3, key, size7) { const mask = this.mask; const children = this.children; const frag = hashFragment(shift, hash3); const bit = toBitmap(frag); const indx = fromBitmap(mask, bit); const exists3 = mask & bit; const canEdit = canEditNode(this, edit); if (!exists3) { const _newChild = new EmptyNode().modify(edit, shift + SIZE, f, hash3, key, size7); if (!_newChild) return this; return children.length >= MAX_INDEX_NODE ? expand(edit, frag, _newChild, mask, children) : new _IndexedNode(edit, mask | bit, arraySpliceIn(canEdit, indx, _newChild, children)); } const current = children[indx]; const child = current.modify(edit, shift + SIZE, f, hash3, key, size7); if (current === child) return this; let bitmap = mask; let newChildren; if (isEmptyNode(child)) { bitmap &= ~bit; if (!bitmap) return new EmptyNode(); if (children.length <= 2 && isLeafNode(children[indx ^ 1])) { return children[indx ^ 1]; } newChildren = arraySpliceOut(canEdit, indx, children); } else { newChildren = arrayUpdate(canEdit, indx, child, children); } if (canEdit) { this.mask = bitmap; this.children = newChildren; return this; } return new _IndexedNode(edit, bitmap, newChildren); } }; var ArrayNode = class _ArrayNode { edit; size; children; _tag = "ArrayNode"; constructor(edit, size7, children) { this.edit = edit; this.size = size7; this.children = children; } modify(edit, shift, f, hash3, key, size7) { let count = this.size; const children = this.children; const frag = hashFragment(shift, hash3); const child = children[frag]; const newChild = (child || new EmptyNode()).modify(edit, shift + SIZE, f, hash3, key, size7); if (child === newChild) return this; const canEdit = canEditNode(this, edit); let newChildren; if (isEmptyNode(child) && !isEmptyNode(newChild)) { ; ++count; newChildren = arrayUpdate(canEdit, frag, newChild, children); } else if (!isEmptyNode(child) && isEmptyNode(newChild)) { ; --count; if (count <= MIN_ARRAY_NODE) { return pack(edit, count, frag, children); } newChildren = arrayUpdate(canEdit, frag, new EmptyNode(), children); } else { newChildren = arrayUpdate(canEdit, frag, newChild, children); } if (canEdit) { this.size = count; this.children = newChildren; return this; } return new _ArrayNode(edit, count, newChildren); } }; function pack(edit, count, removed, elements) { const children = new Array(count - 1); let g = 0; let bitmap = 0; for (let i = 0, len = elements.length; i < len; ++i) { if (i !== removed) { const elem = elements[i]; if (elem && !isEmptyNode(elem)) { children[g++] = elem; bitmap |= 1 << i; } } } return new IndexedNode(edit, bitmap, children); } function expand(edit, frag, child, bitmap, subNodes) { const arr = []; let bit = bitmap; let count = 0; for (let i = 0; bit; ++i) { if (bit & 1) arr[i] = subNodes[count++]; bit >>>= 1; } arr[frag] = child; return new ArrayNode(edit, count + 1, arr); } function mergeLeavesInner(edit, shift, h1, n1, h2, n2) { if (h1 === h2) return new CollisionNode(edit, h1, [n2, n1]); const subH1 = hashFragment(shift, h1); const subH2 = hashFragment(shift, h2); if (subH1 === subH2) { return (child) => new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), [child]); } else { const children = subH1 < subH2 ? [n1, n2] : [n2, n1]; return new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), children); } } function mergeLeaves(edit, shift, h1, n1, h2, n2) { let stack = void 0; let currentShift = shift; while (true) { const res = mergeLeavesInner(edit, currentShift, h1, n1, h2, n2); if (typeof res === "function") { stack = make9(res, stack); currentShift = currentShift + SIZE; } else { let final = res; while (stack != null) { final = stack.value(final); stack = stack.previous; } return final; } } } // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/hashMap.js var HashMapSymbolKey = "effect/HashMap"; var HashMapTypeId = /* @__PURE__ */ Symbol.for(HashMapSymbolKey); var HashMapProto = { [HashMapTypeId]: HashMapTypeId, [Symbol.iterator]() { return new HashMapIterator(this, (k, v) => [k, v]); }, [symbol]() { let hash3 = hash(HashMapSymbolKey); for (const item of this) { hash3 ^= pipe(hash(item[0]), combine(hash(item[1]))); } return cached(this, hash3); }, [symbol2](that) { if (isHashMap(that)) { if (that._size !== this._size) { return false; } for (const item of this) { const elem = pipe(that, getHash(item[0], hash(item[0]))); if (isNone2(elem)) { return false; } else { if (!equals(item[1], elem.value)) { return false; } } } return true; } return false; }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "HashMap", values: Array.from(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var makeImpl = (editable, edit, root, size7) => { const map15 = Object.create(HashMapProto); map15._editable = editable; map15._edit = edit; map15._root = root; map15._size = size7; return map15; }; var HashMapIterator = class _HashMapIterator { map; f; v; constructor(map15, f) { this.map = map15; this.f = f; this.v = visitLazy(this.map._root, this.f, void 0); } next() { if (isNone2(this.v)) { return { done: true, value: void 0 }; } const v0 = this.v.value; this.v = applyCont(v0.cont); return { done: false, value: v0.value }; } [Symbol.iterator]() { return new _HashMapIterator(this.map, this.f); } }; var applyCont = (cont) => cont ? visitLazyChildren(cont[0], cont[1], cont[2], cont[3], cont[4]) : none2(); var visitLazy = (node, f, cont = void 0) => { switch (node._tag) { case "LeafNode": { if (isSome2(node.value)) { return some2({ value: f(node.key, node.value.value), cont }); } return applyCont(cont); } case "CollisionNode": case "ArrayNode": case "IndexedNode": { const children = node.children; return visitLazyChildren(children.length, children, 0, f, cont); } default: { return applyCont(cont); } } }; var visitLazyChildren = (len, children, i, f, cont) => { while (i < len) { const child = children[i++]; if (child && !isEmptyNode(child)) { return visitLazy(child, f, [len, children, i, f, cont]); } } return applyCont(cont); }; var _empty3 = /* @__PURE__ */ makeImpl(false, 0, /* @__PURE__ */ new EmptyNode(), 0); var empty5 = () => _empty3; var fromIterable3 = (entries2) => { const map15 = beginMutation(empty5()); for (const entry of entries2) { set(map15, entry[0], entry[1]); } return endMutation(map15); }; var isHashMap = (u) => hasProperty(u, HashMapTypeId); var isEmpty2 = (self) => self && isEmptyNode(self._root); var get4 = /* @__PURE__ */ dual(2, (self, key) => getHash(self, key, hash(key))); var getHash = /* @__PURE__ */ dual(3, (self, key, hash3) => { let node = self._root; let shift = 0; while (true) { switch (node._tag) { case "LeafNode": { return equals(key, node.key) ? node.value : none2(); } case "CollisionNode": { if (hash3 === node.hash) { const children = node.children; for (let i = 0, len = children.length; i < len; ++i) { const child = children[i]; if ("key" in child && equals(key, child.key)) { return child.value; } } } return none2(); } case "IndexedNode": { const frag = hashFragment(shift, hash3); const bit = toBitmap(frag); if (node.mask & bit) { node = node.children[fromBitmap(node.mask, bit)]; shift += SIZE; break; } return none2(); } case "ArrayNode": { node = node.children[hashFragment(shift, hash3)]; if (node) { shift += SIZE; break; } return none2(); } default: return none2(); } } }); var has = /* @__PURE__ */ dual(2, (self, key) => isSome2(getHash(self, key, hash(key)))); var set = /* @__PURE__ */ dual(3, (self, key, value3) => modifyAt(self, key, () => some2(value3))); var setTree = /* @__PURE__ */ dual(3, (self, newRoot, newSize) => { if (self._editable) { ; self._root = newRoot; self._size = newSize; return self; } return newRoot === self._root ? self : makeImpl(self._editable, self._edit, newRoot, newSize); }); var keys = (self) => new HashMapIterator(self, (key) => key); var size = (self) => self._size; var beginMutation = (self) => makeImpl(true, self._edit + 1, self._root, self._size); var endMutation = (self) => { ; self._editable = false; return self; }; var modifyAt = /* @__PURE__ */ dual(3, (self, key, f) => modifyHash(self, key, hash(key), f)); var modifyHash = /* @__PURE__ */ dual(4, (self, key, hash3, f) => { const size7 = { value: self._size }; const newRoot = self._root.modify(self._editable ? self._edit : NaN, 0, f, hash3, key, size7); return pipe(self, setTree(newRoot, size7.value)); }); var remove2 = /* @__PURE__ */ dual(2, (self, key) => modifyAt(self, key, none2)); var map4 = /* @__PURE__ */ dual(2, (self, f) => reduce2(self, empty5(), (map15, value3, key) => set(map15, key, f(value3, key)))); var forEach = /* @__PURE__ */ dual(2, (self, f) => reduce2(self, void 0, (_, value3, key) => f(value3, key))); var reduce2 = /* @__PURE__ */ dual(3, (self, zero3, f) => { const root = self._root; if (root._tag === "LeafNode") { return isSome2(root.value) ? f(zero3, root.value.value, root.key) : zero3; } if (root._tag === "EmptyNode") { return zero3; } const toVisit = [root.children]; let children; while (children = toVisit.pop()) { for (let i = 0, len = children.length; i < len; ) { const child = children[i++]; if (child && !isEmptyNode(child)) { if (child._tag === "LeafNode") { if (isSome2(child.value)) { zero3 = f(zero3, child.value.value, child.key); } } else { toVisit.push(child.children); } } } } return zero3; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/hashSet.js var HashSetSymbolKey = "effect/HashSet"; var HashSetTypeId = /* @__PURE__ */ Symbol.for(HashSetSymbolKey); var HashSetProto = { [HashSetTypeId]: HashSetTypeId, [Symbol.iterator]() { return keys(this._keyMap); }, [symbol]() { return cached(this, combine(hash(this._keyMap))(hash(HashSetSymbolKey))); }, [symbol2](that) { if (isHashSet(that)) { return size(this._keyMap) === size(that._keyMap) && equals(this._keyMap, that._keyMap); } return false; }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "HashSet", values: Array.from(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var makeImpl2 = (keyMap) => { const set6 = Object.create(HashSetProto); set6._keyMap = keyMap; return set6; }; var isHashSet = (u) => hasProperty(u, HashSetTypeId); var _empty4 = /* @__PURE__ */ makeImpl2(/* @__PURE__ */ empty5()); var empty6 = () => _empty4; var fromIterable4 = (elements) => { const set6 = beginMutation2(empty6()); for (const value3 of elements) { add3(set6, value3); } return endMutation2(set6); }; var make10 = (...elements) => { const set6 = beginMutation2(empty6()); for (const value3 of elements) { add3(set6, value3); } return endMutation2(set6); }; var has2 = /* @__PURE__ */ dual(2, (self, value3) => has(self._keyMap, value3)); var size2 = (self) => size(self._keyMap); var beginMutation2 = (self) => makeImpl2(beginMutation(self._keyMap)); var endMutation2 = (self) => { ; self._keyMap._editable = false; return self; }; var mutate = /* @__PURE__ */ dual(2, (self, f) => { const transient = beginMutation2(self); f(transient); return endMutation2(transient); }); var add3 = /* @__PURE__ */ dual(2, (self, value3) => self._keyMap._editable ? (set(value3, true)(self._keyMap), self) : makeImpl2(set(value3, true)(self._keyMap))); var remove3 = /* @__PURE__ */ dual(2, (self, value3) => self._keyMap._editable ? (remove2(value3)(self._keyMap), self) : makeImpl2(remove2(value3)(self._keyMap))); var difference2 = /* @__PURE__ */ dual(2, (self, that) => mutate(self, (set6) => { for (const value3 of that) { remove3(set6, value3); } })); var union2 = /* @__PURE__ */ dual(2, (self, that) => mutate(empty6(), (set6) => { forEach2(self, (value3) => add3(set6, value3)); for (const value3 of that) { add3(set6, value3); } })); var forEach2 = /* @__PURE__ */ dual(2, (self, f) => forEach(self._keyMap, (_, k) => f(k))); var reduce3 = /* @__PURE__ */ dual(3, (self, zero3, f) => reduce2(self._keyMap, zero3, (z, _, a) => f(z, a))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/HashSet.js var isHashSet2 = isHashSet; var empty7 = empty6; var fromIterable5 = fromIterable4; var make11 = make10; var has3 = has2; var size3 = size2; var add4 = add3; var remove4 = remove3; var difference3 = difference2; var union3 = union2; var reduce4 = reduce3; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/MutableRef.js var TypeId8 = /* @__PURE__ */ Symbol.for("effect/MutableRef"); var MutableRefProto = { [TypeId8]: TypeId8, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "MutableRef", current: toJSON(this.current) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var make12 = (value3) => { const ref = Object.create(MutableRefProto); ref.current = value3; return ref; }; var get5 = (self) => self.current; var set2 = /* @__PURE__ */ dual(2, (self, value3) => { self.current = value3; return self; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberId.js var FiberIdSymbolKey = "effect/FiberId"; var FiberIdTypeId = /* @__PURE__ */ Symbol.for(FiberIdSymbolKey); var OP_NONE = "None"; var OP_RUNTIME = "Runtime"; var OP_COMPOSITE = "Composite"; var emptyHash = /* @__PURE__ */ string(`${FiberIdSymbolKey}-${OP_NONE}`); var None = class { [FiberIdTypeId] = FiberIdTypeId; _tag = OP_NONE; id = -1; startTimeMillis = -1; [symbol]() { return emptyHash; } [symbol2](that) { return isFiberId(that) && that._tag === OP_NONE; } toString() { return format(this.toJSON()); } toJSON() { return { _id: "FiberId", _tag: this._tag }; } [NodeInspectSymbol]() { return this.toJSON(); } }; var Runtime = class { id; startTimeMillis; [FiberIdTypeId] = FiberIdTypeId; _tag = OP_RUNTIME; constructor(id, startTimeMillis) { this.id = id; this.startTimeMillis = startTimeMillis; } [symbol]() { return cached(this, string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`)); } [symbol2](that) { return isFiberId(that) && that._tag === OP_RUNTIME && this.id === that.id && this.startTimeMillis === that.startTimeMillis; } toString() { return format(this.toJSON()); } toJSON() { return { _id: "FiberId", _tag: this._tag, id: this.id, startTimeMillis: this.startTimeMillis }; } [NodeInspectSymbol]() { return this.toJSON(); } }; var Composite = class { left; right; [FiberIdTypeId] = FiberIdTypeId; _tag = OP_COMPOSITE; constructor(left3, right3) { this.left = left3; this.right = right3; } _hash; [symbol]() { return pipe(string(`${FiberIdSymbolKey}-${this._tag}`), combine(hash(this.left)), combine(hash(this.right)), cached(this)); } [symbol2](that) { return isFiberId(that) && that._tag === OP_COMPOSITE && equals(this.left, that.left) && equals(this.right, that.right); } toString() { return format(this.toJSON()); } toJSON() { return { _id: "FiberId", _tag: this._tag, left: toJSON(this.left), right: toJSON(this.right) }; } [NodeInspectSymbol]() { return this.toJSON(); } }; var none3 = /* @__PURE__ */ new None(); var runtime = (id, startTimeMillis) => { return new Runtime(id, startTimeMillis); }; var composite = (left3, right3) => { return new Composite(left3, right3); }; var isFiberId = (self) => hasProperty(self, FiberIdTypeId); var ids = (self) => { switch (self._tag) { case OP_NONE: { return empty7(); } case OP_RUNTIME: { return make11(self.id); } case OP_COMPOSITE: { return pipe(ids(self.left), union3(ids(self.right))); } } }; var _fiberCounter = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Fiber/Id/_fiberCounter"), () => make12(0)); var threadName = (self) => { const identifiers = Array.from(ids(self)).map((n) => `#${n}`).join(","); return identifiers; }; var unsafeMake = () => { const id = get5(_fiberCounter); pipe(_fiberCounter, set2(id + 1)); return new Runtime(id, Date.now()); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/FiberId.js var none4 = none3; var runtime2 = runtime; var composite2 = composite; var isFiberId2 = isFiberId; var threadName2 = threadName; var unsafeMake2 = unsafeMake; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/HashMap.js var isHashMap2 = isHashMap; var empty8 = empty5; var fromIterable6 = fromIterable3; var isEmpty3 = isEmpty2; var get6 = get4; var set3 = set; var keys2 = keys; var modifyAt2 = modifyAt; var map6 = map4; var reduce5 = reduce2; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/List.js var TypeId9 = /* @__PURE__ */ Symbol.for("effect/List"); var toArray2 = (self) => fromIterable(self); var getEquivalence5 = (isEquivalent) => mapInput(getEquivalence3(isEquivalent), toArray2); var _equivalence4 = /* @__PURE__ */ getEquivalence5(equals); var ConsProto = { [TypeId9]: TypeId9, _tag: "Cons", toString() { return format(this.toJSON()); }, toJSON() { return { _id: "List", _tag: "Cons", values: toArray2(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, [symbol2](that) { return isList(that) && this._tag === that._tag && _equivalence4(this, that); }, [symbol]() { return cached(this, array2(toArray2(this))); }, [Symbol.iterator]() { let done4 = false; let self = this; return { next() { if (done4) { return this.return(); } if (self._tag === "Nil") { done4 = true; return this.return(); } const value3 = self.head; self = self.tail; return { done: done4, value: value3 }; }, return(value3) { if (!done4) { done4 = true; } return { done: true, value: value3 }; } }; }, pipe() { return pipeArguments(this, arguments); } }; var makeCons = (head4, tail) => { const cons2 = Object.create(ConsProto); cons2.head = head4; cons2.tail = tail; return cons2; }; var NilHash = /* @__PURE__ */ string("Nil"); var NilProto = { [TypeId9]: TypeId9, _tag: "Nil", toString() { return format(this.toJSON()); }, toJSON() { return { _id: "List", _tag: "Nil" }; }, [NodeInspectSymbol]() { return this.toJSON(); }, [symbol]() { return NilHash; }, [symbol2](that) { return isList(that) && this._tag === that._tag; }, [Symbol.iterator]() { return { next() { return { done: true, value: void 0 }; } }; }, pipe() { return pipeArguments(this, arguments); } }; var _Nil = /* @__PURE__ */ Object.create(NilProto); var isList = (u) => hasProperty(u, TypeId9); var isNil = (self) => self._tag === "Nil"; var isCons = (self) => self._tag === "Cons"; var nil = () => _Nil; var cons = (head4, tail) => makeCons(head4, tail); var empty9 = nil; var of3 = (value3) => makeCons(value3, _Nil); var fromIterable7 = (prefix) => { const iterator = prefix[Symbol.iterator](); let next; if ((next = iterator.next()) && !next.done) { const result = makeCons(next.value, _Nil); let curr = result; while ((next = iterator.next()) && !next.done) { const temp = makeCons(next.value, _Nil); curr.tail = temp; curr = temp; } return result; } else { return _Nil; } }; var appendAll3 = /* @__PURE__ */ dual(2, (self, that) => prependAll(that, self)); var prepend3 = /* @__PURE__ */ dual(2, (self, element2) => cons(element2, self)); var prependAll = /* @__PURE__ */ dual(2, (self, prefix) => { if (isNil(self)) { return prefix; } else if (isNil(prefix)) { return self; } else { const result = makeCons(prefix.head, self); let curr = result; let that = prefix.tail; while (!isNil(that)) { const temp = makeCons(that.head, self); curr.tail = temp; curr = temp; that = that.tail; } return result; } }); var reduce6 = /* @__PURE__ */ dual(3, (self, zero3, f) => { let acc = zero3; let these = self; while (!isNil(these)) { acc = f(acc, these.head); these = these.tail; } return acc; }); var reverse3 = (self) => { let result = empty9(); let these = self; while (!isNil(these)) { result = prepend3(result, these.head); these = these.tail; } return result; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/data.js var ArrayProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(Array.prototype), { [symbol]() { return cached(this, array2(this)); }, [symbol2](that) { if (Array.isArray(that) && this.length === that.length) { return this.every((v, i) => equals(v, that[i])); } else { return false; } } }); var Structural = /* @__PURE__ */ function() { function Structural2(args2) { if (args2) { Object.assign(this, args2); } } Structural2.prototype = StructuralPrototype; return Structural2; }(); var struct = (as4) => Object.assign(Object.create(StructuralPrototype), as4); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/differ/contextPatch.js var ContextPatchTypeId = /* @__PURE__ */ Symbol.for("effect/DifferContextPatch"); function variance(a) { return a; } var PatchProto = { ...Structural.prototype, [ContextPatchTypeId]: { _Value: variance, _Patch: variance } }; var EmptyProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto), { _tag: "Empty" }); var _empty5 = /* @__PURE__ */ Object.create(EmptyProto); var empty10 = () => _empty5; var AndThenProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto), { _tag: "AndThen" }); var makeAndThen = (first2, second) => { const o = Object.create(AndThenProto); o.first = first2; o.second = second; return o; }; var AddServiceProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto), { _tag: "AddService" }); var makeAddService = (key, service) => { const o = Object.create(AddServiceProto); o.key = key; o.service = service; return o; }; var RemoveServiceProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto), { _tag: "RemoveService" }); var makeRemoveService = (key) => { const o = Object.create(RemoveServiceProto); o.key = key; return o; }; var UpdateServiceProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto), { _tag: "UpdateService" }); var makeUpdateService = (key, update3) => { const o = Object.create(UpdateServiceProto); o.key = key; o.update = update3; return o; }; var diff = (oldValue, newValue) => { const missingServices = new Map(oldValue.unsafeMap); let patch9 = empty10(); for (const [tag2, newService] of newValue.unsafeMap.entries()) { if (missingServices.has(tag2)) { const old = missingServices.get(tag2); missingServices.delete(tag2); if (!equals(old, newService)) { patch9 = combine3(makeUpdateService(tag2, () => newService))(patch9); } } else { missingServices.delete(tag2); patch9 = combine3(makeAddService(tag2, newService))(patch9); } } for (const [tag2] of missingServices.entries()) { patch9 = combine3(makeRemoveService(tag2))(patch9); } return patch9; }; var combine3 = /* @__PURE__ */ dual(2, (self, that) => makeAndThen(self, that)); var patch = /* @__PURE__ */ dual(2, (self, context3) => { if (self._tag === "Empty") { return context3; } let wasServiceUpdated = false; let patches = of2(self); const updatedContext = new Map(context3.unsafeMap); while (isNonEmpty2(patches)) { const head4 = headNonEmpty2(patches); const tail = tailNonEmpty2(patches); switch (head4._tag) { case "Empty": { patches = tail; break; } case "AddService": { updatedContext.set(head4.key, head4.service); patches = tail; break; } case "AndThen": { patches = prepend2(prepend2(tail, head4.second), head4.first); break; } case "RemoveService": { updatedContext.delete(head4.key); patches = tail; break; } case "UpdateService": { updatedContext.set(head4.key, head4.update(updatedContext.get(head4.key))); wasServiceUpdated = true; patches = tail; break; } } } if (!wasServiceUpdated) { return makeContext(updatedContext); } const map15 = /* @__PURE__ */ new Map(); for (const [tag2] of context3.unsafeMap) { if (updatedContext.has(tag2)) { map15.set(tag2, updatedContext.get(tag2)); updatedContext.delete(tag2); } } for (const [tag2, s] of updatedContext) { map15.set(tag2, s); } return makeContext(map15); }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/differ/hashSetPatch.js var HashSetPatchTypeId = /* @__PURE__ */ Symbol.for("effect/DifferHashSetPatch"); function variance2(a) { return a; } var PatchProto2 = { ...Structural.prototype, [HashSetPatchTypeId]: { _Value: variance2, _Key: variance2, _Patch: variance2 } }; var EmptyProto2 = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto2), { _tag: "Empty" }); var _empty6 = /* @__PURE__ */ Object.create(EmptyProto2); var empty11 = () => _empty6; var AndThenProto2 = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto2), { _tag: "AndThen" }); var makeAndThen2 = (first2, second) => { const o = Object.create(AndThenProto2); o.first = first2; o.second = second; return o; }; var AddProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto2), { _tag: "Add" }); var makeAdd = (value3) => { const o = Object.create(AddProto); o.value = value3; return o; }; var RemoveProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto2), { _tag: "Remove" }); var makeRemove = (value3) => { const o = Object.create(RemoveProto); o.value = value3; return o; }; var diff2 = (oldValue, newValue) => { const [removed, patch9] = reduce4([oldValue, empty11()], ([set6, patch10], value3) => { if (has3(value3)(set6)) { return [remove4(value3)(set6), patch10]; } return [set6, combine4(makeAdd(value3))(patch10)]; })(newValue); return reduce4(patch9, (patch10, value3) => combine4(makeRemove(value3))(patch10))(removed); }; var combine4 = /* @__PURE__ */ dual(2, (self, that) => makeAndThen2(self, that)); var patch2 = /* @__PURE__ */ dual(2, (self, oldValue) => { if (self._tag === "Empty") { return oldValue; } let set6 = oldValue; let patches = of2(self); while (isNonEmpty2(patches)) { const head4 = headNonEmpty2(patches); const tail = tailNonEmpty2(patches); switch (head4._tag) { case "Empty": { patches = tail; break; } case "AndThen": { patches = prepend2(head4.first)(prepend2(head4.second)(tail)); break; } case "Add": { set6 = add4(head4.value)(set6); patches = tail; break; } case "Remove": { set6 = remove4(head4.value)(set6); patches = tail; } } } return set6; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/differ/readonlyArrayPatch.js var ReadonlyArrayPatchTypeId = /* @__PURE__ */ Symbol.for("effect/DifferReadonlyArrayPatch"); function variance3(a) { return a; } var PatchProto3 = { ...Structural.prototype, [ReadonlyArrayPatchTypeId]: { _Value: variance3, _Patch: variance3 } }; var EmptyProto3 = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto3), { _tag: "Empty" }); var _empty7 = /* @__PURE__ */ Object.create(EmptyProto3); var empty12 = () => _empty7; var AndThenProto3 = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto3), { _tag: "AndThen" }); var makeAndThen3 = (first2, second) => { const o = Object.create(AndThenProto3); o.first = first2; o.second = second; return o; }; var AppendProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto3), { _tag: "Append" }); var makeAppend = (values4) => { const o = Object.create(AppendProto); o.values = values4; return o; }; var SliceProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto3), { _tag: "Slice" }); var makeSlice = (from, until) => { const o = Object.create(SliceProto); o.from = from; o.until = until; return o; }; var UpdateProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(PatchProto3), { _tag: "Update" }); var makeUpdate = (index, patch9) => { const o = Object.create(UpdateProto); o.index = index; o.patch = patch9; return o; }; var diff3 = (options) => { let i = 0; let patch9 = empty12(); while (i < options.oldValue.length && i < options.newValue.length) { const oldElement = options.oldValue[i]; const newElement = options.newValue[i]; const valuePatch = options.differ.diff(oldElement, newElement); if (!equals(valuePatch, options.differ.empty)) { patch9 = combine5(patch9, makeUpdate(i, valuePatch)); } i = i + 1; } if (i < options.oldValue.length) { patch9 = combine5(patch9, makeSlice(0, i)); } if (i < options.newValue.length) { patch9 = combine5(patch9, makeAppend(drop(i)(options.newValue))); } return patch9; }; var combine5 = /* @__PURE__ */ dual(2, (self, that) => makeAndThen3(self, that)); var patch3 = /* @__PURE__ */ dual(3, (self, oldValue, differ3) => { if (self._tag === "Empty") { return oldValue; } let readonlyArray2 = oldValue.slice(); let patches = of(self); while (isNonEmptyArray2(patches)) { const head4 = headNonEmpty(patches); const tail = tailNonEmpty(patches); switch (head4._tag) { case "Empty": { patches = tail; break; } case "AndThen": { tail.unshift(head4.first, head4.second); patches = tail; break; } case "Append": { for (const value3 of head4.values) { readonlyArray2.push(value3); } patches = tail; break; } case "Slice": { readonlyArray2 = readonlyArray2.slice(head4.from, head4.until); patches = tail; break; } case "Update": { readonlyArray2[head4.index] = differ3.patch(head4.patch, readonlyArray2[head4.index]); patches = tail; break; } } } return readonlyArray2; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/differ.js var DifferTypeId = /* @__PURE__ */ Symbol.for("effect/Differ"); var DifferProto = { [DifferTypeId]: { _P: identity, _V: identity } }; var make15 = (params) => { const differ3 = Object.create(DifferProto); differ3.empty = params.empty; differ3.diff = params.diff; differ3.combine = params.combine; differ3.patch = params.patch; return differ3; }; var environment = () => make15({ empty: empty10(), combine: (first2, second) => combine3(second)(first2), diff: (oldValue, newValue) => diff(oldValue, newValue), patch: (patch9, oldValue) => patch(oldValue)(patch9) }); var hashSet = () => make15({ empty: empty11(), combine: (first2, second) => combine4(second)(first2), diff: (oldValue, newValue) => diff2(oldValue, newValue), patch: (patch9, oldValue) => patch2(oldValue)(patch9) }); var readonlyArray = (differ3) => make15({ empty: empty12(), combine: (first2, second) => combine5(first2, second), diff: (oldValue, newValue) => diff3({ oldValue, newValue, differ: differ3 }), patch: (patch9, oldValue) => patch3(patch9, oldValue, differ3) }); var update = () => updateWith((_, a) => a); var updateWith = (f) => make15({ empty: identity, combine: (first2, second) => { if (first2 === identity) { return second; } if (second === identity) { return first2; } return (a) => second(first2(a)); }, diff: (oldValue, newValue) => { if (equals(oldValue, newValue)) { return identity; } return constant(newValue); }, patch: (patch9, oldValue) => f(oldValue, patch9(oldValue)) }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/runtimeFlagsPatch.js var BIT_MASK = 255; var BIT_SHIFT = 8; var active = (patch9) => patch9 & BIT_MASK; var enabled = (patch9) => patch9 >> BIT_SHIFT & BIT_MASK; var make16 = (active2, enabled2) => (active2 & BIT_MASK) + ((enabled2 & active2 & BIT_MASK) << BIT_SHIFT); var empty13 = /* @__PURE__ */ make16(0, 0); var enable = (flag) => make16(flag, flag); var disable = (flag) => make16(flag, 0); var exclude = /* @__PURE__ */ dual(2, (self, flag) => make16(active(self) & ~flag, enabled(self))); var andThen2 = /* @__PURE__ */ dual(2, (self, that) => self | that); var invert = (n) => ~n >>> 0 & BIT_MASK; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/runtimeFlags.js var None2 = 0; var Interruption = 1 << 0; var OpSupervision = 1 << 1; var RuntimeMetrics = 1 << 2; var WindDown = 1 << 4; var CooperativeYielding = 1 << 5; var cooperativeYielding = (self) => isEnabled(self, CooperativeYielding); var enable2 = /* @__PURE__ */ dual(2, (self, flag) => self | flag); var interruptible = (self) => interruption(self) && !windDown(self); var interruption = (self) => isEnabled(self, Interruption); var isEnabled = /* @__PURE__ */ dual(2, (self, flag) => (self & flag) !== 0); var make17 = (...flags) => flags.reduce((a, b) => a | b, 0); var none5 = /* @__PURE__ */ make17(None2); var runtimeMetrics = (self) => isEnabled(self, RuntimeMetrics); var windDown = (self) => isEnabled(self, WindDown); var diff4 = /* @__PURE__ */ dual(2, (self, that) => make16(self ^ that, that)); var patch4 = /* @__PURE__ */ dual(2, (self, patch9) => self & (invert(active(patch9)) | enabled(patch9)) | active(patch9) & enabled(patch9)); var differ = /* @__PURE__ */ make15({ empty: empty13, diff: (oldValue, newValue) => diff4(oldValue, newValue), combine: (first2, second) => andThen2(second)(first2), patch: (_patch, oldValue) => patch4(oldValue, _patch) }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/RuntimeFlagsPatch.js var enable3 = enable; var disable2 = disable; var exclude2 = exclude; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/blockedRequests.js var par = (self, that) => ({ _tag: "Par", left: self, right: that }); var seq = (self, that) => ({ _tag: "Seq", left: self, right: that }); var flatten3 = (self) => { let current = of3(self); let updated = empty9(); while (1) { const [parallel5, sequential5] = reduce6(current, [parallelCollectionEmpty(), empty9()], ([parallel6, sequential6], blockedRequest) => { const [par2, seq2] = step(blockedRequest); return [parallelCollectionCombine(parallel6, par2), appendAll3(sequential6, seq2)]; }); updated = merge4(updated, parallel5); if (isNil(sequential5)) { return reverse3(updated); } current = sequential5; } throw new Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues"); }; var step = (requests) => { let current = requests; let parallel5 = parallelCollectionEmpty(); let stack = empty9(); let sequential5 = empty9(); while (1) { switch (current._tag) { case "Empty": { if (isNil(stack)) { return [parallel5, sequential5]; } current = stack.head; stack = stack.tail; break; } case "Par": { stack = cons(current.right, stack); current = current.left; break; } case "Seq": { const left3 = current.left; const right3 = current.right; switch (left3._tag) { case "Empty": { current = right3; break; } case "Par": { const l = left3.left; const r = left3.right; current = par(seq(l, right3), seq(r, right3)); break; } case "Seq": { const l = left3.left; const r = left3.right; current = seq(l, seq(r, right3)); break; } case "Single": { current = left3; sequential5 = cons(right3, sequential5); break; } } break; } case "Single": { parallel5 = parallelCollectionAdd(parallel5, current); if (isNil(stack)) { return [parallel5, sequential5]; } current = stack.head; stack = stack.tail; break; } } } throw new Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues"); }; var merge4 = (sequential5, parallel5) => { if (isNil(sequential5)) { return of3(parallelCollectionToSequentialCollection(parallel5)); } if (parallelCollectionIsEmpty(parallel5)) { return sequential5; } const seqHeadKeys = sequentialCollectionKeys(sequential5.head); const parKeys = parallelCollectionKeys(parallel5); if (seqHeadKeys.length === 1 && parKeys.length === 1 && equals(seqHeadKeys[0], parKeys[0])) { return cons(sequentialCollectionCombine(sequential5.head, parallelCollectionToSequentialCollection(parallel5)), sequential5.tail); } return cons(parallelCollectionToSequentialCollection(parallel5), sequential5); }; var EntryTypeId = /* @__PURE__ */ Symbol.for("effect/RequestBlock/Entry"); var EntryImpl = class { request; result; listeners; ownerId; state; [EntryTypeId] = blockedRequestVariance; constructor(request, result, listeners, ownerId, state) { this.request = request; this.result = result; this.listeners = listeners; this.ownerId = ownerId; this.state = state; } }; var blockedRequestVariance = { /* c8 ignore next */ _R: (_) => _ }; var RequestBlockParallelTypeId = /* @__PURE__ */ Symbol.for("effect/RequestBlock/RequestBlockParallel"); var parallelVariance = { /* c8 ignore next */ _R: (_) => _ }; var ParallelImpl = class { map; [RequestBlockParallelTypeId] = parallelVariance; constructor(map15) { this.map = map15; } }; var parallelCollectionEmpty = () => new ParallelImpl(empty8()); var parallelCollectionAdd = (self, blockedRequest) => new ParallelImpl(modifyAt2(self.map, blockedRequest.dataSource, (_) => orElseSome(map2(_, append2(blockedRequest.blockedRequest)), () => of2(blockedRequest.blockedRequest)))); var parallelCollectionCombine = (self, that) => new ParallelImpl(reduce5(self.map, that.map, (map15, value3, key) => set3(map15, key, match2(get6(map15, key), { onNone: () => value3, onSome: (other) => appendAll2(value3, other) })))); var parallelCollectionIsEmpty = (self) => isEmpty3(self.map); var parallelCollectionKeys = (self) => Array.from(keys2(self.map)); var parallelCollectionToSequentialCollection = (self) => sequentialCollectionMake(map6(self.map, (x) => of2(x))); var SequentialCollectionTypeId = /* @__PURE__ */ Symbol.for("effect/RequestBlock/RequestBlockSequential"); var sequentialVariance = { /* c8 ignore next */ _R: (_) => _ }; var SequentialImpl = class { map; [SequentialCollectionTypeId] = sequentialVariance; constructor(map15) { this.map = map15; } }; var sequentialCollectionMake = (map15) => new SequentialImpl(map15); var sequentialCollectionCombine = (self, that) => new SequentialImpl(reduce5(that.map, self.map, (map15, value3, key) => set3(map15, key, match2(get6(map15, key), { onNone: () => empty4(), onSome: (a) => appendAll2(a, value3) })))); var sequentialCollectionKeys = (self) => Array.from(keys2(self.map)); var sequentialCollectionToChunk = (self) => Array.from(self.map); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/opCodes/cause.js var OP_DIE = "Die"; var OP_EMPTY = "Empty"; var OP_FAIL = "Fail"; var OP_INTERRUPT = "Interrupt"; var OP_PARALLEL = "Parallel"; var OP_SEQUENTIAL = "Sequential"; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/cause.js var CauseSymbolKey = "effect/Cause"; var CauseTypeId = /* @__PURE__ */ Symbol.for(CauseSymbolKey); var variance4 = { /* c8 ignore next */ _E: (_) => _ }; var proto = { [CauseTypeId]: variance4, [symbol]() { return pipe(hash(CauseSymbolKey), combine(hash(flattenCause(this))), cached(this)); }, [symbol2](that) { return isCause(that) && causeEquals(this, that); }, pipe() { return pipeArguments(this, arguments); }, toJSON() { switch (this._tag) { case "Empty": return { _id: "Cause", _tag: this._tag }; case "Die": return { _id: "Cause", _tag: this._tag, defect: toJSON(this.defect) }; case "Interrupt": return { _id: "Cause", _tag: this._tag, fiberId: this.fiberId.toJSON() }; case "Fail": return { _id: "Cause", _tag: this._tag, failure: toJSON(this.error) }; case "Sequential": case "Parallel": return { _id: "Cause", _tag: this._tag, left: toJSON(this.left), right: toJSON(this.right) }; } }, toString() { return pretty(this); }, [NodeInspectSymbol]() { return this.toJSON(); } }; var empty14 = /* @__PURE__ */ (() => { const o = /* @__PURE__ */ Object.create(proto); o._tag = OP_EMPTY; return o; })(); var fail = (error) => { const o = Object.create(proto); o._tag = OP_FAIL; o.error = error; return o; }; var die = (defect) => { const o = Object.create(proto); o._tag = OP_DIE; o.defect = defect; return o; }; var interrupt = (fiberId2) => { const o = Object.create(proto); o._tag = OP_INTERRUPT; o.fiberId = fiberId2; return o; }; var parallel = (left3, right3) => { const o = Object.create(proto); o._tag = OP_PARALLEL; o.left = left3; o.right = right3; return o; }; var sequential = (left3, right3) => { const o = Object.create(proto); o._tag = OP_SEQUENTIAL; o.left = left3; o.right = right3; return o; }; var isCause = (u) => hasProperty(u, CauseTypeId); var isEmptyType = (self) => self._tag === OP_EMPTY; var isFailType = (self) => self._tag === OP_FAIL; var isEmpty5 = (self) => { if (self._tag === OP_EMPTY) { return true; } return reduce7(self, true, (acc, cause) => { switch (cause._tag) { case OP_EMPTY: { return some2(acc); } case OP_DIE: case OP_FAIL: case OP_INTERRUPT: { return some2(false); } default: { return none2(); } } }); }; var isInterrupted = (self) => isSome2(interruptOption(self)); var isInterruptedOnly = (self) => reduceWithContext(void 0, IsInterruptedOnlyCauseReducer)(self); var failures = (self) => reverse2(reduce7(self, empty4(), (list, cause) => cause._tag === OP_FAIL ? some2(pipe(list, prepend2(cause.error))) : none2())); var defects = (self) => reverse2(reduce7(self, empty4(), (list, cause) => cause._tag === OP_DIE ? some2(pipe(list, prepend2(cause.defect))) : none2())); var interruptors = (self) => reduce7(self, empty7(), (set6, cause) => cause._tag === OP_INTERRUPT ? some2(pipe(set6, add4(cause.fiberId))) : none2()); var failureOption = (self) => find(self, (cause) => cause._tag === OP_FAIL ? some2(cause.error) : none2()); var failureOrCause = (self) => { const option3 = failureOption(self); switch (option3._tag) { case "None": { return right2(self); } case "Some": { return left2(option3.value); } } }; var interruptOption = (self) => find(self, (cause) => cause._tag === OP_INTERRUPT ? some2(cause.fiberId) : none2()); var stripFailures = (self) => match5(self, { onEmpty: empty14, onFail: () => empty14, onDie: die, onInterrupt: interrupt, onSequential: sequential, onParallel: parallel }); var electFailures = (self) => match5(self, { onEmpty: empty14, onFail: die, onDie: die, onInterrupt: interrupt, onSequential: sequential, onParallel: parallel }); var causeEquals = (left3, right3) => { let leftStack = of2(left3); let rightStack = of2(right3); while (isNonEmpty2(leftStack) && isNonEmpty2(rightStack)) { const [leftParallel, leftSequential] = pipe(headNonEmpty2(leftStack), reduce7([empty7(), empty4()], ([parallel5, sequential5], cause) => { const [par2, seq2] = evaluateCause(cause); return some2([pipe(parallel5, union3(par2)), pipe(sequential5, appendAll2(seq2))]); })); const [rightParallel, rightSequential] = pipe(headNonEmpty2(rightStack), reduce7([empty7(), empty4()], ([parallel5, sequential5], cause) => { const [par2, seq2] = evaluateCause(cause); return some2([pipe(parallel5, union3(par2)), pipe(sequential5, appendAll2(seq2))]); })); if (!equals(leftParallel, rightParallel)) { return false; } leftStack = leftSequential; rightStack = rightSequential; } return true; }; var flattenCause = (cause) => { return flattenCauseLoop(of2(cause), empty4()); }; var flattenCauseLoop = (causes, flattened) => { while (1) { const [parallel5, sequential5] = pipe(causes, reduce([empty7(), empty4()], ([parallel6, sequential6], cause) => { const [par2, seq2] = evaluateCause(cause); return [pipe(parallel6, union3(par2)), pipe(sequential6, appendAll2(seq2))]; })); const updated = size3(parallel5) > 0 ? pipe(flattened, prepend2(parallel5)) : flattened; if (isEmpty(sequential5)) { return reverse2(updated); } causes = sequential5; flattened = updated; } throw new Error(getBugErrorMessage("Cause.flattenCauseLoop")); }; var find = /* @__PURE__ */ dual(2, (self, pf) => { const stack = [self]; while (stack.length > 0) { const item = stack.pop(); const option3 = pf(item); switch (option3._tag) { case "None": { switch (item._tag) { case OP_SEQUENTIAL: case OP_PARALLEL: { stack.push(item.right); stack.push(item.left); break; } } break; } case "Some": { return option3; } } } return none2(); }); var evaluateCause = (self) => { let cause = self; const stack = []; let _parallel = empty7(); let _sequential = empty4(); while (cause !== void 0) { switch (cause._tag) { case OP_EMPTY: { if (stack.length === 0) { return [_parallel, _sequential]; } cause = stack.pop(); break; } case OP_FAIL: { _parallel = add4(_parallel, make7(cause._tag, cause.error)); if (stack.length === 0) { return [_parallel, _sequential]; } cause = stack.pop(); break; } case OP_DIE: { _parallel = add4(_parallel, make7(cause._tag, cause.defect)); if (stack.length === 0) { return [_parallel, _sequential]; } cause = stack.pop(); break; } case OP_INTERRUPT: { _parallel = add4(_parallel, make7(cause._tag, cause.fiberId)); if (stack.length === 0) { return [_parallel, _sequential]; } cause = stack.pop(); break; } case OP_SEQUENTIAL: { switch (cause.left._tag) { case OP_EMPTY: { cause = cause.right; break; } case OP_SEQUENTIAL: { cause = sequential(cause.left.left, sequential(cause.left.right, cause.right)); break; } case OP_PARALLEL: { cause = parallel(sequential(cause.left.left, cause.right), sequential(cause.left.right, cause.right)); break; } default: { _sequential = prepend2(_sequential, cause.right); cause = cause.left; break; } } break; } case OP_PARALLEL: { stack.push(cause.right); cause = cause.left; break; } } } throw new Error(getBugErrorMessage("Cause.evaluateCauseLoop")); }; var IsInterruptedOnlyCauseReducer = { emptyCase: constTrue, failCase: constFalse, dieCase: constFalse, interruptCase: constTrue, sequentialCase: (_, left3, right3) => left3 && right3, parallelCase: (_, left3, right3) => left3 && right3 }; var OP_SEQUENTIAL_CASE = "SequentialCase"; var OP_PARALLEL_CASE = "ParallelCase"; var match5 = /* @__PURE__ */ dual(2, (self, { onDie, onEmpty, onFail, onInterrupt: onInterrupt2, onParallel, onSequential }) => { return reduceWithContext(self, void 0, { emptyCase: () => onEmpty, failCase: (_, error) => onFail(error), dieCase: (_, defect) => onDie(defect), interruptCase: (_, fiberId2) => onInterrupt2(fiberId2), sequentialCase: (_, left3, right3) => onSequential(left3, right3), parallelCase: (_, left3, right3) => onParallel(left3, right3) }); }); var reduce7 = /* @__PURE__ */ dual(3, (self, zero3, pf) => { let accumulator = zero3; let cause = self; const causes = []; while (cause !== void 0) { const option3 = pf(accumulator, cause); accumulator = isSome2(option3) ? option3.value : accumulator; switch (cause._tag) { case OP_SEQUENTIAL: { causes.push(cause.right); cause = cause.left; break; } case OP_PARALLEL: { causes.push(cause.right); cause = cause.left; break; } default: { cause = void 0; break; } } if (cause === void 0 && causes.length > 0) { cause = causes.pop(); } } return accumulator; }); var reduceWithContext = /* @__PURE__ */ dual(3, (self, context3, reducer) => { const input = [self]; const output = []; while (input.length > 0) { const cause = input.pop(); switch (cause._tag) { case OP_EMPTY: { output.push(right2(reducer.emptyCase(context3))); break; } case OP_FAIL: { output.push(right2(reducer.failCase(context3, cause.error))); break; } case OP_DIE: { output.push(right2(reducer.dieCase(context3, cause.defect))); break; } case OP_INTERRUPT: { output.push(right2(reducer.interruptCase(context3, cause.fiberId))); break; } case OP_SEQUENTIAL: { input.push(cause.right); input.push(cause.left); output.push(left2({ _tag: OP_SEQUENTIAL_CASE })); break; } case OP_PARALLEL: { input.push(cause.right); input.push(cause.left); output.push(left2({ _tag: OP_PARALLEL_CASE })); break; } } } const accumulator = []; while (output.length > 0) { const either4 = output.pop(); switch (either4._tag) { case "Left": { switch (either4.left._tag) { case OP_SEQUENTIAL_CASE: { const left3 = accumulator.pop(); const right3 = accumulator.pop(); const value3 = reducer.sequentialCase(context3, left3, right3); accumulator.push(value3); break; } case OP_PARALLEL_CASE: { const left3 = accumulator.pop(); const right3 = accumulator.pop(); const value3 = reducer.parallelCase(context3, left3, right3); accumulator.push(value3); break; } } break; } case "Right": { accumulator.push(either4.right); break; } } } if (accumulator.length === 0) { throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues"); } return accumulator.pop(); }); var pretty = (cause, options) => { if (isInterruptedOnly(cause)) { return "All fibers interrupted without errors."; } return prettyErrors(cause).map(function(e) { if (options?.renderErrorCause !== true || e.cause === void 0) { return e.stack; } return `${e.stack} { ${renderErrorCause(e.cause, " ")} }`; }).join("\n"); }; var renderErrorCause = (cause, prefix) => { const lines = cause.stack.split("\n"); let stack = `${prefix}[cause]: ${lines[0]}`; for (let i = 1, len = lines.length; i < len; i++) { stack += ` ${prefix}${lines[i]}`; } if (cause.cause) { stack += ` { ${renderErrorCause(cause.cause, `${prefix} `)} ${prefix}}`; } return stack; }; var PrettyError = class _PrettyError extends globalThis.Error { span = void 0; constructor(originalError) { const originalErrorIsObject = typeof originalError === "object" && originalError !== null; const prevLimit = Error.stackTraceLimit; Error.stackTraceLimit = 1; super(prettyErrorMessage(originalError), originalErrorIsObject && "cause" in originalError && typeof originalError.cause !== "undefined" ? { cause: new _PrettyError(originalError.cause) } : void 0); if (this.message === "") { this.message = "An error has occurred"; } Error.stackTraceLimit = prevLimit; this.name = originalError instanceof Error ? originalError.name : "Error"; if (originalErrorIsObject) { if (spanSymbol in originalError) { this.span = originalError[spanSymbol]; } Object.keys(originalError).forEach((key) => { if (!(key in this)) { this[key] = originalError[key]; } }); } this.stack = prettyErrorStack(`${this.name}: ${this.message}`, originalError instanceof Error && originalError.stack ? originalError.stack : "", this.span); } }; var prettyErrorMessage = (u) => { if (typeof u === "string") { return u; } if (typeof u === "object" && u !== null && u instanceof Error) { return u.message; } try { if (hasProperty(u, "toString") && isFunction2(u["toString"]) && u["toString"] !== Object.prototype.toString && u["toString"] !== globalThis.Array.prototype.toString) { return u["toString"](); } } catch { } return stringifyCircular(u); }; var locationRegex = /\((.*)\)/g; var spanToTrace = /* @__PURE__ */ globalValue("effect/Tracer/spanToTrace", () => /* @__PURE__ */ new WeakMap()); var prettyErrorStack = (message, stack, span2) => { const out = [message]; const lines = stack.startsWith(message) ? stack.slice(message.length).split("\n") : stack.split("\n"); for (let i = 1; i < lines.length; i++) { if (lines[i].includes("Generator.next")) { break; } if (lines[i].includes("effect_internal_function")) { out.pop(); break; } out.push(lines[i].replace(/at .*effect_instruction_i.*\((.*)\)/, "at $1").replace(/EffectPrimitive\.\w+/, "")); } if (span2) { let current = span2; let i = 0; while (current && current._tag === "Span" && i < 10) { const stackFn = spanToTrace.get(current); if (typeof stackFn === "function") { const stack2 = stackFn(); if (typeof stack2 === "string") { const locationMatchAll = stack2.matchAll(locationRegex); let match10 = false; for (const [, location] of locationMatchAll) { match10 = true; out.push(` at ${current.name} (${location})`); } if (!match10) { out.push(` at ${current.name} (${stack2.replace(/^at /, "")})`); } } else { out.push(` at ${current.name}`); } } else { out.push(` at ${current.name}`); } current = getOrUndefined2(current.parent); i++; } } return out.join("\n"); }; var spanSymbol = /* @__PURE__ */ Symbol.for("effect/SpanAnnotation"); var prettyErrors = (cause) => reduceWithContext(cause, void 0, { emptyCase: () => [], dieCase: (_, unknownError) => { return [new PrettyError(unknownError)]; }, failCase: (_, error) => { return [new PrettyError(error)]; }, interruptCase: () => [], parallelCase: (_, l, r) => [...l, ...r], sequentialCase: (_, l, r) => [...l, ...r] }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/opCodes/deferred.js var OP_STATE_PENDING = "Pending"; var OP_STATE_DONE = "Done"; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/deferred.js var DeferredSymbolKey = "effect/Deferred"; var DeferredTypeId = /* @__PURE__ */ Symbol.for(DeferredSymbolKey); var deferredVariance = { /* c8 ignore next */ _E: (_) => _, /* c8 ignore next */ _A: (_) => _ }; var pending = (joiners) => { return { _tag: OP_STATE_PENDING, joiners }; }; var done = (effect) => { return { _tag: OP_STATE_DONE, effect }; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/singleShotGen.js var SingleShotGen2 = class _SingleShotGen { self; called = false; constructor(self) { this.self = self; } next(a) { return this.called ? { value: a, done: true } : (this.called = true, { value: this.self, done: false }); } return(a) { return { value: a, done: true }; } throw(e) { throw e; } [Symbol.iterator]() { return new _SingleShotGen(this.self); } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/core.js var blocked = (blockedRequests, _continue) => { const effect = new EffectPrimitive("Blocked"); effect.effect_instruction_i0 = blockedRequests; effect.effect_instruction_i1 = _continue; return effect; }; var runRequestBlock = (blockedRequests) => { const effect = new EffectPrimitive("RunBlocked"); effect.effect_instruction_i0 = blockedRequests; return effect; }; var EffectTypeId2 = /* @__PURE__ */ Symbol.for("effect/Effect"); var RevertFlags = class { patch; op; _op = OP_REVERT_FLAGS; constructor(patch9, op) { this.patch = patch9; this.op = op; } }; var EffectPrimitive = class { _op; effect_instruction_i0 = void 0; effect_instruction_i1 = void 0; effect_instruction_i2 = void 0; trace = void 0; [EffectTypeId2] = effectVariance; constructor(_op) { this._op = _op; } [symbol2](that) { return this === that; } [symbol]() { return cached(this, random(this)); } pipe() { return pipeArguments(this, arguments); } toJSON() { return { _id: "Effect", _op: this._op, effect_instruction_i0: toJSON(this.effect_instruction_i0), effect_instruction_i1: toJSON(this.effect_instruction_i1), effect_instruction_i2: toJSON(this.effect_instruction_i2) }; } toString() { return format(this.toJSON()); } [NodeInspectSymbol]() { return this.toJSON(); } [Symbol.iterator]() { return new SingleShotGen2(new YieldWrap(this)); } }; var EffectPrimitiveFailure = class { _op; effect_instruction_i0 = void 0; effect_instruction_i1 = void 0; effect_instruction_i2 = void 0; trace = void 0; [EffectTypeId2] = effectVariance; constructor(_op) { this._op = _op; this._tag = _op; } [symbol2](that) { return exitIsExit(that) && that._op === "Failure" && // @ts-expect-error equals(this.effect_instruction_i0, that.effect_instruction_i0); } [symbol]() { return pipe( // @ts-expect-error string(this._tag), // @ts-expect-error combine(hash(this.effect_instruction_i0)), cached(this) ); } get cause() { return this.effect_instruction_i0; } pipe() { return pipeArguments(this, arguments); } toJSON() { return { _id: "Exit", _tag: this._op, cause: this.cause.toJSON() }; } toString() { return format(this.toJSON()); } [NodeInspectSymbol]() { return this.toJSON(); } [Symbol.iterator]() { return new SingleShotGen2(new YieldWrap(this)); } }; var EffectPrimitiveSuccess = class { _op; effect_instruction_i0 = void 0; effect_instruction_i1 = void 0; effect_instruction_i2 = void 0; trace = void 0; [EffectTypeId2] = effectVariance; constructor(_op) { this._op = _op; this._tag = _op; } [symbol2](that) { return exitIsExit(that) && that._op === "Success" && // @ts-expect-error equals(this.effect_instruction_i0, that.effect_instruction_i0); } [symbol]() { return pipe( // @ts-expect-error string(this._tag), // @ts-expect-error combine(hash(this.effect_instruction_i0)), cached(this) ); } get value() { return this.effect_instruction_i0; } pipe() { return pipeArguments(this, arguments); } toJSON() { return { _id: "Exit", _tag: this._op, value: toJSON(this.value) }; } toString() { return format(this.toJSON()); } [NodeInspectSymbol]() { return this.toJSON(); } [Symbol.iterator]() { return new SingleShotGen2(new YieldWrap(this)); } }; var isEffect = (u) => hasProperty(u, EffectTypeId2); var withFiberRuntime = (withRuntime) => { const effect = new EffectPrimitive(OP_WITH_RUNTIME); effect.effect_instruction_i0 = withRuntime; return effect; }; var acquireUseRelease = /* @__PURE__ */ dual(3, (acquire, use, release) => uninterruptibleMask((restore) => flatMap7(acquire, (a) => flatMap7(exit(suspend(() => restore(use(a)))), (exit3) => { return suspend(() => release(a, exit3)).pipe(matchCauseEffect({ onFailure: (cause) => { switch (exit3._tag) { case OP_FAILURE: return failCause(sequential(exit3.effect_instruction_i0, cause)); case OP_SUCCESS: return failCause(cause); } }, onSuccess: () => exit3 })); })))); var as = /* @__PURE__ */ dual(2, (self, value3) => flatMap7(self, () => succeed(value3))); var asVoid = (self) => as(self, void 0); var custom = function() { const wrapper = new EffectPrimitive(OP_COMMIT); switch (arguments.length) { case 2: { wrapper.effect_instruction_i0 = arguments[0]; wrapper.commit = arguments[1]; break; } case 3: { wrapper.effect_instruction_i0 = arguments[0]; wrapper.effect_instruction_i1 = arguments[1]; wrapper.commit = arguments[2]; break; } case 4: { wrapper.effect_instruction_i0 = arguments[0]; wrapper.effect_instruction_i1 = arguments[1]; wrapper.effect_instruction_i2 = arguments[2]; wrapper.commit = arguments[3]; break; } default: { throw new Error(getBugErrorMessage("you're not supposed to end up here")); } } return wrapper; }; var unsafeAsync = (register, blockingOn = none4) => { const effect = new EffectPrimitive(OP_ASYNC); let cancelerRef = void 0; effect.effect_instruction_i0 = (resume2) => { cancelerRef = register(resume2); }; effect.effect_instruction_i1 = blockingOn; return onInterrupt(effect, (_) => isEffect(cancelerRef) ? cancelerRef : void_); }; var asyncInterrupt = (register, blockingOn = none4) => suspend(() => unsafeAsync(register, blockingOn)); var async_ = (resume2, blockingOn = none4) => { return custom(resume2, function() { let backingResume = void 0; let pendingEffect = void 0; function proxyResume(effect2) { if (backingResume) { backingResume(effect2); } else if (pendingEffect === void 0) { pendingEffect = effect2; } } const effect = new EffectPrimitive(OP_ASYNC); effect.effect_instruction_i0 = (resume3) => { backingResume = resume3; if (pendingEffect) { resume3(pendingEffect); } }; effect.effect_instruction_i1 = blockingOn; let cancelerRef = void 0; let controllerRef = void 0; if (this.effect_instruction_i0.length !== 1) { controllerRef = new AbortController(); cancelerRef = internalCall(() => this.effect_instruction_i0(proxyResume, controllerRef.signal)); } else { cancelerRef = internalCall(() => this.effect_instruction_i0(proxyResume)); } return cancelerRef || controllerRef ? onInterrupt(effect, (_) => { if (controllerRef) { controllerRef.abort(); } return cancelerRef ?? void_; }) : effect; }); }; var catchAll = /* @__PURE__ */ dual(2, (self, f) => matchEffect(self, { onFailure: f, onSuccess: succeed })); var originalSymbol = /* @__PURE__ */ Symbol.for("effect/OriginalAnnotation"); var capture = (obj, span2) => { if (isSome2(span2)) { return new Proxy(obj, { has(target, p) { return p === spanSymbol || p === originalSymbol || p in target; }, get(target, p) { if (p === spanSymbol) { return span2.value; } if (p === originalSymbol) { return obj; } return target[p]; } }); } return obj; }; var die2 = (defect) => isObject(defect) && !(spanSymbol in defect) ? withFiberRuntime((fiber) => failCause(die(capture(defect, currentSpanFromFiber(fiber))))) : failCause(die(defect)); var dieMessage = (message) => failCauseSync(() => die(new RuntimeException(message))); var either2 = (self) => matchEffect(self, { onFailure: (e) => succeed(left2(e)), onSuccess: (a) => succeed(right2(a)) }); var exit = (self) => matchCause(self, { onFailure: exitFailCause, onSuccess: exitSucceed }); var fail2 = (error) => isObject(error) && !(spanSymbol in error) ? withFiberRuntime((fiber) => failCause(fail(capture(error, currentSpanFromFiber(fiber))))) : failCause(fail(error)); var failSync = (evaluate2) => flatMap7(sync(evaluate2), fail2); var failCause = (cause) => { const effect = new EffectPrimitiveFailure(OP_FAILURE); effect.effect_instruction_i0 = cause; return effect; }; var failCauseSync = (evaluate2) => flatMap7(sync(evaluate2), failCause); var fiberId = /* @__PURE__ */ withFiberRuntime((state) => succeed(state.id())); var fiberIdWith = (f) => withFiberRuntime((state) => f(state.id())); var flatMap7 = /* @__PURE__ */ dual(2, (self, f) => { const effect = new EffectPrimitive(OP_ON_SUCCESS); effect.effect_instruction_i0 = self; effect.effect_instruction_i1 = f; return effect; }); var step2 = (self) => { const effect = new EffectPrimitive("OnStep"); effect.effect_instruction_i0 = self; return effect; }; var flatten4 = (self) => flatMap7(self, identity); var matchCause = /* @__PURE__ */ dual(2, (self, options) => matchCauseEffect(self, { onFailure: (cause) => succeed(options.onFailure(cause)), onSuccess: (a) => succeed(options.onSuccess(a)) })); var matchCauseEffect = /* @__PURE__ */ dual(2, (self, options) => { const effect = new EffectPrimitive(OP_ON_SUCCESS_AND_FAILURE); effect.effect_instruction_i0 = self; effect.effect_instruction_i1 = options.onFailure; effect.effect_instruction_i2 = options.onSuccess; return effect; }); var matchEffect = /* @__PURE__ */ dual(2, (self, options) => matchCauseEffect(self, { onFailure: (cause) => { const defects2 = defects(cause); if (defects2.length > 0) { return failCause(electFailures(cause)); } const failures2 = failures(cause); if (failures2.length > 0) { return options.onFailure(unsafeHead(failures2)); } return failCause(cause); }, onSuccess: options.onSuccess })); var forEachSequential = /* @__PURE__ */ dual(2, (self, f) => suspend(() => { const arr = fromIterable(self); const ret = allocate(arr.length); let i = 0; return as(whileLoop({ while: () => i < arr.length, body: () => f(arr[i], i), step: (b) => { ret[i++] = b; } }), ret); })); var forEachSequentialDiscard = /* @__PURE__ */ dual(2, (self, f) => suspend(() => { const arr = fromIterable(self); let i = 0; return whileLoop({ while: () => i < arr.length, body: () => f(arr[i], i), step: () => { i++; } }); })); var interruptible2 = (self) => { const effect = new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS); effect.effect_instruction_i0 = enable3(Interruption); effect.effect_instruction_i1 = () => self; return effect; }; var map9 = /* @__PURE__ */ dual(2, (self, f) => flatMap7(self, (a) => sync(() => f(a)))); var mapBoth2 = /* @__PURE__ */ dual(2, (self, options) => matchEffect(self, { onFailure: (e) => failSync(() => options.onFailure(e)), onSuccess: (a) => sync(() => options.onSuccess(a)) })); var mapError = /* @__PURE__ */ dual(2, (self, f) => matchCauseEffect(self, { onFailure: (cause) => { const either4 = failureOrCause(cause); switch (either4._tag) { case "Left": { return failSync(() => f(either4.left)); } case "Right": { return failCause(either4.right); } } }, onSuccess: succeed })); var onExit = /* @__PURE__ */ dual(2, (self, cleanup) => uninterruptibleMask((restore) => matchCauseEffect(restore(self), { onFailure: (cause1) => { const result = exitFailCause(cause1); return matchCauseEffect(cleanup(result), { onFailure: (cause2) => exitFailCause(sequential(cause1, cause2)), onSuccess: () => result }); }, onSuccess: (success) => { const result = exitSucceed(success); return zipRight(cleanup(result), result); } }))); var onInterrupt = /* @__PURE__ */ dual(2, (self, cleanup) => onExit(self, exitMatch({ onFailure: (cause) => isInterruptedOnly(cause) ? asVoid(cleanup(interruptors(cause))) : void_, onSuccess: () => void_ }))); var succeed = (value3) => { const effect = new EffectPrimitiveSuccess(OP_SUCCESS); effect.effect_instruction_i0 = value3; return effect; }; var suspend = (evaluate2) => { const effect = new EffectPrimitive(OP_COMMIT); effect.commit = evaluate2; return effect; }; var sync = (thunk) => { const effect = new EffectPrimitive(OP_SYNC); effect.effect_instruction_i0 = thunk; return effect; }; var tap = /* @__PURE__ */ dual((args2) => args2.length === 3 || args2.length === 2 && !(isObject(args2[1]) && "onlyEffect" in args2[1]), (self, f) => flatMap7(self, (a) => { const b = typeof f === "function" ? f(a) : f; if (isEffect(b)) { return as(b, a); } else if (isPromiseLike(b)) { return unsafeAsync((resume2) => { b.then((_) => resume2(succeed(a)), (e) => resume2(fail2(new UnknownException(e, "An unknown error occurred in Effect.tap")))); }); } return succeed(a); })); var transplant = (f) => withFiberRuntime((state) => { const scopeOverride = state.getFiberRef(currentForkScopeOverride); const scope2 = pipe(scopeOverride, getOrElse2(() => state.scope())); return f(fiberRefLocally(currentForkScopeOverride, some2(scope2))); }); var uninterruptible = (self) => { const effect = new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS); effect.effect_instruction_i0 = disable2(Interruption); effect.effect_instruction_i1 = () => self; return effect; }; var uninterruptibleMask = (f) => custom(f, function() { const effect = new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS); effect.effect_instruction_i0 = disable2(Interruption); effect.effect_instruction_i1 = (oldFlags) => interruption(oldFlags) ? internalCall(() => this.effect_instruction_i0(interruptible2)) : internalCall(() => this.effect_instruction_i0(uninterruptible)); return effect; }); var void_ = /* @__PURE__ */ succeed(void 0); var updateRuntimeFlags = (patch9) => { const effect = new EffectPrimitive(OP_UPDATE_RUNTIME_FLAGS); effect.effect_instruction_i0 = patch9; effect.effect_instruction_i1 = void 0; return effect; }; var whileLoop = (options) => { const effect = new EffectPrimitive(OP_WHILE); effect.effect_instruction_i0 = options.while; effect.effect_instruction_i1 = options.body; effect.effect_instruction_i2 = options.step; return effect; }; var yieldNow = (options) => { const effect = new EffectPrimitive(OP_YIELD); return typeof options?.priority !== "undefined" ? withSchedulingPriority(effect, options.priority) : effect; }; var zip2 = /* @__PURE__ */ dual(2, (self, that) => flatMap7(self, (a) => map9(that, (b) => [a, b]))); var zipLeft = /* @__PURE__ */ dual(2, (self, that) => flatMap7(self, (a) => as(that, a))); var zipRight = /* @__PURE__ */ dual(2, (self, that) => flatMap7(self, () => that)); var never = /* @__PURE__ */ asyncInterrupt(() => { const interval = setInterval(() => { }, 2 ** 31 - 1); return sync(() => clearInterval(interval)); }); var interruptFiber = (self) => flatMap7(fiberId, (fiberId2) => pipe(self, interruptAsFiber(fiberId2))); var interruptAsFiber = /* @__PURE__ */ dual(2, (self, fiberId2) => flatMap7(self.interruptAsFork(fiberId2), () => self.await)); var logLevelAll = { _tag: "All", syslog: 0, label: "ALL", ordinal: Number.MIN_SAFE_INTEGER, pipe() { return pipeArguments(this, arguments); } }; var logLevelFatal = { _tag: "Fatal", syslog: 2, label: "FATAL", ordinal: 5e4, pipe() { return pipeArguments(this, arguments); } }; var logLevelError = { _tag: "Error", syslog: 3, label: "ERROR", ordinal: 4e4, pipe() { return pipeArguments(this, arguments); } }; var logLevelWarning = { _tag: "Warning", syslog: 4, label: "WARN", ordinal: 3e4, pipe() { return pipeArguments(this, arguments); } }; var logLevelInfo = { _tag: "Info", syslog: 6, label: "INFO", ordinal: 2e4, pipe() { return pipeArguments(this, arguments); } }; var logLevelDebug = { _tag: "Debug", syslog: 7, label: "DEBUG", ordinal: 1e4, pipe() { return pipeArguments(this, arguments); } }; var logLevelTrace = { _tag: "Trace", syslog: 7, label: "TRACE", ordinal: 0, pipe() { return pipeArguments(this, arguments); } }; var logLevelNone = { _tag: "None", syslog: 7, label: "OFF", ordinal: Number.MAX_SAFE_INTEGER, pipe() { return pipeArguments(this, arguments); } }; var FiberRefSymbolKey = "effect/FiberRef"; var FiberRefTypeId = /* @__PURE__ */ Symbol.for(FiberRefSymbolKey); var fiberRefVariance = { /* c8 ignore next */ _A: (_) => _ }; var fiberRefGet = (self) => withFiberRuntime((fiber) => exitSucceed(fiber.getFiberRef(self))); var fiberRefGetWith = /* @__PURE__ */ dual(2, (self, f) => flatMap7(fiberRefGet(self), f)); var fiberRefSet = /* @__PURE__ */ dual(2, (self, value3) => fiberRefModify(self, () => [void 0, value3])); var fiberRefModify = /* @__PURE__ */ dual(2, (self, f) => withFiberRuntime((state) => { const [b, a] = f(state.getFiberRef(self)); state.setFiberRef(self, a); return succeed(b); })); var RequestResolverSymbolKey = "effect/RequestResolver"; var RequestResolverTypeId = /* @__PURE__ */ Symbol.for(RequestResolverSymbolKey); var requestResolverVariance = { /* c8 ignore next */ _A: (_) => _, /* c8 ignore next */ _R: (_) => _ }; var RequestResolverImpl = class _RequestResolverImpl { runAll; target; [RequestResolverTypeId] = requestResolverVariance; constructor(runAll, target) { this.runAll = runAll; this.target = target; } [symbol]() { return cached(this, this.target ? hash(this.target) : random(this)); } [symbol2](that) { return this.target ? isRequestResolver(that) && equals(this.target, that.target) : this === that; } identified(...ids3) { return new _RequestResolverImpl(this.runAll, fromIterable2(ids3)); } pipe() { return pipeArguments(this, arguments); } }; var isRequestResolver = (u) => hasProperty(u, RequestResolverTypeId); var fiberRefLocally = /* @__PURE__ */ dual(3, (use, self, value3) => acquireUseRelease(zipLeft(fiberRefGet(self), fiberRefSet(self, value3)), () => use, (oldValue) => fiberRefSet(self, oldValue))); var fiberRefUnsafeMake = (initial, options) => fiberRefUnsafeMakePatch(initial, { differ: update(), fork: options?.fork ?? identity, join: options?.join }); var fiberRefUnsafeMakeHashSet = (initial) => { const differ3 = hashSet(); return fiberRefUnsafeMakePatch(initial, { differ: differ3, fork: differ3.empty }); }; var fiberRefUnsafeMakeReadonlyArray = (initial) => { const differ3 = readonlyArray(update()); return fiberRefUnsafeMakePatch(initial, { differ: differ3, fork: differ3.empty }); }; var fiberRefUnsafeMakeContext = (initial) => { const differ3 = environment(); return fiberRefUnsafeMakePatch(initial, { differ: differ3, fork: differ3.empty }); }; var fiberRefUnsafeMakePatch = (initial, options) => { const _fiberRef = { ...CommitPrototype, [FiberRefTypeId]: fiberRefVariance, initial, commit() { return fiberRefGet(this); }, diff: (oldValue, newValue) => options.differ.diff(oldValue, newValue), combine: (first2, second) => options.differ.combine(first2, second), patch: (patch9) => (oldValue) => options.differ.patch(patch9, oldValue), fork: options.fork, join: options.join ?? ((_, n) => n) }; return _fiberRef; }; var fiberRefUnsafeMakeRuntimeFlags = (initial) => fiberRefUnsafeMakePatch(initial, { differ, fork: differ.empty }); var currentContext = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentContext"), () => fiberRefUnsafeMakeContext(empty3())); var currentSchedulingPriority = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentSchedulingPriority"), () => fiberRefUnsafeMake(0)); var currentMaxOpsBeforeYield = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentMaxOpsBeforeYield"), () => fiberRefUnsafeMake(2048)); var currentLogAnnotations = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentLogAnnotation"), () => fiberRefUnsafeMake(empty8())); var currentLogLevel = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentLogLevel"), () => fiberRefUnsafeMake(logLevelInfo)); var currentLogSpan = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentLogSpan"), () => fiberRefUnsafeMake(empty9())); var withSchedulingPriority = /* @__PURE__ */ dual(2, (self, scheduler2) => fiberRefLocally(self, currentSchedulingPriority, scheduler2)); var currentConcurrency = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentConcurrency"), () => fiberRefUnsafeMake("unbounded")); var currentRequestBatching = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentRequestBatching"), () => fiberRefUnsafeMake(true)); var currentUnhandledErrorLogLevel = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentUnhandledErrorLogLevel"), () => fiberRefUnsafeMake(some2(logLevelDebug))); var currentMetricLabels = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentMetricLabels"), () => fiberRefUnsafeMakeReadonlyArray(empty())); var currentForkScopeOverride = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentForkScopeOverride"), () => fiberRefUnsafeMake(none2(), { fork: () => none2(), join: (parent, _) => parent })); var currentInterruptedCause = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentInterruptedCause"), () => fiberRefUnsafeMake(empty14, { fork: () => empty14, join: (parent, _) => parent })); var ScopeTypeId = /* @__PURE__ */ Symbol.for("effect/Scope"); var CloseableScopeTypeId = /* @__PURE__ */ Symbol.for("effect/CloseableScope"); var scopeAddFinalizer = (self, finalizer) => self.addFinalizer(() => asVoid(finalizer)); var scopeClose = (self, exit3) => self.close(exit3); var scopeFork = (self, strategy) => self.fork(strategy); var YieldableError = /* @__PURE__ */ function() { class YieldableError2 extends globalThis.Error { commit() { return fail2(this); } toJSON() { const obj = { ...this }; if (this.message) obj.message = this.message; if (this.cause) obj.cause = this.cause; return obj; } [NodeInspectSymbol]() { if (this.toString !== globalThis.Error.prototype.toString) { return this.stack ? `${this.toString()} ${this.stack.split("\n").slice(1).join("\n")}` : this.toString(); } else if ("Bun" in globalThis) { return pretty(fail(this), { renderErrorCause: true }); } return this; } } Object.assign(YieldableError2.prototype, StructuralCommitPrototype); return YieldableError2; }(); var makeException = (proto5, tag2) => { class Base3 extends YieldableError { _tag = tag2; } Object.assign(Base3.prototype, proto5); Base3.prototype.name = tag2; return Base3; }; var RuntimeExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/RuntimeException"); var RuntimeException = /* @__PURE__ */ makeException({ [RuntimeExceptionTypeId]: RuntimeExceptionTypeId }, "RuntimeException"); var InterruptedExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/InterruptedException"); var InterruptedException = /* @__PURE__ */ makeException({ [InterruptedExceptionTypeId]: InterruptedExceptionTypeId }, "InterruptedException"); var isInterruptedException = (u) => hasProperty(u, InterruptedExceptionTypeId); var IllegalArgumentExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/IllegalArgument"); var IllegalArgumentException = /* @__PURE__ */ makeException({ [IllegalArgumentExceptionTypeId]: IllegalArgumentExceptionTypeId }, "IllegalArgumentException"); var NoSuchElementExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/NoSuchElement"); var NoSuchElementException = /* @__PURE__ */ makeException({ [NoSuchElementExceptionTypeId]: NoSuchElementExceptionTypeId }, "NoSuchElementException"); var InvalidPubSubCapacityExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"); var InvalidPubSubCapacityException = /* @__PURE__ */ makeException({ [InvalidPubSubCapacityExceptionTypeId]: InvalidPubSubCapacityExceptionTypeId }, "InvalidPubSubCapacityException"); var ExceededCapacityExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/ExceededCapacityException"); var ExceededCapacityException = /* @__PURE__ */ makeException({ [ExceededCapacityExceptionTypeId]: ExceededCapacityExceptionTypeId }, "ExceededCapacityException"); var TimeoutExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/Timeout"); var TimeoutException = /* @__PURE__ */ makeException({ [TimeoutExceptionTypeId]: TimeoutExceptionTypeId }, "TimeoutException"); var UnknownExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/UnknownException"); var UnknownException = /* @__PURE__ */ function() { class UnknownException2 extends YieldableError { _tag = "UnknownException"; error; constructor(cause, message) { super(message ?? "An unknown error occurred", { cause }); this.error = cause; } } Object.assign(UnknownException2.prototype, { [UnknownExceptionTypeId]: UnknownExceptionTypeId, name: "UnknownException" }); return UnknownException2; }(); var exitIsExit = (u) => isEffect(u) && "_tag" in u && (u._tag === "Success" || u._tag === "Failure"); var exitIsSuccess = (self) => self._tag === "Success"; var exitAs = /* @__PURE__ */ dual(2, (self, value3) => { switch (self._tag) { case OP_FAILURE: { return exitFailCause(self.effect_instruction_i0); } case OP_SUCCESS: { return exitSucceed(value3); } } }); var exitAsVoid = (self) => exitAs(self, void 0); var exitCollectAll = (exits, options) => exitCollectAllInternal(exits, options?.parallel ? parallel : sequential); var exitDie = (defect) => exitFailCause(die(defect)); var exitFail = (error) => exitFailCause(fail(error)); var exitFailCause = (cause) => { const effect = new EffectPrimitiveFailure(OP_FAILURE); effect.effect_instruction_i0 = cause; return effect; }; var exitInterrupt = (fiberId2) => exitFailCause(interrupt(fiberId2)); var exitMap = /* @__PURE__ */ dual(2, (self, f) => { switch (self._tag) { case OP_FAILURE: return exitFailCause(self.effect_instruction_i0); case OP_SUCCESS: return exitSucceed(f(self.effect_instruction_i0)); } }); var exitMatch = /* @__PURE__ */ dual(2, (self, { onFailure, onSuccess }) => { switch (self._tag) { case OP_FAILURE: return onFailure(self.effect_instruction_i0); case OP_SUCCESS: return onSuccess(self.effect_instruction_i0); } }); var exitSucceed = (value3) => { const effect = new EffectPrimitiveSuccess(OP_SUCCESS); effect.effect_instruction_i0 = value3; return effect; }; var exitVoid = /* @__PURE__ */ exitSucceed(void 0); var exitZipWith = /* @__PURE__ */ dual(3, (self, that, { onFailure, onSuccess }) => { switch (self._tag) { case OP_FAILURE: { switch (that._tag) { case OP_SUCCESS: return exitFailCause(self.effect_instruction_i0); case OP_FAILURE: { return exitFailCause(onFailure(self.effect_instruction_i0, that.effect_instruction_i0)); } } } case OP_SUCCESS: { switch (that._tag) { case OP_SUCCESS: return exitSucceed(onSuccess(self.effect_instruction_i0, that.effect_instruction_i0)); case OP_FAILURE: return exitFailCause(that.effect_instruction_i0); } } } }); var exitCollectAllInternal = (exits, combineCauses) => { const list = fromIterable2(exits); if (!isNonEmpty2(list)) { return none2(); } return pipe(tailNonEmpty2(list), reduce(pipe(headNonEmpty2(list), exitMap(of2)), (accumulator, current) => pipe(accumulator, exitZipWith(current, { onSuccess: (list2, value3) => pipe(list2, prepend2(value3)), onFailure: combineCauses }))), exitMap(reverse2), exitMap((chunk3) => toReadonlyArray(chunk3)), some2); }; var deferredUnsafeMake = (fiberId2) => { const _deferred = { ...CommitPrototype, [DeferredTypeId]: deferredVariance, state: make12(pending([])), commit() { return deferredAwait(this); }, blockingOn: fiberId2 }; return _deferred; }; var deferredAwait = (self) => asyncInterrupt((resume2) => { const state = get5(self.state); switch (state._tag) { case OP_STATE_DONE: { return resume2(state.effect); } case OP_STATE_PENDING: { state.joiners.push(resume2); return deferredInterruptJoiner(self, resume2); } } }, self.blockingOn); var deferredUnsafeDone = (self, effect) => { const state = get5(self.state); if (state._tag === OP_STATE_PENDING) { set2(self.state, done(effect)); for (let i = 0, len = state.joiners.length; i < len; i++) { state.joiners[i](effect); } } }; var deferredInterruptJoiner = (self, joiner) => sync(() => { const state = get5(self.state); if (state._tag === OP_STATE_PENDING) { const index = state.joiners.indexOf(joiner); if (index >= 0) { state.joiners.splice(index, 1); } } }); var constContext = /* @__PURE__ */ withFiberRuntime((fiber) => exitSucceed(fiber.currentContext)); var context2 = () => constContext; var contextWithEffect = (f) => flatMap7(context2(), f); var provideContext = /* @__PURE__ */ dual(2, (self, context3) => fiberRefLocally(currentContext, context3)(self)); var mapInputContext = /* @__PURE__ */ dual(2, (self, f) => contextWithEffect((context3) => provideContext(self, f(context3)))); var currentSpanFromFiber = (fiber) => { const span2 = fiber.currentSpan; return span2 !== void 0 && span2._tag === "Span" ? some2(span2) : none2(); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Exit.js var isExit = exitIsExit; var isSuccess = exitIsSuccess; var failCause2 = exitFailCause; var match6 = exitMatch; var succeed2 = exitSucceed; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/MutableHashMap.js var TypeId10 = /* @__PURE__ */ Symbol.for("effect/MutableHashMap"); var MutableHashMapProto = { [TypeId10]: TypeId10, [Symbol.iterator]() { return new MutableHashMapIterator(this); }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "MutableHashMap", values: Array.from(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var MutableHashMapIterator = class _MutableHashMapIterator { self; referentialIterator; bucketIterator; constructor(self) { this.self = self; this.referentialIterator = self.referential[Symbol.iterator](); } next() { if (this.bucketIterator !== void 0) { return this.bucketIterator.next(); } const result = this.referentialIterator.next(); if (result.done) { this.bucketIterator = new BucketIterator(this.self.buckets.values()); return this.next(); } return result; } [Symbol.iterator]() { return new _MutableHashMapIterator(this.self); } }; var BucketIterator = class { backing; constructor(backing) { this.backing = backing; } currentBucket; next() { if (this.currentBucket === void 0) { const result2 = this.backing.next(); if (result2.done) { return result2; } this.currentBucket = result2.value[Symbol.iterator](); } const result = this.currentBucket.next(); if (result.done) { this.currentBucket = void 0; return this.next(); } return result; } }; var empty15 = () => { const self = Object.create(MutableHashMapProto); self.referential = /* @__PURE__ */ new Map(); self.buckets = /* @__PURE__ */ new Map(); self.bucketsSize = 0; return self; }; var get7 = /* @__PURE__ */ dual(2, (self, key) => { if (isEqual(key) === false) { return self.referential.has(key) ? some2(self.referential.get(key)) : none2(); } const hash3 = key[symbol](); const bucket = self.buckets.get(hash3); if (bucket === void 0) { return none2(); } return getFromBucket(self, bucket, key); }); var getFromBucket = (self, bucket, key, remove6 = false) => { for (let i = 0, len = bucket.length; i < len; i++) { if (key[symbol2](bucket[i][0])) { const value3 = bucket[i][1]; if (remove6) { bucket.splice(i, 1); self.bucketsSize--; } return some2(value3); } } return none2(); }; var has4 = /* @__PURE__ */ dual(2, (self, key) => isSome2(get7(self, key))); var set4 = /* @__PURE__ */ dual(3, (self, key, value3) => { if (isEqual(key) === false) { self.referential.set(key, value3); return self; } const hash3 = key[symbol](); const bucket = self.buckets.get(hash3); if (bucket === void 0) { self.buckets.set(hash3, [[key, value3]]); self.bucketsSize++; return self; } removeFromBucket(self, bucket, key); bucket.push([key, value3]); self.bucketsSize++; return self; }); var removeFromBucket = (self, bucket, key) => { for (let i = 0, len = bucket.length; i < len; i++) { if (key[symbol2](bucket[i][0])) { bucket.splice(i, 1); self.bucketsSize--; return; } } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/clock.js var ClockSymbolKey = "effect/Clock"; var ClockTypeId = /* @__PURE__ */ Symbol.for(ClockSymbolKey); var clockTag = /* @__PURE__ */ GenericTag("effect/Clock"); var MAX_TIMER_MILLIS = 2 ** 31 - 1; var globalClockScheduler = { unsafeSchedule(task, duration2) { const millis2 = toMillis(duration2); if (millis2 > MAX_TIMER_MILLIS) { return constFalse; } let completed = false; const handle = setTimeout(() => { completed = true; task(); }, millis2); return () => { clearTimeout(handle); return !completed; }; } }; var performanceNowNanos = /* @__PURE__ */ function() { const bigint1e62 = /* @__PURE__ */ BigInt(1e6); if (typeof performance === "undefined") { return () => BigInt(Date.now()) * bigint1e62; } else if (typeof performance.timeOrigin === "number" && performance.timeOrigin === 0) { return () => BigInt(Math.round(performance.now() * 1e6)); } const origin = /* @__PURE__ */ BigInt(/* @__PURE__ */ Date.now()) * bigint1e62 - /* @__PURE__ */ BigInt(/* @__PURE__ */ Math.round(/* @__PURE__ */ performance.now() * 1e6)); return () => origin + BigInt(Math.round(performance.now() * 1e6)); }(); var processOrPerformanceNow = /* @__PURE__ */ function() { const processHrtime = typeof process === "object" && "hrtime" in process && typeof process.hrtime.bigint === "function" ? process.hrtime : void 0; if (!processHrtime) { return performanceNowNanos; } const origin = /* @__PURE__ */ performanceNowNanos() - /* @__PURE__ */ processHrtime.bigint(); return () => origin + processHrtime.bigint(); }(); var ClockImpl = class { [ClockTypeId] = ClockTypeId; unsafeCurrentTimeMillis() { return Date.now(); } unsafeCurrentTimeNanos() { return processOrPerformanceNow(); } currentTimeMillis = /* @__PURE__ */ sync(() => this.unsafeCurrentTimeMillis()); currentTimeNanos = /* @__PURE__ */ sync(() => this.unsafeCurrentTimeNanos()); scheduler() { return succeed(globalClockScheduler); } sleep(duration2) { return async_((resume2) => { const canceler = globalClockScheduler.unsafeSchedule(() => resume2(void_), duration2); return asVoid(sync(canceler)); }); } }; var make19 = () => new ClockImpl(); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/opCodes/configError.js var OP_AND = "And"; var OP_OR = "Or"; var OP_INVALID_DATA = "InvalidData"; var OP_MISSING_DATA = "MissingData"; var OP_SOURCE_UNAVAILABLE = "SourceUnavailable"; var OP_UNSUPPORTED = "Unsupported"; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/configError.js var ConfigErrorSymbolKey = "effect/ConfigError"; var ConfigErrorTypeId = /* @__PURE__ */ Symbol.for(ConfigErrorSymbolKey); var proto2 = { _tag: "ConfigError", [ConfigErrorTypeId]: ConfigErrorTypeId }; var And = (self, that) => { const error = Object.create(proto2); error._op = OP_AND; error.left = self; error.right = that; Object.defineProperty(error, "toString", { enumerable: false, value() { return `${this.left} and ${this.right}`; } }); return error; }; var Or = (self, that) => { const error = Object.create(proto2); error._op = OP_OR; error.left = self; error.right = that; Object.defineProperty(error, "toString", { enumerable: false, value() { return `${this.left} or ${this.right}`; } }); return error; }; var InvalidData = (path2, message, options = { pathDelim: "." }) => { const error = Object.create(proto2); error._op = OP_INVALID_DATA; error.path = path2; error.message = message; Object.defineProperty(error, "toString", { enumerable: false, value() { const path3 = pipe(this.path, join(options.pathDelim)); return `(Invalid data at ${path3}: "${this.message}")`; } }); return error; }; var MissingData = (path2, message, options = { pathDelim: "." }) => { const error = Object.create(proto2); error._op = OP_MISSING_DATA; error.path = path2; error.message = message; Object.defineProperty(error, "toString", { enumerable: false, value() { const path3 = pipe(this.path, join(options.pathDelim)); return `(Missing data at ${path3}: "${this.message}")`; } }); return error; }; var SourceUnavailable = (path2, message, cause, options = { pathDelim: "." }) => { const error = Object.create(proto2); error._op = OP_SOURCE_UNAVAILABLE; error.path = path2; error.message = message; error.cause = cause; Object.defineProperty(error, "toString", { enumerable: false, value() { const path3 = pipe(this.path, join(options.pathDelim)); return `(Source unavailable at ${path3}: "${this.message}")`; } }); return error; }; var Unsupported = (path2, message, options = { pathDelim: "." }) => { const error = Object.create(proto2); error._op = OP_UNSUPPORTED; error.path = path2; error.message = message; Object.defineProperty(error, "toString", { enumerable: false, value() { const path3 = pipe(this.path, join(options.pathDelim)); return `(Unsupported operation at ${path3}: "${this.message}")`; } }); return error; }; var prefixed = /* @__PURE__ */ dual(2, (self, prefix) => { switch (self._op) { case OP_AND: { return And(prefixed(self.left, prefix), prefixed(self.right, prefix)); } case OP_OR: { return Or(prefixed(self.left, prefix), prefixed(self.right, prefix)); } case OP_INVALID_DATA: { return InvalidData([...prefix, ...self.path], self.message); } case OP_MISSING_DATA: { return MissingData([...prefix, ...self.path], self.message); } case OP_SOURCE_UNAVAILABLE: { return SourceUnavailable([...prefix, ...self.path], self.message, self.cause); } case OP_UNSUPPORTED: { return Unsupported([...prefix, ...self.path], self.message); } } }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/configProvider/pathPatch.js var empty16 = { _tag: "Empty" }; var patch5 = /* @__PURE__ */ dual(2, (path2, patch9) => { let input = of3(patch9); let output = path2; while (isCons(input)) { const patch10 = input.head; switch (patch10._tag) { case "Empty": { input = input.tail; break; } case "AndThen": { input = cons(patch10.first, cons(patch10.second, input.tail)); break; } case "MapName": { output = map3(output, patch10.f); input = input.tail; break; } case "Nested": { output = prepend(output, patch10.name); input = input.tail; break; } case "Unnested": { const containsName = pipe(head(output), contains(patch10.name)); if (containsName) { output = tailNonEmpty(output); input = input.tail; } else { return left2(MissingData(output, `Expected ${patch10.name} to be in path in ConfigProvider#unnested`)); } break; } } } return right2(output); }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/opCodes/config.js var OP_CONSTANT = "Constant"; var OP_FAIL2 = "Fail"; var OP_FALLBACK = "Fallback"; var OP_DESCRIBED = "Described"; var OP_LAZY = "Lazy"; var OP_MAP_OR_FAIL = "MapOrFail"; var OP_NESTED = "Nested"; var OP_PRIMITIVE = "Primitive"; var OP_SEQUENCE = "Sequence"; var OP_HASHMAP = "HashMap"; var OP_ZIP_WITH = "ZipWith"; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/configProvider.js var concat = (l, r) => [...l, ...r]; var ConfigProviderSymbolKey = "effect/ConfigProvider"; var ConfigProviderTypeId = /* @__PURE__ */ Symbol.for(ConfigProviderSymbolKey); var configProviderTag = /* @__PURE__ */ GenericTag("effect/ConfigProvider"); var FlatConfigProviderSymbolKey = "effect/ConfigProviderFlat"; var FlatConfigProviderTypeId = /* @__PURE__ */ Symbol.for(FlatConfigProviderSymbolKey); var make21 = (options) => ({ [ConfigProviderTypeId]: ConfigProviderTypeId, pipe() { return pipeArguments(this, arguments); }, ...options }); var makeFlat = (options) => ({ [FlatConfigProviderTypeId]: FlatConfigProviderTypeId, patch: options.patch, load: (path2, config2, split3 = true) => options.load(path2, config2, split3), enumerateChildren: options.enumerateChildren }); var fromFlat = (flat) => make21({ load: (config2) => flatMap7(fromFlatLoop(flat, empty(), config2, false), (chunk3) => match2(head(chunk3), { onNone: () => fail2(MissingData(empty(), `Expected a single value having structure: ${config2}`)), onSome: succeed })), flattened: flat }); var fromEnv = (config2) => { const { pathDelim, seqDelim } = Object.assign({}, { pathDelim: "_", seqDelim: "," }, config2); const makePathString = (path2) => pipe(path2, join(pathDelim)); const unmakePathString = (pathString) => pathString.split(pathDelim); const getEnv = () => typeof process !== "undefined" && "env" in process && typeof process.env === "object" ? process.env : {}; const load = (path2, primitive2, split3 = true) => { const pathString = makePathString(path2); const current = getEnv(); const valueOpt = pathString in current ? some2(current[pathString]) : none2(); return pipe(valueOpt, mapError(() => MissingData(path2, `Expected ${pathString} to exist in the process context`)), flatMap7((value3) => parsePrimitive(value3, path2, primitive2, seqDelim, split3))); }; const enumerateChildren = (path2) => sync(() => { const current = getEnv(); const keys5 = Object.keys(current); const keyPaths = keys5.map((value3) => unmakePathString(value3.toUpperCase())); const filteredKeyPaths = keyPaths.filter((keyPath) => { for (let i = 0; i < path2.length; i++) { const pathComponent = pipe(path2, unsafeGet(i)); const currentElement = keyPath[i]; if (currentElement === void 0 || pathComponent !== currentElement) { return false; } } return true; }).flatMap((keyPath) => keyPath.slice(path2.length, path2.length + 1)); return fromIterable5(filteredKeyPaths); }); return fromFlat(makeFlat({ load, enumerateChildren, patch: empty16 })); }; var extend = (leftDef, rightDef, left3, right3) => { const leftPad = unfold(left3.length, (index) => index >= right3.length ? none2() : some2([leftDef(index), index + 1])); const rightPad = unfold(right3.length, (index) => index >= left3.length ? none2() : some2([rightDef(index), index + 1])); const leftExtension = concat(left3, leftPad); const rightExtension = concat(right3, rightPad); return [leftExtension, rightExtension]; }; var appendConfigPath = (path2, config2) => { let op = config2; if (op._tag === "Nested") { const out = path2.slice(); while (op._tag === "Nested") { out.push(op.name); op = op.config; } return out; } return path2; }; var fromFlatLoop = (flat, prefix, config2, split3) => { const op = config2; switch (op._tag) { case OP_CONSTANT: { return succeed(of(op.value)); } case OP_DESCRIBED: { return suspend(() => fromFlatLoop(flat, prefix, op.config, split3)); } case OP_FAIL2: { return fail2(MissingData(prefix, op.message)); } case OP_FALLBACK: { return pipe(suspend(() => fromFlatLoop(flat, prefix, op.first, split3)), catchAll((error1) => { if (op.condition(error1)) { return pipe(fromFlatLoop(flat, prefix, op.second, split3), catchAll((error2) => fail2(Or(error1, error2)))); } return fail2(error1); })); } case OP_LAZY: { return suspend(() => fromFlatLoop(flat, prefix, op.config(), split3)); } case OP_MAP_OR_FAIL: { return suspend(() => pipe(fromFlatLoop(flat, prefix, op.original, split3), flatMap7(forEachSequential((a) => pipe(op.mapOrFail(a), mapError(prefixed(appendConfigPath(prefix, op.original)))))))); } case OP_NESTED: { return suspend(() => fromFlatLoop(flat, concat(prefix, of(op.name)), op.config, split3)); } case OP_PRIMITIVE: { return pipe(patch5(prefix, flat.patch), flatMap7((prefix2) => pipe(flat.load(prefix2, op, split3), flatMap7((values4) => { if (values4.length === 0) { const name = pipe(last(prefix2), getOrElse2(() => "")); return fail2(MissingData([], `Expected ${op.description} with name ${name}`)); } return succeed(values4); })))); } case OP_SEQUENCE: { return pipe(patch5(prefix, flat.patch), flatMap7((patchedPrefix) => pipe(flat.enumerateChildren(patchedPrefix), flatMap7(indicesFrom), flatMap7((indices) => { if (indices.length === 0) { return suspend(() => map9(fromFlatLoop(flat, prefix, op.config, true), of)); } return pipe(forEachSequential(indices, (index) => fromFlatLoop(flat, append(prefix, `[${index}]`), op.config, true)), map9((chunkChunk) => { const flattened = flatten(chunkChunk); if (flattened.length === 0) { return of(empty()); } return of(flattened); })); })))); } case OP_HASHMAP: { return suspend(() => pipe(patch5(prefix, flat.patch), flatMap7((prefix2) => pipe(flat.enumerateChildren(prefix2), flatMap7((keys5) => { return pipe(keys5, forEachSequential((key) => fromFlatLoop(flat, concat(prefix2, of(key)), op.valueConfig, split3)), map9((matrix) => { if (matrix.length === 0) { return of(empty8()); } return pipe(transpose(matrix), map3((values4) => fromIterable6(zip(fromIterable(keys5), values4)))); })); }))))); } case OP_ZIP_WITH: { return suspend(() => pipe(fromFlatLoop(flat, prefix, op.left, split3), either2, flatMap7((left3) => pipe(fromFlatLoop(flat, prefix, op.right, split3), either2, flatMap7((right3) => { if (isLeft2(left3) && isLeft2(right3)) { return fail2(And(left3.left, right3.left)); } if (isLeft2(left3) && isRight2(right3)) { return fail2(left3.left); } if (isRight2(left3) && isLeft2(right3)) { return fail2(right3.left); } if (isRight2(left3) && isRight2(right3)) { const path2 = pipe(prefix, join(".")); const fail7 = fromFlatLoopFail(prefix, path2); const [lefts, rights] = extend(fail7, fail7, pipe(left3.right, map3(right2)), pipe(right3.right, map3(right2))); return pipe(lefts, zip(rights), forEachSequential(([left4, right4]) => pipe(zip2(left4, right4), map9(([left5, right5]) => op.zip(left5, right5))))); } throw new Error("BUG: ConfigProvider.fromFlatLoop - please report an issue at https://github.com/Effect-TS/effect/issues"); }))))); } } }; var fromFlatLoopFail = (prefix, path2) => (index) => left2(MissingData(prefix, `The element at index ${index} in a sequence at path "${path2}" was missing`)); var splitPathString = (text, delim) => { const split3 = text.split(new RegExp(`\\s*${escape(delim)}\\s*`)); return split3; }; var parsePrimitive = (text, path2, primitive2, delimiter, split3) => { if (!split3) { return pipe(primitive2.parse(text), mapBoth2({ onFailure: prefixed(path2), onSuccess: of })); } return pipe(splitPathString(text, delimiter), forEachSequential((char2) => primitive2.parse(char2.trim())), mapError(prefixed(path2))); }; var transpose = (array6) => { return Object.keys(array6[0]).map((column) => array6.map((row) => row[column])); }; var indicesFrom = (quotedIndices) => pipe(forEachSequential(quotedIndices, parseQuotedIndex), mapBoth2({ onFailure: () => empty(), onSuccess: sort(Order) }), either2, map9(merge)); var QUOTED_INDEX_REGEX = /^(\[(\d+)\])$/; var parseQuotedIndex = (str) => { const match10 = str.match(QUOTED_INDEX_REGEX); if (match10 !== null) { const matchedIndex = match10[2]; return pipe(matchedIndex !== void 0 && matchedIndex.length > 0 ? some2(matchedIndex) : none2(), flatMap2(parseInteger)); } return none2(); }; var parseInteger = (str) => { const parsedIndex = Number.parseInt(str); return Number.isNaN(parsedIndex) ? none2() : some2(parsedIndex); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/defaultServices/console.js var TypeId11 = /* @__PURE__ */ Symbol.for("effect/Console"); var consoleTag = /* @__PURE__ */ GenericTag("effect/Console"); var defaultConsole = { [TypeId11]: TypeId11, assert(condition, ...args2) { return sync(() => { console.assert(condition, ...args2); }); }, clear: /* @__PURE__ */ sync(() => { console.clear(); }), count(label) { return sync(() => { console.count(label); }); }, countReset(label) { return sync(() => { console.countReset(label); }); }, debug(...args2) { return sync(() => { console.debug(...args2); }); }, dir(item, options) { return sync(() => { console.dir(item, options); }); }, dirxml(...args2) { return sync(() => { console.dirxml(...args2); }); }, error(...args2) { return sync(() => { console.error(...args2); }); }, group(options) { return options?.collapsed ? sync(() => console.groupCollapsed(options?.label)) : sync(() => console.group(options?.label)); }, groupEnd: /* @__PURE__ */ sync(() => { console.groupEnd(); }), info(...args2) { return sync(() => { console.info(...args2); }); }, log(...args2) { return sync(() => { console.log(...args2); }); }, table(tabularData, properties) { return sync(() => { console.table(tabularData, properties); }); }, time(label) { return sync(() => console.time(label)); }, timeEnd(label) { return sync(() => console.timeEnd(label)); }, timeLog(label, ...args2) { return sync(() => { console.timeLog(label, ...args2); }); }, trace(...args2) { return sync(() => { console.trace(...args2); }); }, warn(...args2) { return sync(() => { console.warn(...args2); }); }, unsafe: console }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/random.js var RandomSymbolKey = "effect/Random"; var RandomTypeId = /* @__PURE__ */ Symbol.for(RandomSymbolKey); var randomTag = /* @__PURE__ */ GenericTag("effect/Random"); var RandomImpl = class { seed; [RandomTypeId] = RandomTypeId; PRNG; constructor(seed) { this.seed = seed; this.PRNG = new PCGRandom(seed); } get next() { return sync(() => this.PRNG.number()); } get nextBoolean() { return map9(this.next, (n) => n > 0.5); } get nextInt() { return sync(() => this.PRNG.integer(Number.MAX_SAFE_INTEGER)); } nextRange(min3, max3) { return map9(this.next, (n) => (max3 - min3) * n + min3); } nextIntBetween(min3, max3) { return sync(() => this.PRNG.integer(max3 - min3) + min3); } shuffle(elements) { return shuffleWith(elements, (n) => this.nextIntBetween(0, n)); } }; var shuffleWith = (elements, nextIntBounded) => { return suspend(() => pipe(sync(() => Array.from(elements)), flatMap7((buffer) => { const numbers = []; for (let i = buffer.length; i >= 2; i = i - 1) { numbers.push(i); } return pipe(numbers, forEachSequentialDiscard((n) => pipe(nextIntBounded(n), map9((k) => swap(buffer, n - 1, k)))), as(fromIterable2(buffer))); }))); }; var swap = (buffer, index1, index2) => { const tmp = buffer[index1]; buffer[index1] = buffer[index2]; buffer[index2] = tmp; return buffer; }; var make22 = (seed) => new RandomImpl(hash(seed)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/tracer.js var TracerTypeId = /* @__PURE__ */ Symbol.for("effect/Tracer"); var make23 = (options) => ({ [TracerTypeId]: TracerTypeId, ...options }); var tracerTag = /* @__PURE__ */ GenericTag("effect/Tracer"); var spanTag = /* @__PURE__ */ GenericTag("effect/ParentSpan"); var randomHexString = /* @__PURE__ */ function() { const characters = "abcdef0123456789"; const charactersLength = characters.length; return function(length2) { let result = ""; for (let i = 0; i < length2; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; }; }(); var NativeSpan = class { name; parent; context; links; startTime; kind; _tag = "Span"; spanId; traceId = "native"; sampled = true; status; attributes; events = []; constructor(name, parent, context3, links, startTime, kind) { this.name = name; this.parent = parent; this.context = context3; this.links = links; this.startTime = startTime; this.kind = kind; this.status = { _tag: "Started", startTime }; this.attributes = /* @__PURE__ */ new Map(); this.traceId = parent._tag === "Some" ? parent.value.traceId : randomHexString(32); this.spanId = randomHexString(16); } end(endTime, exit3) { this.status = { _tag: "Ended", endTime, exit: exit3, startTime: this.status.startTime }; } attribute(key, value3) { this.attributes.set(key, value3); } event(name, startTime, attributes) { this.events.push([name, startTime, attributes ?? {}]); } }; var nativeTracer = /* @__PURE__ */ make23({ span: (name, parent, context3, links, startTime, kind) => new NativeSpan(name, parent, context3, links, startTime, kind), context: (f) => f() }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/defaultServices.js var liveServices = /* @__PURE__ */ pipe(/* @__PURE__ */ empty3(), /* @__PURE__ */ add2(clockTag, /* @__PURE__ */ make19()), /* @__PURE__ */ add2(consoleTag, defaultConsole), /* @__PURE__ */ add2(randomTag, /* @__PURE__ */ make22(/* @__PURE__ */ Math.random())), /* @__PURE__ */ add2(configProviderTag, /* @__PURE__ */ fromEnv()), /* @__PURE__ */ add2(tracerTag, nativeTracer)); var currentServices = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/DefaultServices/currentServices"), () => fiberRefUnsafeMakeContext(liveServices)); var defaultServicesWith = (f) => withFiberRuntime((fiber) => f(fiber.currentDefaultServices)); var configProviderWith = (f) => defaultServicesWith((services) => f(services.unsafeMap.get(configProviderTag.key))); var config = (config2) => configProviderWith((_) => _.load(config2)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberRefs.js function unsafeMake3(fiberRefLocals) { return new FiberRefsImpl(fiberRefLocals); } function empty17() { return unsafeMake3(/* @__PURE__ */ new Map()); } var FiberRefsSym = /* @__PURE__ */ Symbol.for("effect/FiberRefs"); var FiberRefsImpl = class { locals; [FiberRefsSym] = FiberRefsSym; constructor(locals) { this.locals = locals; } pipe() { return pipeArguments(this, arguments); } }; var findAncestor = (_ref, _parentStack, _childStack, _childModified = false) => { const ref = _ref; let parentStack = _parentStack; let childStack = _childStack; let childModified = _childModified; let ret = void 0; while (ret === void 0) { if (isNonEmptyReadonlyArray(parentStack) && isNonEmptyReadonlyArray(childStack)) { const parentFiberId = headNonEmpty(parentStack)[0]; const parentAncestors = tailNonEmpty(parentStack); const childFiberId = headNonEmpty(childStack)[0]; const childRefValue = headNonEmpty(childStack)[1]; const childAncestors = tailNonEmpty(childStack); if (parentFiberId.startTimeMillis < childFiberId.startTimeMillis) { childStack = childAncestors; childModified = true; } else if (parentFiberId.startTimeMillis > childFiberId.startTimeMillis) { parentStack = parentAncestors; } else { if (parentFiberId.id < childFiberId.id) { childStack = childAncestors; childModified = true; } else if (parentFiberId.id > childFiberId.id) { parentStack = parentAncestors; } else { ret = [childRefValue, childModified]; } } } else { ret = [ref.initial, true]; } } return ret; }; var joinAs = /* @__PURE__ */ dual(3, (self, fiberId2, that) => { const parentFiberRefs = new Map(self.locals); that.locals.forEach((childStack, fiberRef) => { const childValue = childStack[0][1]; if (!childStack[0][0][symbol2](fiberId2)) { if (!parentFiberRefs.has(fiberRef)) { if (equals(childValue, fiberRef.initial)) { return; } parentFiberRefs.set(fiberRef, [[fiberId2, fiberRef.join(fiberRef.initial, childValue)]]); return; } const parentStack = parentFiberRefs.get(fiberRef); const [ancestor, wasModified] = findAncestor(fiberRef, parentStack, childStack); if (wasModified) { const patch9 = fiberRef.diff(ancestor, childValue); const oldValue = parentStack[0][1]; const newValue = fiberRef.join(oldValue, fiberRef.patch(patch9)(oldValue)); if (!equals(oldValue, newValue)) { let newStack; const parentFiberId = parentStack[0][0]; if (parentFiberId[symbol2](fiberId2)) { newStack = [[parentFiberId, newValue], ...parentStack.slice(1)]; } else { newStack = [[fiberId2, newValue], ...parentStack]; } parentFiberRefs.set(fiberRef, newStack); } } } }); return new FiberRefsImpl(parentFiberRefs); }); var forkAs = /* @__PURE__ */ dual(2, (self, childId) => { const map15 = /* @__PURE__ */ new Map(); unsafeForkAs(self, map15, childId); return new FiberRefsImpl(map15); }); var unsafeForkAs = (self, map15, fiberId2) => { self.locals.forEach((stack, fiberRef) => { const oldValue = stack[0][1]; const newValue = fiberRef.patch(fiberRef.fork)(oldValue); if (equals(oldValue, newValue)) { map15.set(fiberRef, stack); } else { map15.set(fiberRef, [[fiberId2, newValue], ...stack]); } }); }; var delete_ = /* @__PURE__ */ dual(2, (self, fiberRef) => { const locals = new Map(self.locals); locals.delete(fiberRef); return new FiberRefsImpl(locals); }); var get8 = /* @__PURE__ */ dual(2, (self, fiberRef) => { if (!self.locals.has(fiberRef)) { return none2(); } return some2(headNonEmpty(self.locals.get(fiberRef))[1]); }); var getOrDefault = /* @__PURE__ */ dual(2, (self, fiberRef) => pipe(get8(self, fiberRef), getOrElse2(() => fiberRef.initial))); var updateAs = /* @__PURE__ */ dual(2, (self, { fiberId: fiberId2, fiberRef, value: value3 }) => { if (self.locals.size === 0) { return new FiberRefsImpl(/* @__PURE__ */ new Map([[fiberRef, [[fiberId2, value3]]]])); } const locals = new Map(self.locals); unsafeUpdateAs(locals, fiberId2, fiberRef, value3); return new FiberRefsImpl(locals); }); var unsafeUpdateAs = (locals, fiberId2, fiberRef, value3) => { const oldStack = locals.get(fiberRef) ?? []; let newStack; if (isNonEmptyReadonlyArray(oldStack)) { const [currentId, currentValue] = headNonEmpty(oldStack); if (currentId[symbol2](fiberId2)) { if (equals(currentValue, value3)) { return; } else { newStack = [[fiberId2, value3], ...oldStack.slice(1)]; } } else { newStack = [[fiberId2, value3], ...oldStack]; } } else { newStack = [[fiberId2, value3]]; } locals.set(fiberRef, newStack); }; var updateManyAs = /* @__PURE__ */ dual(2, (self, { entries: entries2, forkAs: forkAs2 }) => { if (self.locals.size === 0) { return new FiberRefsImpl(new Map(entries2)); } const locals = new Map(self.locals); if (forkAs2 !== void 0) { unsafeForkAs(self, locals, forkAs2); } entries2.forEach(([fiberRef, values4]) => { if (values4.length === 1) { unsafeUpdateAs(locals, values4[0][0], fiberRef, values4[0][1]); } else { values4.forEach(([fiberId2, value3]) => { unsafeUpdateAs(locals, fiberId2, fiberRef, value3); }); } }); return new FiberRefsImpl(locals); }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/FiberRefs.js var getOrDefault2 = getOrDefault; var updateManyAs2 = updateManyAs; var empty18 = empty17; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/LogLevel.js var All = logLevelAll; var Fatal = logLevelFatal; var Error2 = logLevelError; var Warning = logLevelWarning; var Info = logLevelInfo; var Debug2 = logLevelDebug; var Trace = logLevelTrace; var None3 = logLevelNone; var Order5 = /* @__PURE__ */ pipe(Order, /* @__PURE__ */ mapInput2((level) => level.ordinal)); var greaterThan4 = /* @__PURE__ */ greaterThan(Order5); var fromLiteral = (literal2) => { switch (literal2) { case "All": return All; case "Debug": return Debug2; case "Error": return Error2; case "Fatal": return Fatal; case "Info": return Info; case "Trace": return Trace; case "None": return None3; case "Warning": return Warning; } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/logSpan.js var formatLabel = (key) => key.replace(/[\s="]/g, "_"); var render = (now2) => (self) => { const label = formatLabel(self.label); return `${label}=${now2 - self.startTime}ms`; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Effectable.js var EffectPrototype2 = EffectPrototype; var Base2 = Base; var Class2 = class extends Base2 { }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberRefs/patch.js var OP_EMPTY2 = "Empty"; var OP_ADD = "Add"; var OP_REMOVE = "Remove"; var OP_UPDATE = "Update"; var OP_AND_THEN = "AndThen"; var empty19 = { _tag: OP_EMPTY2 }; var diff5 = (oldValue, newValue) => { const missingLocals = new Map(oldValue.locals); let patch9 = empty19; for (const [fiberRef, pairs] of newValue.locals.entries()) { const newValue2 = headNonEmpty(pairs)[1]; const old = missingLocals.get(fiberRef); if (old !== void 0) { const oldValue2 = headNonEmpty(old)[1]; if (!equals(oldValue2, newValue2)) { patch9 = combine6({ _tag: OP_UPDATE, fiberRef, patch: fiberRef.diff(oldValue2, newValue2) })(patch9); } } else { patch9 = combine6({ _tag: OP_ADD, fiberRef, value: newValue2 })(patch9); } missingLocals.delete(fiberRef); } for (const [fiberRef] of missingLocals.entries()) { patch9 = combine6({ _tag: OP_REMOVE, fiberRef })(patch9); } return patch9; }; var combine6 = /* @__PURE__ */ dual(2, (self, that) => ({ _tag: OP_AND_THEN, first: self, second: that })); var patch6 = /* @__PURE__ */ dual(3, (self, fiberId2, oldValue) => { let fiberRefs2 = oldValue; let patches = of(self); while (isNonEmptyReadonlyArray(patches)) { const head4 = headNonEmpty(patches); const tail = tailNonEmpty(patches); switch (head4._tag) { case OP_EMPTY2: { patches = tail; break; } case OP_ADD: { fiberRefs2 = updateAs(fiberRefs2, { fiberId: fiberId2, fiberRef: head4.fiberRef, value: head4.value }); patches = tail; break; } case OP_REMOVE: { fiberRefs2 = delete_(fiberRefs2, head4.fiberRef); patches = tail; break; } case OP_UPDATE: { const value3 = getOrDefault(fiberRefs2, head4.fiberRef); fiberRefs2 = updateAs(fiberRefs2, { fiberId: fiberId2, fiberRef: head4.fiberRef, value: head4.fiberRef.patch(head4.patch)(value3) }); patches = tail; break; } case OP_AND_THEN: { patches = prepend(head4.first)(prepend(head4.second)(tail)); break; } } } return fiberRefs2; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/label.js var MetricLabelSymbolKey = "effect/MetricLabel"; var MetricLabelTypeId = /* @__PURE__ */ Symbol.for(MetricLabelSymbolKey); var MetricLabelImpl = class { key; value; [MetricLabelTypeId] = MetricLabelTypeId; _hash; constructor(key, value3) { this.key = key; this.value = value3; this._hash = string(MetricLabelSymbolKey + this.key + this.value); } [symbol]() { return this._hash; } [symbol2](that) { return isMetricLabel(that) && this.key === that.key && this.value === that.value; } pipe() { return pipeArguments(this, arguments); } }; var make24 = (key, value3) => { return new MetricLabelImpl(key, value3); }; var isMetricLabel = (u) => hasProperty(u, MetricLabelTypeId); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/executionStrategy.js var OP_SEQUENTIAL2 = "Sequential"; var OP_PARALLEL2 = "Parallel"; var OP_PARALLEL_N = "ParallelN"; var sequential2 = { _tag: OP_SEQUENTIAL2 }; var parallel2 = { _tag: OP_PARALLEL2 }; var parallelN = (parallelism) => ({ _tag: OP_PARALLEL_N, parallelism }); var isSequential = (self) => self._tag === OP_SEQUENTIAL2; var isParallel = (self) => self._tag === OP_PARALLEL2; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/ExecutionStrategy.js var sequential3 = sequential2; var parallel3 = parallel2; var parallelN2 = parallelN; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/FiberRefsPatch.js var diff6 = diff5; var patch7 = patch6; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberStatus.js var FiberStatusSymbolKey = "effect/FiberStatus"; var FiberStatusTypeId = /* @__PURE__ */ Symbol.for(FiberStatusSymbolKey); var OP_DONE = "Done"; var OP_RUNNING = "Running"; var OP_SUSPENDED = "Suspended"; var DoneHash = /* @__PURE__ */ string(`${FiberStatusSymbolKey}-${OP_DONE}`); var Done = class { [FiberStatusTypeId] = FiberStatusTypeId; _tag = OP_DONE; [symbol]() { return DoneHash; } [symbol2](that) { return isFiberStatus(that) && that._tag === OP_DONE; } }; var Running = class { runtimeFlags; [FiberStatusTypeId] = FiberStatusTypeId; _tag = OP_RUNNING; constructor(runtimeFlags2) { this.runtimeFlags = runtimeFlags2; } [symbol]() { return pipe(hash(FiberStatusSymbolKey), combine(hash(this._tag)), combine(hash(this.runtimeFlags)), cached(this)); } [symbol2](that) { return isFiberStatus(that) && that._tag === OP_RUNNING && this.runtimeFlags === that.runtimeFlags; } }; var Suspended = class { runtimeFlags; blockingOn; [FiberStatusTypeId] = FiberStatusTypeId; _tag = OP_SUSPENDED; constructor(runtimeFlags2, blockingOn) { this.runtimeFlags = runtimeFlags2; this.blockingOn = blockingOn; } [symbol]() { return pipe(hash(FiberStatusSymbolKey), combine(hash(this._tag)), combine(hash(this.runtimeFlags)), combine(hash(this.blockingOn)), cached(this)); } [symbol2](that) { return isFiberStatus(that) && that._tag === OP_SUSPENDED && this.runtimeFlags === that.runtimeFlags && equals(this.blockingOn, that.blockingOn); } }; var done2 = /* @__PURE__ */ new Done(); var running = (runtimeFlags2) => new Running(runtimeFlags2); var suspended = (runtimeFlags2, blockingOn) => new Suspended(runtimeFlags2, blockingOn); var isFiberStatus = (u) => hasProperty(u, FiberStatusTypeId); var isDone = (self) => self._tag === OP_DONE; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/FiberStatus.js var done3 = done2; var running2 = running; var suspended2 = suspended; var isDone2 = isDone; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Micro.js var TypeId12 = /* @__PURE__ */ Symbol.for("effect/Micro"); var MicroExitTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroExit"); var MicroCauseTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroCause"); var microCauseVariance = { _E: identity }; var MicroCauseImpl = class extends globalThis.Error { _tag; traces; [MicroCauseTypeId]; constructor(_tag, originalError, traces) { const causeName = `MicroCause.${_tag}`; let name; let message; let stack; if (originalError instanceof globalThis.Error) { name = `(${causeName}) ${originalError.name}`; message = originalError.message; const messageLines = message.split("\n").length; stack = originalError.stack ? `(${causeName}) ${originalError.stack.split("\n").slice(0, messageLines + 3).join("\n")}` : `${name}: ${message}`; } else { name = causeName; message = toStringUnknown(originalError, 0); stack = `${name}: ${message}`; } if (traces.length > 0) { stack += ` ${traces.join("\n ")}`; } super(message); this._tag = _tag; this.traces = traces; this[MicroCauseTypeId] = microCauseVariance; this.name = name; this.stack = stack; } pipe() { return pipeArguments(this, arguments); } toString() { return this.stack; } [NodeInspectSymbol]() { return this.stack; } }; var Die = class extends MicroCauseImpl { defect; constructor(defect, traces = []) { super("Die", defect, traces); this.defect = defect; } }; var causeDie = (defect, traces = []) => new Die(defect, traces); var Interrupt = class extends MicroCauseImpl { constructor(traces = []) { super("Interrupt", "interrupted", traces); } }; var causeInterrupt = (traces = []) => new Interrupt(traces); var causeIsInterrupt = (self) => self._tag === "Interrupt"; var MicroFiberTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroFiber"); var fiberVariance = { _A: identity, _E: identity }; var MicroFiberImpl = class { context; interruptible; [MicroFiberTypeId]; _stack = []; _observers = []; _exit; _children; currentOpCount = 0; constructor(context3, interruptible4 = true) { this.context = context3; this.interruptible = interruptible4; this[MicroFiberTypeId] = fiberVariance; } getRef(ref) { return unsafeGetReference(this.context, ref); } addObserver(cb) { if (this._exit) { cb(this._exit); return constVoid; } this._observers.push(cb); return () => { const index = this._observers.indexOf(cb); if (index >= 0) { this._observers.splice(index, 1); } }; } _interrupted = false; unsafeInterrupt() { if (this._exit) { return; } this._interrupted = true; if (this.interruptible) { this.evaluate(exitInterrupt2); } } unsafePoll() { return this._exit; } evaluate(effect) { if (this._exit) { return; } else if (this._yielded !== void 0) { const yielded = this._yielded; this._yielded = void 0; yielded(); } const exit3 = this.runLoop(effect); if (exit3 === Yield) { return; } const interruptChildren = fiberMiddleware.interruptChildren && fiberMiddleware.interruptChildren(this); if (interruptChildren !== void 0) { return this.evaluate(flatMap8(interruptChildren, () => exit3)); } this._exit = exit3; for (let i = 0; i < this._observers.length; i++) { this._observers[i](exit3); } this._observers.length = 0; } runLoop(effect) { let yielding = false; let current = effect; this.currentOpCount = 0; try { while (true) { this.currentOpCount++; if (!yielding && this.getRef(CurrentScheduler).shouldYield(this)) { yielding = true; const prev = current; current = flatMap8(yieldNow2, () => prev); } current = current[evaluate](this); if (current === Yield) { const yielded = this._yielded; if (MicroExitTypeId in yielded) { this._yielded = void 0; return yielded; } return Yield; } } } catch (error) { if (!hasProperty(current, evaluate)) { return exitDie2(`MicroFiber.runLoop: Not a valid effect: ${String(current)}`); } return exitDie2(error); } } getCont(symbol3) { while (true) { const op = this._stack.pop(); if (!op) return void 0; const cont = op[ensureCont] && op[ensureCont](this); if (cont) return { [symbol3]: cont }; if (op[symbol3]) return op; } } // cancel the yielded operation, or for the yielded exit value _yielded = void 0; yieldWith(value3) { this._yielded = value3; return Yield; } children() { return this._children ??= /* @__PURE__ */ new Set(); } }; var fiberMiddleware = /* @__PURE__ */ globalValue("effect/Micro/fiberMiddleware", () => ({ interruptChildren: void 0 })); var fiberInterruptAll = (fibers) => suspend2(() => { for (const fiber of fibers) fiber.unsafeInterrupt(); const iter = fibers[Symbol.iterator](); const wait = suspend2(() => { let result = iter.next(); while (!result.done) { if (result.value.unsafePoll()) { result = iter.next(); continue; } const fiber = result.value; return async((resume2) => { fiber.addObserver((_) => { resume2(wait); }); }); } return exitVoid2; }); return wait; }); var identifier = /* @__PURE__ */ Symbol.for("effect/Micro/identifier"); var args = /* @__PURE__ */ Symbol.for("effect/Micro/args"); var evaluate = /* @__PURE__ */ Symbol.for("effect/Micro/evaluate"); var successCont = /* @__PURE__ */ Symbol.for("effect/Micro/successCont"); var failureCont = /* @__PURE__ */ Symbol.for("effect/Micro/failureCont"); var ensureCont = /* @__PURE__ */ Symbol.for("effect/Micro/ensureCont"); var Yield = /* @__PURE__ */ Symbol.for("effect/Micro/Yield"); var microVariance = { _A: identity, _E: identity, _R: identity }; var MicroProto = { ...EffectPrototype2, _op: "Micro", [TypeId12]: microVariance, pipe() { return pipeArguments(this, arguments); }, [Symbol.iterator]() { return new SingleShotGen(new YieldWrap(this)); }, toJSON() { return { _id: "Micro", op: this[identifier], ...args in this ? { args: this[args] } : void 0 }; }, toString() { return format(this); }, [NodeInspectSymbol]() { return format(this); } }; function defaultEvaluate(_fiber) { return exitDie2(`Micro.evaluate: Not implemented`); } var makePrimitiveProto = (options) => ({ ...MicroProto, [identifier]: options.op, [evaluate]: options.eval ?? defaultEvaluate, [successCont]: options.contA, [failureCont]: options.contE, [ensureCont]: options.ensure }); var makePrimitive = (options) => { const Proto2 = makePrimitiveProto(options); return function() { const self = Object.create(Proto2); self[args] = options.single === false ? arguments : arguments[0]; return self; }; }; var makeExit = (options) => { const Proto2 = { ...makePrimitiveProto(options), [MicroExitTypeId]: MicroExitTypeId, _tag: options.op, get [options.prop]() { return this[args]; }, toJSON() { return { _id: "MicroExit", _tag: options.op, [options.prop]: this[args] }; }, [symbol2](that) { return isMicroExit(that) && that._tag === options.op && equals(this[args], that[args]); }, [symbol]() { return cached(this, combine(string(options.op))(hash(this[args]))); } }; return function(value3) { const self = Object.create(Proto2); self[args] = value3; self[successCont] = void 0; self[failureCont] = void 0; self[ensureCont] = void 0; return self; }; }; var succeed3 = /* @__PURE__ */ makeExit({ op: "Success", prop: "value", eval(fiber) { const cont = fiber.getCont(successCont); return cont ? cont[successCont](this[args], fiber) : fiber.yieldWith(this); } }); var failCause3 = /* @__PURE__ */ makeExit({ op: "Failure", prop: "cause", eval(fiber) { let cont = fiber.getCont(failureCont); while (causeIsInterrupt(this[args]) && cont && fiber.interruptible) { cont = fiber.getCont(failureCont); } return cont ? cont[failureCont](this[args], fiber) : fiber.yieldWith(this); } }); var sync2 = /* @__PURE__ */ makePrimitive({ op: "Sync", eval(fiber) { const value3 = this[args](); const cont = fiber.getCont(successCont); return cont ? cont[successCont](value3, fiber) : fiber.yieldWith(exitSucceed2(value3)); } }); var suspend2 = /* @__PURE__ */ makePrimitive({ op: "Suspend", eval(_fiber) { return this[args](); } }); var yieldNowWith = /* @__PURE__ */ makePrimitive({ op: "Yield", eval(fiber) { let resumed = false; fiber.getRef(CurrentScheduler).scheduleTask(() => { if (resumed) return; fiber.evaluate(exitVoid2); }, this[args] ?? 0); return fiber.yieldWith(() => { resumed = true; }); } }); var yieldNow2 = /* @__PURE__ */ yieldNowWith(0); var void_2 = /* @__PURE__ */ succeed3(void 0); var withMicroFiber = /* @__PURE__ */ makePrimitive({ op: "WithMicroFiber", eval(fiber) { return this[args](fiber); } }); var asyncOptions = /* @__PURE__ */ makePrimitive({ op: "Async", single: false, eval(fiber) { const register = this[args][0]; let resumed = false; let yielded = false; const controller = this[args][1] ? new AbortController() : void 0; const onCancel = register((effect) => { if (resumed) return; resumed = true; if (yielded) { fiber.evaluate(effect); } else { yielded = effect; } }, controller?.signal); if (yielded !== false) return yielded; yielded = true; fiber._yielded = () => { resumed = true; }; if (controller === void 0 && onCancel === void 0) { return Yield; } fiber._stack.push(asyncFinalizer(() => { resumed = true; controller?.abort(); return onCancel ?? exitVoid2; })); return Yield; } }); var asyncFinalizer = /* @__PURE__ */ makePrimitive({ op: "AsyncFinalizer", ensure(fiber) { if (fiber.interruptible) { fiber.interruptible = false; fiber._stack.push(setInterruptible(true)); } }, contE(cause, _fiber) { return causeIsInterrupt(cause) ? flatMap8(this[args](), () => failCause3(cause)) : failCause3(cause); } }); var async = (register) => asyncOptions(register, register.length >= 2); var as2 = /* @__PURE__ */ dual(2, (self, value3) => map10(self, (_) => value3)); var exit2 = (self) => matchCause2(self, { onFailure: exitFailCause2, onSuccess: exitSucceed2 }); var flatMap8 = /* @__PURE__ */ dual(2, (self, f) => { const onSuccess = Object.create(OnSuccessProto); onSuccess[args] = self; onSuccess[successCont] = f; return onSuccess; }); var OnSuccessProto = /* @__PURE__ */ makePrimitiveProto({ op: "OnSuccess", eval(fiber) { fiber._stack.push(this); return this[args]; } }); var map10 = /* @__PURE__ */ dual(2, (self, f) => flatMap8(self, (a) => succeed3(f(a)))); var isMicroExit = (u) => hasProperty(u, MicroExitTypeId); var exitSucceed2 = succeed3; var exitFailCause2 = failCause3; var exitInterrupt2 = /* @__PURE__ */ exitFailCause2(/* @__PURE__ */ causeInterrupt()); var exitDie2 = (defect) => exitFailCause2(causeDie(defect)); var exitVoid2 = /* @__PURE__ */ exitSucceed2(void 0); var exitVoidAll = (exits) => { for (const exit3 of exits) { if (exit3._tag === "Failure") { return exit3; } } return exitVoid2; }; var setImmediate = "setImmediate" in globalThis ? globalThis.setImmediate : (f) => setTimeout(f, 0); var MicroSchedulerDefault = class { tasks = []; running = false; /** * @since 3.5.9 */ scheduleTask(task, _priority) { this.tasks.push(task); if (!this.running) { this.running = true; setImmediate(this.afterScheduled); } } /** * @since 3.5.9 */ afterScheduled = () => { this.running = false; this.runTasks(); }; /** * @since 3.5.9 */ runTasks() { const tasks = this.tasks; this.tasks = []; for (let i = 0, len = tasks.length; i < len; i++) { tasks[i](); } } /** * @since 3.5.9 */ shouldYield(fiber) { return fiber.currentOpCount >= fiber.getRef(MaxOpsBeforeYield); } /** * @since 3.5.9 */ flush() { while (this.tasks.length > 0) { this.runTasks(); } } }; var updateContext = /* @__PURE__ */ dual(2, (self, f) => withMicroFiber((fiber) => { const prev = fiber.context; fiber.context = f(prev); return onExit2(self, () => { fiber.context = prev; return void_2; }); })); var provideContext2 = /* @__PURE__ */ dual(2, (self, provided) => updateContext(self, merge3(provided))); var MaxOpsBeforeYield = class extends (/* @__PURE__ */ Reference2()("effect/Micro/currentMaxOpsBeforeYield", { defaultValue: () => 2048 })) { }; var CurrentConcurrency = class extends (/* @__PURE__ */ Reference2()("effect/Micro/currentConcurrency", { defaultValue: () => "unbounded" })) { }; var CurrentScheduler = class extends (/* @__PURE__ */ Reference2()("effect/Micro/currentScheduler", { defaultValue: () => new MicroSchedulerDefault() })) { }; var matchCauseEffect2 = /* @__PURE__ */ dual(2, (self, options) => { const primitive2 = Object.create(OnSuccessAndFailureProto); primitive2[args] = self; primitive2[successCont] = options.onSuccess; primitive2[failureCont] = options.onFailure; return primitive2; }); var OnSuccessAndFailureProto = /* @__PURE__ */ makePrimitiveProto({ op: "OnSuccessAndFailure", eval(fiber) { fiber._stack.push(this); return this[args]; } }); var matchCause2 = /* @__PURE__ */ dual(2, (self, options) => matchCauseEffect2(self, { onFailure: (cause) => sync2(() => options.onFailure(cause)), onSuccess: (value3) => sync2(() => options.onSuccess(value3)) })); var MicroScopeTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroScope"); var MicroScopeImpl = class _MicroScopeImpl { [MicroScopeTypeId]; state = { _tag: "Open", finalizers: /* @__PURE__ */ new Set() }; constructor() { this[MicroScopeTypeId] = MicroScopeTypeId; } unsafeAddFinalizer(finalizer) { if (this.state._tag === "Open") { this.state.finalizers.add(finalizer); } } addFinalizer(finalizer) { return suspend2(() => { if (this.state._tag === "Open") { this.state.finalizers.add(finalizer); return void_2; } return finalizer(this.state.exit); }); } unsafeRemoveFinalizer(finalizer) { if (this.state._tag === "Open") { this.state.finalizers.delete(finalizer); } } close(microExit) { return suspend2(() => { if (this.state._tag === "Open") { const finalizers = Array.from(this.state.finalizers).reverse(); this.state = { _tag: "Closed", exit: microExit }; return flatMap8(forEach3(finalizers, (finalizer) => exit2(finalizer(microExit))), exitVoidAll); } return void_2; }); } get fork() { return sync2(() => { const newScope = new _MicroScopeImpl(); if (this.state._tag === "Closed") { newScope.state = this.state; return newScope; } function fin(exit3) { return newScope.close(exit3); } this.state.finalizers.add(fin); newScope.unsafeAddFinalizer((_) => sync2(() => this.unsafeRemoveFinalizer(fin))); return newScope; }); } }; var onExit2 = /* @__PURE__ */ dual(2, (self, f) => uninterruptibleMask2((restore) => matchCauseEffect2(restore(self), { onFailure: (cause) => flatMap8(f(exitFailCause2(cause)), () => failCause3(cause)), onSuccess: (a) => flatMap8(f(exitSucceed2(a)), () => succeed3(a)) }))); var setInterruptible = /* @__PURE__ */ makePrimitive({ op: "SetInterruptible", ensure(fiber) { fiber.interruptible = this[args]; if (fiber._interrupted && fiber.interruptible) { return () => exitInterrupt2; } } }); var interruptible3 = (self) => withMicroFiber((fiber) => { if (fiber.interruptible) return self; fiber.interruptible = true; fiber._stack.push(setInterruptible(false)); if (fiber._interrupted) return exitInterrupt2; return self; }); var uninterruptibleMask2 = (f) => withMicroFiber((fiber) => { if (!fiber.interruptible) return f(identity); fiber.interruptible = false; fiber._stack.push(setInterruptible(true)); return f(interruptible3); }); var whileLoop2 = /* @__PURE__ */ makePrimitive({ op: "While", contA(value3, fiber) { this[args].step(value3); if (this[args].while()) { fiber._stack.push(this); return this[args].body(); } return exitVoid2; }, eval(fiber) { if (this[args].while()) { fiber._stack.push(this); return this[args].body(); } return exitVoid2; } }); var forEach3 = (iterable, f, options) => withMicroFiber((parent) => { const concurrencyOption = options?.concurrency === "inherit" ? parent.getRef(CurrentConcurrency) : options?.concurrency ?? 1; const concurrency = concurrencyOption === "unbounded" ? Number.POSITIVE_INFINITY : Math.max(1, concurrencyOption); const items = fromIterable(iterable); let length2 = items.length; if (length2 === 0) { return options?.discard ? void_2 : succeed3([]); } const out = options?.discard ? void 0 : new Array(length2); let index = 0; if (concurrency === 1) { return as2(whileLoop2({ while: () => index < items.length, body: () => f(items[index], index), step: out ? (b) => out[index++] = b : (_) => index++ }), out); } return async((resume2) => { const fibers = /* @__PURE__ */ new Set(); let result = void 0; let inProgress = 0; let doneCount = 0; let pumping = false; let interrupted = false; function pump() { pumping = true; while (inProgress < concurrency && index < length2) { const currentIndex = index; const item = items[currentIndex]; index++; inProgress++; try { const child = unsafeFork(parent, f(item, currentIndex), true, true); fibers.add(child); child.addObserver((exit3) => { fibers.delete(child); if (interrupted) { return; } else if (exit3._tag === "Failure") { if (result === void 0) { result = exit3; length2 = index; fibers.forEach((fiber) => fiber.unsafeInterrupt()); } } else if (out !== void 0) { out[currentIndex] = exit3.value; } doneCount++; inProgress--; if (doneCount === length2) { resume2(result ?? succeed3(out)); } else if (!pumping && inProgress < concurrency) { pump(); } }); } catch (err2) { result = exitDie2(err2); length2 = index; fibers.forEach((fiber) => fiber.unsafeInterrupt()); } } pumping = false; } pump(); return suspend2(() => { interrupted = true; index = length2; return fiberInterruptAll(fibers); }); }); }); var unsafeFork = (parent, effect, immediate = false, daemon = false) => { const child = new MicroFiberImpl(parent.context, parent.interruptible); if (!daemon) { parent.children().add(child); child.addObserver(() => parent.children().delete(child)); } if (immediate) { child.evaluate(effect); } else { parent.getRef(CurrentScheduler).scheduleTask(() => child.evaluate(effect), 0); } return child; }; var runFork = (effect, options) => { const fiber = new MicroFiberImpl(CurrentScheduler.context(options?.scheduler ?? new MicroSchedulerDefault())); fiber.evaluate(effect); if (options?.signal) { if (options.signal.aborted) { fiber.unsafeInterrupt(); } else { const abort = () => fiber.unsafeInterrupt(); options.signal.addEventListener("abort", abort, { once: true }); fiber.addObserver(() => options.signal.removeEventListener("abort", abort)); } } return fiber; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Scheduler.js var PriorityBuckets = class { /** * @since 2.0.0 */ buckets = []; /** * @since 2.0.0 */ scheduleTask(task, priority) { const length2 = this.buckets.length; let bucket = void 0; let index = 0; for (; index < length2; index++) { if (this.buckets[index][0] <= priority) { bucket = this.buckets[index]; } else { break; } } if (bucket && bucket[0] === priority) { bucket[1].push(task); } else if (index === length2) { this.buckets.push([priority, [task]]); } else { this.buckets.splice(index, 0, [priority, [task]]); } } }; var MixedScheduler = class { maxNextTickBeforeTimer; /** * @since 2.0.0 */ running = false; /** * @since 2.0.0 */ tasks = /* @__PURE__ */ new PriorityBuckets(); constructor(maxNextTickBeforeTimer) { this.maxNextTickBeforeTimer = maxNextTickBeforeTimer; } /** * @since 2.0.0 */ starveInternal(depth) { const tasks = this.tasks.buckets; this.tasks.buckets = []; for (const [_, toRun] of tasks) { for (let i = 0; i < toRun.length; i++) { toRun[i](); } } if (this.tasks.buckets.length === 0) { this.running = false; } else { this.starve(depth); } } /** * @since 2.0.0 */ starve(depth = 0) { if (depth >= this.maxNextTickBeforeTimer) { setTimeout(() => this.starveInternal(0), 0); } else { Promise.resolve(void 0).then(() => this.starveInternal(depth + 1)); } } /** * @since 2.0.0 */ shouldYield(fiber) { return fiber.currentOpCount > fiber.getFiberRef(currentMaxOpsBeforeYield) ? fiber.getFiberRef(currentSchedulingPriority) : false; } /** * @since 2.0.0 */ scheduleTask(task, priority) { this.tasks.scheduleTask(task, priority); if (!this.running) { this.running = true; this.starve(); } } }; var defaultScheduler = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Scheduler/defaultScheduler"), () => new MixedScheduler(2048)); var SyncScheduler = class { /** * @since 2.0.0 */ tasks = /* @__PURE__ */ new PriorityBuckets(); /** * @since 2.0.0 */ deferred = false; /** * @since 2.0.0 */ scheduleTask(task, priority) { if (this.deferred) { defaultScheduler.scheduleTask(task, priority); } else { this.tasks.scheduleTask(task, priority); } } /** * @since 2.0.0 */ shouldYield(fiber) { return fiber.currentOpCount > fiber.getFiberRef(currentMaxOpsBeforeYield) ? fiber.getFiberRef(currentSchedulingPriority) : false; } /** * @since 2.0.0 */ flush() { while (this.tasks.buckets.length > 0) { const tasks = this.tasks.buckets; this.tasks.buckets = []; for (const [_, toRun] of tasks) { for (let i = 0; i < toRun.length; i++) { toRun[i](); } } } this.deferred = true; } }; var currentScheduler = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentScheduler"), () => fiberRefUnsafeMake(defaultScheduler)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/completedRequestMap.js var currentRequestMap = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentRequestMap"), () => fiberRefUnsafeMake(/* @__PURE__ */ new Map())); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/concurrency.js var match8 = (concurrency, sequential5, unbounded, bounded) => { switch (concurrency) { case void 0: return sequential5(); case "unbounded": return unbounded(); case "inherit": return fiberRefGetWith(currentConcurrency, (concurrency2) => concurrency2 === "unbounded" ? unbounded() : concurrency2 > 1 ? bounded(concurrency2) : sequential5()); default: return concurrency > 1 ? bounded(concurrency) : sequential5(); } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberMessage.js var OP_INTERRUPT_SIGNAL = "InterruptSignal"; var OP_STATEFUL = "Stateful"; var OP_RESUME = "Resume"; var OP_YIELD_NOW = "YieldNow"; var interruptSignal = (cause) => ({ _tag: OP_INTERRUPT_SIGNAL, cause }); var stateful = (onFiber) => ({ _tag: OP_STATEFUL, onFiber }); var resume = (effect) => ({ _tag: OP_RESUME, effect }); var yieldNow3 = () => ({ _tag: OP_YIELD_NOW }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberScope.js var FiberScopeSymbolKey = "effect/FiberScope"; var FiberScopeTypeId = /* @__PURE__ */ Symbol.for(FiberScopeSymbolKey); var Global = class { [FiberScopeTypeId] = FiberScopeTypeId; fiberId = none4; roots = /* @__PURE__ */ new Set(); add(_runtimeFlags, child) { this.roots.add(child); child.addObserver(() => { this.roots.delete(child); }); } }; var Local = class { fiberId; parent; [FiberScopeTypeId] = FiberScopeTypeId; constructor(fiberId2, parent) { this.fiberId = fiberId2; this.parent = parent; } add(_runtimeFlags, child) { this.parent.tell(stateful((parentFiber) => { parentFiber.addChild(child); child.addObserver(() => { parentFiber.removeChild(child); }); })); } }; var unsafeMake4 = (fiber) => { return new Local(fiber.id(), fiber); }; var globalScope = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberScope/Global"), () => new Global()); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiber.js var FiberSymbolKey = "effect/Fiber"; var FiberTypeId = /* @__PURE__ */ Symbol.for(FiberSymbolKey); var fiberVariance2 = { /* c8 ignore next */ _E: (_) => _, /* c8 ignore next */ _A: (_) => _ }; var fiberProto = { [FiberTypeId]: fiberVariance2, pipe() { return pipeArguments(this, arguments); } }; var RuntimeFiberSymbolKey = "effect/Fiber"; var RuntimeFiberTypeId = /* @__PURE__ */ Symbol.for(RuntimeFiberSymbolKey); var join2 = (self) => zipLeft(flatten4(self.await), self.inheritAll); var _never = { ...CommitPrototype, commit() { return join2(this); }, ...fiberProto, id: () => none4, await: never, children: /* @__PURE__ */ succeed([]), inheritAll: never, poll: /* @__PURE__ */ succeed(/* @__PURE__ */ none2()), interruptAsFork: () => never }; var currentFiberURI = "effect/FiberCurrent"; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/logger.js var LoggerSymbolKey = "effect/Logger"; var LoggerTypeId = /* @__PURE__ */ Symbol.for(LoggerSymbolKey); var loggerVariance = { /* c8 ignore next */ _Message: (_) => _, /* c8 ignore next */ _Output: (_) => _ }; var makeLogger = (log) => ({ [LoggerTypeId]: loggerVariance, log, pipe() { return pipeArguments(this, arguments); } }); var none6 = { [LoggerTypeId]: loggerVariance, log: constVoid, pipe() { return pipeArguments(this, arguments); } }; var textOnly = /^[^\s"=]*$/; var format4 = (quoteValue, whitespace) => ({ annotations: annotations3, cause, date: date3, fiberId: fiberId2, logLevel: logLevel2, message, spans }) => { const formatValue = (value3) => value3.match(textOnly) ? value3 : quoteValue(value3); const format7 = (label, value3) => `${formatLabel(label)}=${formatValue(value3)}`; const append3 = (label, value3) => " " + format7(label, value3); let out = format7("timestamp", date3.toISOString()); out += append3("level", logLevel2.label); out += append3("fiber", threadName(fiberId2)); const messages = ensure(message); for (let i = 0; i < messages.length; i++) { out += append3("message", toStringUnknown(messages[i], whitespace)); } if (!isEmptyType(cause)) { out += append3("cause", pretty(cause, { renderErrorCause: true })); } for (const span2 of spans) { out += " " + render(date3.getTime())(span2); } for (const [label, value3] of annotations3) { out += append3(label, toStringUnknown(value3, whitespace)); } return out; }; var escapeDoubleQuotes = (s) => `"${s.replace(/\\([\s\S])|(")/g, "\\$1$2")}"`; var stringLogger = /* @__PURE__ */ makeLogger(/* @__PURE__ */ format4(escapeDoubleQuotes)); var colors = { bold: "1", red: "31", green: "32", yellow: "33", blue: "34", cyan: "36", white: "37", gray: "90", black: "30", bgBrightRed: "101" }; var logLevelColors = { None: [], All: [], Trace: [colors.gray], Debug: [colors.blue], Info: [colors.green], Warning: [colors.yellow], Error: [colors.red], Fatal: [colors.bgBrightRed, colors.black] }; var hasProcessStdout = typeof process === "object" && process !== null && typeof process.stdout === "object" && process.stdout !== null; var processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true; var hasProcessStdoutOrDeno = hasProcessStdout || "Deno" in globalThis; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/boundaries.js var MetricBoundariesSymbolKey = "effect/MetricBoundaries"; var MetricBoundariesTypeId = /* @__PURE__ */ Symbol.for(MetricBoundariesSymbolKey); var MetricBoundariesImpl = class { values; [MetricBoundariesTypeId] = MetricBoundariesTypeId; constructor(values4) { this.values = values4; this._hash = pipe(string(MetricBoundariesSymbolKey), combine(array2(this.values))); } _hash; [symbol]() { return this._hash; } [symbol2](u) { return isMetricBoundaries(u) && equals(this.values, u.values); } pipe() { return pipeArguments(this, arguments); } }; var isMetricBoundaries = (u) => hasProperty(u, MetricBoundariesTypeId); var fromIterable8 = (iterable) => { const values4 = pipe(iterable, appendAll(of2(Number.POSITIVE_INFINITY)), dedupe); return new MetricBoundariesImpl(values4); }; var exponential = (options) => pipe(makeBy(options.count - 1, (i) => options.start * Math.pow(options.factor, i)), unsafeFromArray, fromIterable8); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/keyType.js var MetricKeyTypeSymbolKey = "effect/MetricKeyType"; var MetricKeyTypeTypeId = /* @__PURE__ */ Symbol.for(MetricKeyTypeSymbolKey); var CounterKeyTypeSymbolKey = "effect/MetricKeyType/Counter"; var CounterKeyTypeTypeId = /* @__PURE__ */ Symbol.for(CounterKeyTypeSymbolKey); var FrequencyKeyTypeSymbolKey = "effect/MetricKeyType/Frequency"; var FrequencyKeyTypeTypeId = /* @__PURE__ */ Symbol.for(FrequencyKeyTypeSymbolKey); var GaugeKeyTypeSymbolKey = "effect/MetricKeyType/Gauge"; var GaugeKeyTypeTypeId = /* @__PURE__ */ Symbol.for(GaugeKeyTypeSymbolKey); var HistogramKeyTypeSymbolKey = "effect/MetricKeyType/Histogram"; var HistogramKeyTypeTypeId = /* @__PURE__ */ Symbol.for(HistogramKeyTypeSymbolKey); var SummaryKeyTypeSymbolKey = "effect/MetricKeyType/Summary"; var SummaryKeyTypeTypeId = /* @__PURE__ */ Symbol.for(SummaryKeyTypeSymbolKey); var metricKeyTypeVariance = { /* c8 ignore next */ _In: (_) => _, /* c8 ignore next */ _Out: (_) => _ }; var CounterKeyType = class { incremental; bigint; [MetricKeyTypeTypeId] = metricKeyTypeVariance; [CounterKeyTypeTypeId] = CounterKeyTypeTypeId; constructor(incremental, bigint2) { this.incremental = incremental; this.bigint = bigint2; this._hash = string(CounterKeyTypeSymbolKey); } _hash; [symbol]() { return this._hash; } [symbol2](that) { return isCounterKey(that); } pipe() { return pipeArguments(this, arguments); } }; var FrequencyKeyTypeHash = /* @__PURE__ */ string(FrequencyKeyTypeSymbolKey); var FrequencyKeyType = class { preregisteredWords; [MetricKeyTypeTypeId] = metricKeyTypeVariance; [FrequencyKeyTypeTypeId] = FrequencyKeyTypeTypeId; constructor(preregisteredWords) { this.preregisteredWords = preregisteredWords; } [symbol]() { return FrequencyKeyTypeHash; } [symbol2](that) { return isFrequencyKey(that); } pipe() { return pipeArguments(this, arguments); } }; var GaugeKeyTypeHash = /* @__PURE__ */ string(GaugeKeyTypeSymbolKey); var GaugeKeyType = class { bigint; [MetricKeyTypeTypeId] = metricKeyTypeVariance; [GaugeKeyTypeTypeId] = GaugeKeyTypeTypeId; constructor(bigint2) { this.bigint = bigint2; } [symbol]() { return GaugeKeyTypeHash; } [symbol2](that) { return isGaugeKey(that); } pipe() { return pipeArguments(this, arguments); } }; var HistogramKeyType = class { boundaries; [MetricKeyTypeTypeId] = metricKeyTypeVariance; [HistogramKeyTypeTypeId] = HistogramKeyTypeTypeId; constructor(boundaries) { this.boundaries = boundaries; this._hash = pipe(string(HistogramKeyTypeSymbolKey), combine(hash(this.boundaries))); } _hash; [symbol]() { return this._hash; } [symbol2](that) { return isHistogramKey(that) && equals(this.boundaries, that.boundaries); } pipe() { return pipeArguments(this, arguments); } }; var SummaryKeyType = class { maxAge; maxSize; error; quantiles; [MetricKeyTypeTypeId] = metricKeyTypeVariance; [SummaryKeyTypeTypeId] = SummaryKeyTypeTypeId; constructor(maxAge, maxSize, error, quantiles) { this.maxAge = maxAge; this.maxSize = maxSize; this.error = error; this.quantiles = quantiles; this._hash = pipe(string(SummaryKeyTypeSymbolKey), combine(hash(this.maxAge)), combine(hash(this.maxSize)), combine(hash(this.error)), combine(array2(this.quantiles))); } _hash; [symbol]() { return this._hash; } [symbol2](that) { return isSummaryKey(that) && equals(this.maxAge, that.maxAge) && this.maxSize === that.maxSize && this.error === that.error && equals(this.quantiles, that.quantiles); } pipe() { return pipeArguments(this, arguments); } }; var counter = (options) => new CounterKeyType(options?.incremental ?? false, options?.bigint ?? false); var histogram = (boundaries) => { return new HistogramKeyType(boundaries); }; var isCounterKey = (u) => hasProperty(u, CounterKeyTypeTypeId); var isFrequencyKey = (u) => hasProperty(u, FrequencyKeyTypeTypeId); var isGaugeKey = (u) => hasProperty(u, GaugeKeyTypeTypeId); var isHistogramKey = (u) => hasProperty(u, HistogramKeyTypeTypeId); var isSummaryKey = (u) => hasProperty(u, SummaryKeyTypeTypeId); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/key.js var MetricKeySymbolKey = "effect/MetricKey"; var MetricKeyTypeId = /* @__PURE__ */ Symbol.for(MetricKeySymbolKey); var metricKeyVariance = { /* c8 ignore next */ _Type: (_) => _ }; var arrayEquivilence = /* @__PURE__ */ getEquivalence3(equals); var MetricKeyImpl = class { name; keyType; description; tags; [MetricKeyTypeId] = metricKeyVariance; constructor(name, keyType, description, tags = []) { this.name = name; this.keyType = keyType; this.description = description; this.tags = tags; this._hash = pipe(string(this.name + this.description), combine(hash(this.keyType)), combine(array2(this.tags))); } _hash; [symbol]() { return this._hash; } [symbol2](u) { return isMetricKey(u) && this.name === u.name && equals(this.keyType, u.keyType) && equals(this.description, u.description) && arrayEquivilence(this.tags, u.tags); } pipe() { return pipeArguments(this, arguments); } }; var isMetricKey = (u) => hasProperty(u, MetricKeyTypeId); var counter2 = (name, options) => new MetricKeyImpl(name, counter(options), fromNullable2(options?.description)); var histogram2 = (name, boundaries, description) => new MetricKeyImpl(name, histogram(boundaries), fromNullable2(description)); var taggedWithLabels = /* @__PURE__ */ dual(2, (self, extraTags) => extraTags.length === 0 ? self : new MetricKeyImpl(self.name, self.keyType, self.description, union(self.tags, extraTags))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/state.js var MetricStateSymbolKey = "effect/MetricState"; var MetricStateTypeId = /* @__PURE__ */ Symbol.for(MetricStateSymbolKey); var CounterStateSymbolKey = "effect/MetricState/Counter"; var CounterStateTypeId = /* @__PURE__ */ Symbol.for(CounterStateSymbolKey); var FrequencyStateSymbolKey = "effect/MetricState/Frequency"; var FrequencyStateTypeId = /* @__PURE__ */ Symbol.for(FrequencyStateSymbolKey); var GaugeStateSymbolKey = "effect/MetricState/Gauge"; var GaugeStateTypeId = /* @__PURE__ */ Symbol.for(GaugeStateSymbolKey); var HistogramStateSymbolKey = "effect/MetricState/Histogram"; var HistogramStateTypeId = /* @__PURE__ */ Symbol.for(HistogramStateSymbolKey); var SummaryStateSymbolKey = "effect/MetricState/Summary"; var SummaryStateTypeId = /* @__PURE__ */ Symbol.for(SummaryStateSymbolKey); var metricStateVariance = { /* c8 ignore next */ _A: (_) => _ }; var CounterState = class { count; [MetricStateTypeId] = metricStateVariance; [CounterStateTypeId] = CounterStateTypeId; constructor(count) { this.count = count; } [symbol]() { return pipe(hash(CounterStateSymbolKey), combine(hash(this.count)), cached(this)); } [symbol2](that) { return isCounterState(that) && this.count === that.count; } pipe() { return pipeArguments(this, arguments); } }; var arrayEquals = /* @__PURE__ */ getEquivalence3(equals); var FrequencyState = class { occurrences; [MetricStateTypeId] = metricStateVariance; [FrequencyStateTypeId] = FrequencyStateTypeId; constructor(occurrences) { this.occurrences = occurrences; } _hash; [symbol]() { return pipe(string(FrequencyStateSymbolKey), combine(array2(fromIterable(this.occurrences.entries()))), cached(this)); } [symbol2](that) { return isFrequencyState(that) && arrayEquals(fromIterable(this.occurrences.entries()), fromIterable(that.occurrences.entries())); } pipe() { return pipeArguments(this, arguments); } }; var GaugeState = class { value; [MetricStateTypeId] = metricStateVariance; [GaugeStateTypeId] = GaugeStateTypeId; constructor(value3) { this.value = value3; } [symbol]() { return pipe(hash(GaugeStateSymbolKey), combine(hash(this.value)), cached(this)); } [symbol2](u) { return isGaugeState(u) && this.value === u.value; } pipe() { return pipeArguments(this, arguments); } }; var HistogramState = class { buckets; count; min; max; sum; [MetricStateTypeId] = metricStateVariance; [HistogramStateTypeId] = HistogramStateTypeId; constructor(buckets, count, min3, max3, sum) { this.buckets = buckets; this.count = count; this.min = min3; this.max = max3; this.sum = sum; } [symbol]() { return pipe(hash(HistogramStateSymbolKey), combine(hash(this.buckets)), combine(hash(this.count)), combine(hash(this.min)), combine(hash(this.max)), combine(hash(this.sum)), cached(this)); } [symbol2](that) { return isHistogramState(that) && equals(this.buckets, that.buckets) && this.count === that.count && this.min === that.min && this.max === that.max && this.sum === that.sum; } pipe() { return pipeArguments(this, arguments); } }; var SummaryState = class { error; quantiles; count; min; max; sum; [MetricStateTypeId] = metricStateVariance; [SummaryStateTypeId] = SummaryStateTypeId; constructor(error, quantiles, count, min3, max3, sum) { this.error = error; this.quantiles = quantiles; this.count = count; this.min = min3; this.max = max3; this.sum = sum; } [symbol]() { return pipe(hash(SummaryStateSymbolKey), combine(hash(this.error)), combine(hash(this.quantiles)), combine(hash(this.count)), combine(hash(this.min)), combine(hash(this.max)), combine(hash(this.sum)), cached(this)); } [symbol2](that) { return isSummaryState(that) && this.error === that.error && equals(this.quantiles, that.quantiles) && this.count === that.count && this.min === that.min && this.max === that.max && this.sum === that.sum; } pipe() { return pipeArguments(this, arguments); } }; var counter3 = (count) => new CounterState(count); var frequency2 = (occurrences) => { return new FrequencyState(occurrences); }; var gauge2 = (count) => new GaugeState(count); var histogram3 = (options) => new HistogramState(options.buckets, options.count, options.min, options.max, options.sum); var summary2 = (options) => new SummaryState(options.error, options.quantiles, options.count, options.min, options.max, options.sum); var isCounterState = (u) => hasProperty(u, CounterStateTypeId); var isFrequencyState = (u) => hasProperty(u, FrequencyStateTypeId); var isGaugeState = (u) => hasProperty(u, GaugeStateTypeId); var isHistogramState = (u) => hasProperty(u, HistogramStateTypeId); var isSummaryState = (u) => hasProperty(u, SummaryStateTypeId); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/hook.js var MetricHookSymbolKey = "effect/MetricHook"; var MetricHookTypeId = /* @__PURE__ */ Symbol.for(MetricHookSymbolKey); var metricHookVariance = { /* c8 ignore next */ _In: (_) => _, /* c8 ignore next */ _Out: (_) => _ }; var make25 = (options) => ({ [MetricHookTypeId]: metricHookVariance, pipe() { return pipeArguments(this, arguments); }, ...options }); var bigint03 = /* @__PURE__ */ BigInt(0); var counter4 = (key) => { let sum = key.keyType.bigint ? bigint03 : 0; const canUpdate = key.keyType.incremental ? key.keyType.bigint ? (value3) => value3 >= bigint03 : (value3) => value3 >= 0 : (_value) => true; const update3 = (value3) => { if (canUpdate(value3)) { sum = sum + value3; } }; return make25({ get: () => counter3(sum), update: update3, modify: update3 }); }; var frequency3 = (key) => { const values4 = /* @__PURE__ */ new Map(); for (const word of key.keyType.preregisteredWords) { values4.set(word, 0); } const update3 = (word) => { const slotCount = values4.get(word) ?? 0; values4.set(word, slotCount + 1); }; return make25({ get: () => frequency2(values4), update: update3, modify: update3 }); }; var gauge3 = (_key, startAt) => { let value3 = startAt; return make25({ get: () => gauge2(value3), update: (v) => { value3 = v; }, modify: (v) => { value3 = value3 + v; } }); }; var histogram4 = (key) => { const bounds = key.keyType.boundaries.values; const size7 = bounds.length; const values4 = new Uint32Array(size7 + 1); const boundaries = new Float32Array(size7); let count = 0; let sum = 0; let min3 = Number.MAX_VALUE; let max3 = Number.MIN_VALUE; pipe(bounds, sort(Order), map3((n, i) => { boundaries[i] = n; })); const update3 = (value3) => { let from = 0; let to = size7; while (from !== to) { const mid = Math.floor(from + (to - from) / 2); const boundary = boundaries[mid]; if (value3 <= boundary) { to = mid; } else { from = mid; } if (to === from + 1) { if (value3 <= boundaries[from]) { to = from; } else { from = to; } } } values4[from] = values4[from] + 1; count = count + 1; sum = sum + value3; if (value3 < min3) { min3 = value3; } if (value3 > max3) { max3 = value3; } }; const getBuckets = () => { const builder = allocate(size7); let cumulated = 0; for (let i = 0; i < size7; i++) { const boundary = boundaries[i]; const value3 = values4[i]; cumulated = cumulated + value3; builder[i] = [boundary, cumulated]; } return builder; }; return make25({ get: () => histogram3({ buckets: getBuckets(), count, min: min3, max: max3, sum }), update: update3, modify: update3 }); }; var summary3 = (key) => { const { error, maxAge, maxSize, quantiles } = key.keyType; const sortedQuantiles = pipe(quantiles, sort(Order)); const values4 = allocate(maxSize); let head4 = 0; let count = 0; let sum = 0; let min3 = Number.MAX_VALUE; let max3 = Number.MIN_VALUE; const snapshot = (now2) => { const builder = []; let i = 0; while (i !== maxSize - 1) { const item = values4[i]; if (item != null) { const [t, v] = item; const age = millis(now2 - t); if (greaterThanOrEqualTo3(age, zero2) && age <= maxAge) { builder.push(v); } } i = i + 1; } return calculateQuantiles(error, sortedQuantiles, sort(builder, Order)); }; const observe = (value3, timestamp) => { if (maxSize > 0) { head4 = head4 + 1; const target = head4 % maxSize; values4[target] = [timestamp, value3]; } count = count + 1; sum = sum + value3; if (value3 < min3) { min3 = value3; } if (value3 > max3) { max3 = value3; } }; return make25({ get: () => summary2({ error, quantiles: snapshot(Date.now()), count, min: min3, max: max3, sum }), update: ([value3, timestamp]) => observe(value3, timestamp), modify: ([value3, timestamp]) => observe(value3, timestamp) }); }; var calculateQuantiles = (error, sortedQuantiles, sortedSamples) => { const sampleCount = sortedSamples.length; if (!isNonEmptyReadonlyArray(sortedQuantiles)) { return empty(); } const head4 = sortedQuantiles[0]; const tail = sortedQuantiles.slice(1); const resolvedHead = resolveQuantile(error, sampleCount, none2(), 0, head4, sortedSamples); const resolved = of(resolvedHead); tail.forEach((quantile) => { resolved.push(resolveQuantile(error, sampleCount, resolvedHead.value, resolvedHead.consumed, quantile, resolvedHead.rest)); }); return map3(resolved, (rq) => [rq.quantile, rq.value]); }; var resolveQuantile = (error, sampleCount, current, consumed, quantile, rest) => { let error_1 = error; let sampleCount_1 = sampleCount; let current_1 = current; let consumed_1 = consumed; let quantile_1 = quantile; let rest_1 = rest; let error_2 = error; let sampleCount_2 = sampleCount; let current_2 = current; let consumed_2 = consumed; let quantile_2 = quantile; let rest_2 = rest; while (1) { if (!isNonEmptyReadonlyArray(rest_1)) { return { quantile: quantile_1, value: none2(), consumed: consumed_1, rest: [] }; } if (quantile_1 === 1) { return { quantile: quantile_1, value: some2(lastNonEmpty(rest_1)), consumed: consumed_1 + rest_1.length, rest: [] }; } const sameHead = span(rest_1, (n) => n <= rest_1[0]); const desired = quantile_1 * sampleCount_1; const allowedError = error_1 / 2 * desired; const candConsumed = consumed_1 + sameHead[0].length; const candError = Math.abs(candConsumed - desired); if (candConsumed < desired - allowedError) { error_2 = error_1; sampleCount_2 = sampleCount_1; current_2 = head(rest_1); consumed_2 = candConsumed; quantile_2 = quantile_1; rest_2 = sameHead[1]; error_1 = error_2; sampleCount_1 = sampleCount_2; current_1 = current_2; consumed_1 = consumed_2; quantile_1 = quantile_2; rest_1 = rest_2; continue; } if (candConsumed > desired + allowedError) { return { quantile: quantile_1, value: current_1, consumed: consumed_1, rest: rest_1 }; } switch (current_1._tag) { case "None": { error_2 = error_1; sampleCount_2 = sampleCount_1; current_2 = head(rest_1); consumed_2 = candConsumed; quantile_2 = quantile_1; rest_2 = sameHead[1]; error_1 = error_2; sampleCount_1 = sampleCount_2; current_1 = current_2; consumed_1 = consumed_2; quantile_1 = quantile_2; rest_1 = rest_2; continue; } case "Some": { const prevError = Math.abs(desired - current_1.value); if (candError < prevError) { error_2 = error_1; sampleCount_2 = sampleCount_1; current_2 = head(rest_1); consumed_2 = candConsumed; quantile_2 = quantile_1; rest_2 = sameHead[1]; error_1 = error_2; sampleCount_1 = sampleCount_2; current_1 = current_2; consumed_1 = consumed_2; quantile_1 = quantile_2; rest_1 = rest_2; continue; } return { quantile: quantile_1, value: some2(current_1.value), consumed: consumed_1, rest: rest_1 }; } } } throw new Error("BUG: MetricHook.resolveQuantiles - please report an issue at https://github.com/Effect-TS/effect/issues"); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/pair.js var MetricPairSymbolKey = "effect/MetricPair"; var MetricPairTypeId = /* @__PURE__ */ Symbol.for(MetricPairSymbolKey); var metricPairVariance = { /* c8 ignore next */ _Type: (_) => _ }; var unsafeMake5 = (metricKey, metricState) => { return { [MetricPairTypeId]: metricPairVariance, metricKey, metricState, pipe() { return pipeArguments(this, arguments); } }; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric/registry.js var MetricRegistrySymbolKey = "effect/MetricRegistry"; var MetricRegistryTypeId = /* @__PURE__ */ Symbol.for(MetricRegistrySymbolKey); var MetricRegistryImpl = class { [MetricRegistryTypeId] = MetricRegistryTypeId; map = /* @__PURE__ */ empty15(); snapshot() { const result = []; for (const [key, hook] of this.map) { result.push(unsafeMake5(key, hook.get())); } return result; } get(key) { const hook = pipe(this.map, get7(key), getOrUndefined2); if (hook == null) { if (isCounterKey(key.keyType)) { return this.getCounter(key); } if (isGaugeKey(key.keyType)) { return this.getGauge(key); } if (isFrequencyKey(key.keyType)) { return this.getFrequency(key); } if (isHistogramKey(key.keyType)) { return this.getHistogram(key); } if (isSummaryKey(key.keyType)) { return this.getSummary(key); } throw new Error("BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues"); } else { return hook; } } getCounter(key) { let value3 = pipe(this.map, get7(key), getOrUndefined2); if (value3 == null) { const counter6 = counter4(key); if (!pipe(this.map, has4(key))) { pipe(this.map, set4(key, counter6)); } value3 = counter6; } return value3; } getFrequency(key) { let value3 = pipe(this.map, get7(key), getOrUndefined2); if (value3 == null) { const frequency5 = frequency3(key); if (!pipe(this.map, has4(key))) { pipe(this.map, set4(key, frequency5)); } value3 = frequency5; } return value3; } getGauge(key) { let value3 = pipe(this.map, get7(key), getOrUndefined2); if (value3 == null) { const gauge5 = gauge3(key, key.keyType.bigint ? BigInt(0) : 0); if (!pipe(this.map, has4(key))) { pipe(this.map, set4(key, gauge5)); } value3 = gauge5; } return value3; } getHistogram(key) { let value3 = pipe(this.map, get7(key), getOrUndefined2); if (value3 == null) { const histogram6 = histogram4(key); if (!pipe(this.map, has4(key))) { pipe(this.map, set4(key, histogram6)); } value3 = histogram6; } return value3; } getSummary(key) { let value3 = pipe(this.map, get7(key), getOrUndefined2); if (value3 == null) { const summary5 = summary3(key); if (!pipe(this.map, has4(key))) { pipe(this.map, set4(key, summary5)); } value3 = summary5; } return value3; } }; var make26 = () => { return new MetricRegistryImpl(); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/metric.js var MetricSymbolKey = "effect/Metric"; var MetricTypeId = /* @__PURE__ */ Symbol.for(MetricSymbolKey); var metricVariance = { /* c8 ignore next */ _Type: (_) => _, /* c8 ignore next */ _In: (_) => _, /* c8 ignore next */ _Out: (_) => _ }; var globalMetricRegistry = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Metric/globalMetricRegistry"), () => make26()); var make27 = function(keyType, unsafeUpdate, unsafeValue, unsafeModify) { const metric = Object.assign((effect) => tap(effect, (a) => update2(metric, a)), { [MetricTypeId]: metricVariance, keyType, unsafeUpdate, unsafeValue, unsafeModify, register() { this.unsafeValue([]); return this; }, pipe() { return pipeArguments(this, arguments); } }); return metric; }; var counter5 = (name, options) => fromMetricKey(counter2(name, options)); var fromMetricKey = (key) => { let untaggedHook; const hookCache = /* @__PURE__ */ new WeakMap(); const hook = (extraTags) => { if (extraTags.length === 0) { if (untaggedHook !== void 0) { return untaggedHook; } untaggedHook = globalMetricRegistry.get(key); return untaggedHook; } let hook2 = hookCache.get(extraTags); if (hook2 !== void 0) { return hook2; } hook2 = globalMetricRegistry.get(taggedWithLabels(key, extraTags)); hookCache.set(extraTags, hook2); return hook2; }; return make27(key.keyType, (input, extraTags) => hook(extraTags).update(input), (extraTags) => hook(extraTags).get(), (input, extraTags) => hook(extraTags).modify(input)); }; var histogram5 = (name, boundaries, description) => fromMetricKey(histogram2(name, boundaries, description)); var tagged = /* @__PURE__ */ dual(3, (self, key, value3) => taggedWithLabels2(self, [make24(key, value3)])); var taggedWithLabels2 = /* @__PURE__ */ dual(2, (self, extraTags) => { return make27(self.keyType, (input, extraTags1) => self.unsafeUpdate(input, union(extraTags, extraTags1)), (extraTags1) => self.unsafeValue(union(extraTags, extraTags1)), (input, extraTags1) => self.unsafeModify(input, union(extraTags, extraTags1))); }); var update2 = /* @__PURE__ */ dual(2, (self, input) => fiberRefGetWith(currentMetricLabels, (tags) => sync(() => self.unsafeUpdate(input, tags)))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/request.js var RequestSymbolKey = "effect/Request"; var RequestTypeId = /* @__PURE__ */ Symbol.for(RequestSymbolKey); var requestVariance = { /* c8 ignore next */ _E: (_) => _, /* c8 ignore next */ _A: (_) => _ }; var RequestPrototype = { ...StructuralPrototype, [RequestTypeId]: requestVariance }; var Class3 = /* @__PURE__ */ function() { function Class7(args2) { if (args2) { Object.assign(this, args2); } } Class7.prototype = RequestPrototype; return Class7; }(); var complete = /* @__PURE__ */ dual(2, (self, result) => fiberRefGetWith(currentRequestMap, (map15) => sync(() => { if (map15.has(self)) { const entry = map15.get(self); if (!entry.state.completed) { entry.state.completed = true; deferredUnsafeDone(entry.result, result); } } }))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/redBlackTree/iterator.js var Direction = { Forward: 0, Backward: 1 << 0 }; var RedBlackTreeIterator = class _RedBlackTreeIterator { self; stack; direction; count = 0; constructor(self, stack, direction) { this.self = self; this.stack = stack; this.direction = direction; } /** * Clones the iterator */ clone() { return new _RedBlackTreeIterator(this.self, this.stack.slice(), this.direction); } /** * Reverse the traversal direction */ reversed() { return new _RedBlackTreeIterator(this.self, this.stack.slice(), this.direction === Direction.Forward ? Direction.Backward : Direction.Forward); } /** * Iterator next */ next() { const entry = this.entry; this.count++; if (this.direction === Direction.Forward) { this.moveNext(); } else { this.movePrev(); } switch (entry._tag) { case "None": { return { done: true, value: this.count }; } case "Some": { return { done: false, value: entry.value }; } } } /** * Returns the key */ get key() { if (this.stack.length > 0) { return some2(this.stack[this.stack.length - 1].key); } return none2(); } /** * Returns the value */ get value() { if (this.stack.length > 0) { return some2(this.stack[this.stack.length - 1].value); } return none2(); } /** * Returns the key */ get entry() { return map2(last(this.stack), (node) => [node.key, node.value]); } /** * Returns the position of this iterator in the sorted list */ get index() { let idx = 0; const stack = this.stack; if (stack.length === 0) { const r = this.self._root; if (r != null) { return r.count; } return 0; } else if (stack[stack.length - 1].left != null) { idx = stack[stack.length - 1].left.count; } for (let s = stack.length - 2; s >= 0; --s) { if (stack[s + 1] === stack[s].right) { ; ++idx; if (stack[s].left != null) { idx += stack[s].left.count; } } } return idx; } /** * Advances iterator to next element in list */ moveNext() { const stack = this.stack; if (stack.length === 0) { return; } let n = stack[stack.length - 1]; if (n.right != null) { n = n.right; while (n != null) { stack.push(n); n = n.left; } } else { stack.pop(); while (stack.length > 0 && stack[stack.length - 1].right === n) { n = stack[stack.length - 1]; stack.pop(); } } } /** * Checks if there is a next element */ get hasNext() { const stack = this.stack; if (stack.length === 0) { return false; } if (stack[stack.length - 1].right != null) { return true; } for (let s = stack.length - 1; s > 0; --s) { if (stack[s - 1].left === stack[s]) { return true; } } return false; } /** * Advances iterator to previous element in list */ movePrev() { const stack = this.stack; if (stack.length === 0) { return; } let n = stack[stack.length - 1]; if (n != null && n.left != null) { n = n.left; while (n != null) { stack.push(n); n = n.right; } } else { stack.pop(); while (stack.length > 0 && stack[stack.length - 1].left === n) { n = stack[stack.length - 1]; stack.pop(); } } } /** * Checks if there is a previous element */ get hasPrev() { const stack = this.stack; if (stack.length === 0) { return false; } if (stack[stack.length - 1].left != null) { return true; } for (let s = stack.length - 1; s > 0; --s) { if (stack[s - 1].right === stack[s]) { return true; } } return false; } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/redBlackTree/node.js var Color = { Red: 0, Black: 1 << 0 }; var clone2 = ({ color, count, key, left: left3, right: right3, value: value3 }) => ({ color, key, value: value3, left: left3, right: right3, count }); function swap2(n, v) { n.key = v.key; n.value = v.value; n.left = v.left; n.right = v.right; n.color = v.color; n.count = v.count; } var repaint = ({ count, key, left: left3, right: right3, value: value3 }, color) => ({ color, key, value: value3, left: left3, right: right3, count }); var recount = (node) => { node.count = 1 + (node.left?.count ?? 0) + (node.right?.count ?? 0); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/redBlackTree.js var RedBlackTreeSymbolKey = "effect/RedBlackTree"; var RedBlackTreeTypeId = /* @__PURE__ */ Symbol.for(RedBlackTreeSymbolKey); var redBlackTreeVariance = { /* c8 ignore next */ _Key: (_) => _, /* c8 ignore next */ _Value: (_) => _ }; var RedBlackTreeProto = { [RedBlackTreeTypeId]: redBlackTreeVariance, [symbol]() { let hash3 = hash(RedBlackTreeSymbolKey); for (const item of this) { hash3 ^= pipe(hash(item[0]), combine(hash(item[1]))); } return cached(this, hash3); }, [symbol2](that) { if (isRedBlackTree(that)) { if ((this._root?.count ?? 0) !== (that._root?.count ?? 0)) { return false; } const entries2 = Array.from(that); return Array.from(this).every((itemSelf, i) => { const itemThat = entries2[i]; return equals(itemSelf[0], itemThat[0]) && equals(itemSelf[1], itemThat[1]); }); } return false; }, [Symbol.iterator]() { const stack = []; let n = this._root; while (n != null) { stack.push(n); n = n.left; } return new RedBlackTreeIterator(this, stack, Direction.Forward); }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "RedBlackTree", values: Array.from(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var makeImpl3 = (ord, root) => { const tree = Object.create(RedBlackTreeProto); tree._ord = ord; tree._root = root; return tree; }; var isRedBlackTree = (u) => hasProperty(u, RedBlackTreeTypeId); var empty20 = (ord) => makeImpl3(ord, void 0); var fromIterable9 = /* @__PURE__ */ dual(2, (entries2, ord) => { let tree = empty20(ord); for (const [key, value3] of entries2) { tree = insert(tree, key, value3); } return tree; }); var findFirst4 = /* @__PURE__ */ dual(2, (self, key) => { const cmp = self._ord; let node = self._root; while (node !== void 0) { const d = cmp(key, node.key); if (equals(key, node.key)) { return some2(node.value); } if (d <= 0) { node = node.left; } else { node = node.right; } } return none2(); }); var has5 = /* @__PURE__ */ dual(2, (self, key) => isSome2(findFirst4(self, key))); var insert = /* @__PURE__ */ dual(3, (self, key, value3) => { const cmp = self._ord; let n = self._root; const n_stack = []; const d_stack = []; while (n != null) { const d = cmp(key, n.key); n_stack.push(n); d_stack.push(d); if (d <= 0) { n = n.left; } else { n = n.right; } } n_stack.push({ color: Color.Red, key, value: value3, left: void 0, right: void 0, count: 1 }); for (let s = n_stack.length - 2; s >= 0; --s) { const n2 = n_stack[s]; if (d_stack[s] <= 0) { n_stack[s] = { color: n2.color, key: n2.key, value: n2.value, left: n_stack[s + 1], right: n2.right, count: n2.count + 1 }; } else { n_stack[s] = { color: n2.color, key: n2.key, value: n2.value, left: n2.left, right: n_stack[s + 1], count: n2.count + 1 }; } } for (let s = n_stack.length - 1; s > 1; --s) { const p = n_stack[s - 1]; const n3 = n_stack[s]; if (p.color === Color.Black || n3.color === Color.Black) { break; } const pp = n_stack[s - 2]; if (pp.left === p) { if (p.left === n3) { const y = pp.right; if (y && y.color === Color.Red) { p.color = Color.Black; pp.right = repaint(y, Color.Black); pp.color = Color.Red; s -= 1; } else { pp.color = Color.Red; pp.left = p.right; p.color = Color.Black; p.right = pp; n_stack[s - 2] = p; n_stack[s - 1] = n3; recount(pp); recount(p); if (s >= 3) { const ppp = n_stack[s - 3]; if (ppp.left === pp) { ppp.left = p; } else { ppp.right = p; } } break; } } else { const y = pp.right; if (y && y.color === Color.Red) { p.color = Color.Black; pp.right = repaint(y, Color.Black); pp.color = Color.Red; s -= 1; } else { p.right = n3.left; pp.color = Color.Red; pp.left = n3.right; n3.color = Color.Black; n3.left = p; n3.right = pp; n_stack[s - 2] = n3; n_stack[s - 1] = p; recount(pp); recount(p); recount(n3); if (s >= 3) { const ppp = n_stack[s - 3]; if (ppp.left === pp) { ppp.left = n3; } else { ppp.right = n3; } } break; } } } else { if (p.right === n3) { const y = pp.left; if (y && y.color === Color.Red) { p.color = Color.Black; pp.left = repaint(y, Color.Black); pp.color = Color.Red; s -= 1; } else { pp.color = Color.Red; pp.right = p.left; p.color = Color.Black; p.left = pp; n_stack[s - 2] = p; n_stack[s - 1] = n3; recount(pp); recount(p); if (s >= 3) { const ppp = n_stack[s - 3]; if (ppp.right === pp) { ppp.right = p; } else { ppp.left = p; } } break; } } else { const y = pp.left; if (y && y.color === Color.Red) { p.color = Color.Black; pp.left = repaint(y, Color.Black); pp.color = Color.Red; s -= 1; } else { p.left = n3.right; pp.color = Color.Red; pp.right = n3.left; n3.color = Color.Black; n3.right = p; n3.left = pp; n_stack[s - 2] = n3; n_stack[s - 1] = p; recount(pp); recount(p); recount(n3); if (s >= 3) { const ppp = n_stack[s - 3]; if (ppp.right === pp) { ppp.right = n3; } else { ppp.left = n3; } } break; } } } } n_stack[0].color = Color.Black; return makeImpl3(self._ord, n_stack[0]); }); var keysForward = (self) => keys3(self, Direction.Forward); var keys3 = (self, direction) => { const begin = self[Symbol.iterator](); let count = 0; return { [Symbol.iterator]: () => keys3(self, direction), next: () => { count++; const entry = begin.key; if (direction === Direction.Forward) { begin.moveNext(); } else { begin.movePrev(); } switch (entry._tag) { case "None": { return { done: true, value: count }; } case "Some": { return { done: false, value: entry.value }; } } } }; }; var removeFirst = /* @__PURE__ */ dual(2, (self, key) => { if (!has5(self, key)) { return self; } const ord = self._ord; const cmp = ord; let node = self._root; const stack = []; while (node !== void 0) { const d = cmp(key, node.key); stack.push(node); if (equals(key, node.key)) { node = void 0; } else if (d <= 0) { node = node.left; } else { node = node.right; } } if (stack.length === 0) { return self; } const cstack = new Array(stack.length); let n = stack[stack.length - 1]; cstack[cstack.length - 1] = { color: n.color, key: n.key, value: n.value, left: n.left, right: n.right, count: n.count }; for (let i = stack.length - 2; i >= 0; --i) { n = stack[i]; if (n.left === stack[i + 1]) { cstack[i] = { color: n.color, key: n.key, value: n.value, left: cstack[i + 1], right: n.right, count: n.count }; } else { cstack[i] = { color: n.color, key: n.key, value: n.value, left: n.left, right: cstack[i + 1], count: n.count }; } } n = cstack[cstack.length - 1]; if (n.left !== void 0 && n.right !== void 0) { const split3 = cstack.length; n = n.left; while (n.right != null) { cstack.push(n); n = n.right; } const v = cstack[split3 - 1]; cstack.push({ color: n.color, key: v.key, value: v.value, left: n.left, right: n.right, count: n.count }); cstack[split3 - 1].key = n.key; cstack[split3 - 1].value = n.value; for (let i = cstack.length - 2; i >= split3; --i) { n = cstack[i]; cstack[i] = { color: n.color, key: n.key, value: n.value, left: n.left, right: cstack[i + 1], count: n.count }; } cstack[split3 - 1].left = cstack[split3]; } n = cstack[cstack.length - 1]; if (n.color === Color.Red) { const p = cstack[cstack.length - 2]; if (p.left === n) { p.left = void 0; } else if (p.right === n) { p.right = void 0; } cstack.pop(); for (let i = 0; i < cstack.length; ++i) { cstack[i].count--; } return makeImpl3(ord, cstack[0]); } else { if (n.left !== void 0 || n.right !== void 0) { if (n.left !== void 0) { swap2(n, n.left); } else if (n.right !== void 0) { swap2(n, n.right); } n.color = Color.Black; for (let i = 0; i < cstack.length - 1; ++i) { cstack[i].count--; } return makeImpl3(ord, cstack[0]); } else if (cstack.length === 1) { return makeImpl3(ord, void 0); } else { for (let i = 0; i < cstack.length; ++i) { cstack[i].count--; } const parent = cstack[cstack.length - 2]; fixDoubleBlack(cstack); if (parent.left === n) { parent.left = void 0; } else { parent.right = void 0; } } } return makeImpl3(ord, cstack[0]); }); var fixDoubleBlack = (stack) => { let n, p, s, z; for (let i = stack.length - 1; i >= 0; --i) { n = stack[i]; if (i === 0) { n.color = Color.Black; return; } p = stack[i - 1]; if (p.left === n) { s = p.right; if (s !== void 0 && s.right !== void 0 && s.right.color === Color.Red) { s = p.right = clone2(s); z = s.right = clone2(s.right); p.right = s.left; s.left = p; s.right = z; s.color = p.color; n.color = Color.Black; p.color = Color.Black; z.color = Color.Black; recount(p); recount(s); if (i > 1) { const pp = stack[i - 2]; if (pp.left === p) { pp.left = s; } else { pp.right = s; } } stack[i - 1] = s; return; } else if (s !== void 0 && s.left !== void 0 && s.left.color === Color.Red) { s = p.right = clone2(s); z = s.left = clone2(s.left); p.right = z.left; s.left = z.right; z.left = p; z.right = s; z.color = p.color; p.color = Color.Black; s.color = Color.Black; n.color = Color.Black; recount(p); recount(s); recount(z); if (i > 1) { const pp = stack[i - 2]; if (pp.left === p) { pp.left = z; } else { pp.right = z; } } stack[i - 1] = z; return; } if (s !== void 0 && s.color === Color.Black) { if (p.color === Color.Red) { p.color = Color.Black; p.right = repaint(s, Color.Red); return; } else { p.right = repaint(s, Color.Red); continue; } } else if (s !== void 0) { s = clone2(s); p.right = s.left; s.left = p; s.color = p.color; p.color = Color.Red; recount(p); recount(s); if (i > 1) { const pp = stack[i - 2]; if (pp.left === p) { pp.left = s; } else { pp.right = s; } } stack[i - 1] = s; stack[i] = p; if (i + 1 < stack.length) { stack[i + 1] = n; } else { stack.push(n); } i = i + 2; } } else { s = p.left; if (s !== void 0 && s.left !== void 0 && s.left.color === Color.Red) { s = p.left = clone2(s); z = s.left = clone2(s.left); p.left = s.right; s.right = p; s.left = z; s.color = p.color; n.color = Color.Black; p.color = Color.Black; z.color = Color.Black; recount(p); recount(s); if (i > 1) { const pp = stack[i - 2]; if (pp.right === p) { pp.right = s; } else { pp.left = s; } } stack[i - 1] = s; return; } else if (s !== void 0 && s.right !== void 0 && s.right.color === Color.Red) { s = p.left = clone2(s); z = s.right = clone2(s.right); p.left = z.right; s.right = z.left; z.right = p; z.left = s; z.color = p.color; p.color = Color.Black; s.color = Color.Black; n.color = Color.Black; recount(p); recount(s); recount(z); if (i > 1) { const pp = stack[i - 2]; if (pp.right === p) { pp.right = z; } else { pp.left = z; } } stack[i - 1] = z; return; } if (s !== void 0 && s.color === Color.Black) { if (p.color === Color.Red) { p.color = Color.Black; p.left = repaint(s, Color.Red); return; } else { p.left = repaint(s, Color.Red); continue; } } else if (s !== void 0) { s = clone2(s); p.left = s.right; s.right = p; s.color = p.color; p.color = Color.Red; recount(p); recount(s); if (i > 1) { const pp = stack[i - 2]; if (pp.right === p) { pp.right = s; } else { pp.left = s; } } stack[i - 1] = s; stack[i] = p; if (i + 1 < stack.length) { stack[i + 1] = n; } else { stack.push(n); } i = i + 2; } } } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/RedBlackTree.js var fromIterable10 = fromIterable9; var has6 = has5; var insert2 = insert; var keys4 = keysForward; var removeFirst2 = removeFirst; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/SortedSet.js var TypeId13 = /* @__PURE__ */ Symbol.for("effect/SortedSet"); var SortedSetProto = { [TypeId13]: { _A: (_) => _ }, [symbol]() { return pipe(hash(this.keyTree), combine(hash(TypeId13)), cached(this)); }, [symbol2](that) { return isSortedSet(that) && equals(this.keyTree, that.keyTree); }, [Symbol.iterator]() { return keys4(this.keyTree); }, toString() { return format(this.toJSON()); }, toJSON() { return { _id: "SortedSet", values: Array.from(this).map(toJSON) }; }, [NodeInspectSymbol]() { return this.toJSON(); }, pipe() { return pipeArguments(this, arguments); } }; var fromTree = (keyTree) => { const a = Object.create(SortedSetProto); a.keyTree = keyTree; return a; }; var isSortedSet = (u) => hasProperty(u, TypeId13); var fromIterable11 = /* @__PURE__ */ dual(2, (iterable, ord) => fromTree(fromIterable10(Array.from(iterable).map((k) => [k, true]), ord))); var add5 = /* @__PURE__ */ dual(2, (self, value3) => has6(self.keyTree, value3) ? self : fromTree(insert2(self.keyTree, value3, true))); var every3 = /* @__PURE__ */ dual(2, (self, predicate) => { for (const value3 of self) { if (!predicate(value3)) { return false; } } return true; }); var has7 = /* @__PURE__ */ dual(2, (self, value3) => has6(self.keyTree, value3)); var isSubset2 = /* @__PURE__ */ dual(2, (self, that) => every3(self, (a) => has7(that, a))); var remove5 = /* @__PURE__ */ dual(2, (self, value3) => fromTree(removeFirst2(self.keyTree, value3))); var values3 = (self) => keys4(self.keyTree); var getEquivalence6 = () => (a, b) => isSubset2(a, b) && isSubset2(b, a); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/supervisor.js var SupervisorSymbolKey = "effect/Supervisor"; var SupervisorTypeId = /* @__PURE__ */ Symbol.for(SupervisorSymbolKey); var supervisorVariance = { /* c8 ignore next */ _T: (_) => _ }; var ProxySupervisor = class _ProxySupervisor { underlying; value0; [SupervisorTypeId] = supervisorVariance; constructor(underlying, value0) { this.underlying = underlying; this.value0 = value0; } get value() { return this.value0; } onStart(context3, effect, parent, fiber) { this.underlying.onStart(context3, effect, parent, fiber); } onEnd(value3, fiber) { this.underlying.onEnd(value3, fiber); } onEffect(fiber, effect) { this.underlying.onEffect(fiber, effect); } onSuspend(fiber) { this.underlying.onSuspend(fiber); } onResume(fiber) { this.underlying.onResume(fiber); } map(f) { return new _ProxySupervisor(this, pipe(this.value, map9(f))); } zip(right3) { return new Zip(this, right3); } }; var Zip = class _Zip { left; right; _tag = "Zip"; [SupervisorTypeId] = supervisorVariance; constructor(left3, right3) { this.left = left3; this.right = right3; } get value() { return zip2(this.left.value, this.right.value); } onStart(context3, effect, parent, fiber) { this.left.onStart(context3, effect, parent, fiber); this.right.onStart(context3, effect, parent, fiber); } onEnd(value3, fiber) { this.left.onEnd(value3, fiber); this.right.onEnd(value3, fiber); } onEffect(fiber, effect) { this.left.onEffect(fiber, effect); this.right.onEffect(fiber, effect); } onSuspend(fiber) { this.left.onSuspend(fiber); this.right.onSuspend(fiber); } onResume(fiber) { this.left.onResume(fiber); this.right.onResume(fiber); } map(f) { return new ProxySupervisor(this, pipe(this.value, map9(f))); } zip(right3) { return new _Zip(this, right3); } }; var isZip = (self) => hasProperty(self, SupervisorTypeId) && isTagged(self, "Zip"); var Track = class { [SupervisorTypeId] = supervisorVariance; fibers = /* @__PURE__ */ new Set(); get value() { return sync(() => Array.from(this.fibers)); } onStart(_context, _effect, _parent, fiber) { this.fibers.add(fiber); } onEnd(_value, fiber) { this.fibers.delete(fiber); } onEffect(_fiber, _effect) { } onSuspend(_fiber) { } onResume(_fiber) { } map(f) { return new ProxySupervisor(this, pipe(this.value, map9(f))); } zip(right3) { return new Zip(this, right3); } onRun(execution, _fiber) { return execution(); } }; var Const = class { effect; [SupervisorTypeId] = supervisorVariance; constructor(effect) { this.effect = effect; } get value() { return this.effect; } onStart(_context, _effect, _parent, _fiber) { } onEnd(_value, _fiber) { } onEffect(_fiber, _effect) { } onSuspend(_fiber) { } onResume(_fiber) { } map(f) { return new ProxySupervisor(this, pipe(this.value, map9(f))); } zip(right3) { return new Zip(this, right3); } onRun(execution, _fiber) { return execution(); } }; var FibersIn = class { ref; [SupervisorTypeId] = supervisorVariance; constructor(ref) { this.ref = ref; } get value() { return sync(() => get5(this.ref)); } onStart(_context, _effect, _parent, fiber) { pipe(this.ref, set2(pipe(get5(this.ref), add5(fiber)))); } onEnd(_value, fiber) { pipe(this.ref, set2(pipe(get5(this.ref), remove5(fiber)))); } onEffect(_fiber, _effect) { } onSuspend(_fiber) { } onResume(_fiber) { } map(f) { return new ProxySupervisor(this, pipe(this.value, map9(f))); } zip(right3) { return new Zip(this, right3); } onRun(execution, _fiber) { return execution(); } }; var fromEffect = (effect) => { return new Const(effect); }; var none7 = /* @__PURE__ */ globalValue("effect/Supervisor/none", () => fromEffect(void_)); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Differ.js var make29 = make15; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/supervisor/patch.js var OP_EMPTY3 = "Empty"; var OP_ADD_SUPERVISOR = "AddSupervisor"; var OP_REMOVE_SUPERVISOR = "RemoveSupervisor"; var OP_AND_THEN2 = "AndThen"; var empty22 = { _tag: OP_EMPTY3 }; var combine7 = (self, that) => { return { _tag: OP_AND_THEN2, first: self, second: that }; }; var patch8 = (self, supervisor) => { return patchLoop(supervisor, of2(self)); }; var patchLoop = (_supervisor, _patches) => { let supervisor = _supervisor; let patches = _patches; while (isNonEmpty2(patches)) { const head4 = headNonEmpty2(patches); switch (head4._tag) { case OP_EMPTY3: { patches = tailNonEmpty2(patches); break; } case OP_ADD_SUPERVISOR: { supervisor = supervisor.zip(head4.supervisor); patches = tailNonEmpty2(patches); break; } case OP_REMOVE_SUPERVISOR: { supervisor = removeSupervisor(supervisor, head4.supervisor); patches = tailNonEmpty2(patches); break; } case OP_AND_THEN2: { patches = prepend2(head4.first)(prepend2(head4.second)(tailNonEmpty2(patches))); break; } } } return supervisor; }; var removeSupervisor = (self, that) => { if (equals(self, that)) { return none7; } else { if (isZip(self)) { return removeSupervisor(self.left, that).zip(removeSupervisor(self.right, that)); } else { return self; } } }; var toSet2 = (self) => { if (equals(self, none7)) { return empty7(); } else { if (isZip(self)) { return pipe(toSet2(self.left), union3(toSet2(self.right))); } else { return make11(self); } } }; var diff7 = (oldValue, newValue) => { if (equals(oldValue, newValue)) { return empty22; } const oldSupervisors = toSet2(oldValue); const newSupervisors = toSet2(newValue); const added = pipe(newSupervisors, difference3(oldSupervisors), reduce4(empty22, (patch9, supervisor) => combine7(patch9, { _tag: OP_ADD_SUPERVISOR, supervisor }))); const removed = pipe(oldSupervisors, difference3(newSupervisors), reduce4(empty22, (patch9, supervisor) => combine7(patch9, { _tag: OP_REMOVE_SUPERVISOR, supervisor }))); return combine7(added, removed); }; var differ2 = /* @__PURE__ */ make29({ empty: empty22, patch: patch8, combine: combine7, diff: diff7 }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/fiberRuntime.js var fiberStarted = /* @__PURE__ */ counter5("effect_fiber_started", { incremental: true }); var fiberActive = /* @__PURE__ */ counter5("effect_fiber_active"); var fiberSuccesses = /* @__PURE__ */ counter5("effect_fiber_successes", { incremental: true }); var fiberFailures = /* @__PURE__ */ counter5("effect_fiber_failures", { incremental: true }); var fiberLifetimes = /* @__PURE__ */ tagged(/* @__PURE__ */ histogram5("effect_fiber_lifetimes", /* @__PURE__ */ exponential({ start: 0.5, factor: 2, count: 35 })), "time_unit", "milliseconds"); var EvaluationSignalContinue = "Continue"; var EvaluationSignalDone = "Done"; var EvaluationSignalYieldNow = "Yield"; var runtimeFiberVariance = { /* c8 ignore next */ _E: (_) => _, /* c8 ignore next */ _A: (_) => _ }; var absurd = (_) => { throw new Error(`BUG: FiberRuntime - ${toStringUnknown(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`); }; var YieldedOp = /* @__PURE__ */ Symbol.for("effect/internal/fiberRuntime/YieldedOp"); var yieldedOpChannel = /* @__PURE__ */ globalValue("effect/internal/fiberRuntime/yieldedOpChannel", () => ({ currentOp: null })); var contOpSuccess = { [OP_ON_SUCCESS]: (_, cont, value3) => { return internalCall(() => cont.effect_instruction_i1(value3)); }, ["OnStep"]: (_, _cont, value3) => { return exitSucceed(exitSucceed(value3)); }, [OP_ON_SUCCESS_AND_FAILURE]: (_, cont, value3) => { return internalCall(() => cont.effect_instruction_i2(value3)); }, [OP_REVERT_FLAGS]: (self, cont, value3) => { self.patchRuntimeFlags(self.currentRuntimeFlags, cont.patch); if (interruptible(self.currentRuntimeFlags) && self.isInterrupted()) { return exitFailCause(self.getInterruptedCause()); } else { return exitSucceed(value3); } }, [OP_WHILE]: (self, cont, value3) => { internalCall(() => cont.effect_instruction_i2(value3)); if (internalCall(() => cont.effect_instruction_i0())) { self.pushStack(cont); return internalCall(() => cont.effect_instruction_i1()); } else { return void_; } }, [OP_ITERATOR]: (self, cont, value3) => { const state = internalCall(() => cont.effect_instruction_i0.next(value3)); if (state.done) return exitSucceed(state.value); self.pushStack(cont); return yieldWrapGet(state.value); } }; var drainQueueWhileRunningTable = { [OP_INTERRUPT_SIGNAL]: (self, runtimeFlags2, cur, message) => { self.processNewInterruptSignal(message.cause); return interruptible(runtimeFlags2) ? exitFailCause(message.cause) : cur; }, [OP_RESUME]: (_self, _runtimeFlags, _cur, _message) => { throw new Error("It is illegal to have multiple concurrent run loops in a single fiber"); }, [OP_STATEFUL]: (self, runtimeFlags2, cur, message) => { message.onFiber(self, running2(runtimeFlags2)); return cur; }, [OP_YIELD_NOW]: (_self, _runtimeFlags, cur, _message) => { return flatMap7(yieldNow(), () => cur); } }; var runBlockedRequests = (self) => forEachSequentialDiscard(flatten3(self), (requestsByRequestResolver) => forEachConcurrentDiscard(sequentialCollectionToChunk(requestsByRequestResolver), ([dataSource, sequential5]) => { const map15 = /* @__PURE__ */ new Map(); const arr = []; for (const block of sequential5) { arr.push(toReadonlyArray(block)); for (const entry of block) { map15.set(entry.request, entry); } } const flat = arr.flat(); return fiberRefLocally(invokeWithInterrupt(dataSource.runAll(arr), flat, () => flat.forEach((entry) => { entry.listeners.interrupted = true; })), currentRequestMap, map15); }, false, false)); var _version = /* @__PURE__ */ getCurrentVersion(); var FiberRuntime = class extends Class2 { [FiberTypeId] = fiberVariance2; [RuntimeFiberTypeId] = runtimeFiberVariance; _fiberRefs; _fiberId; _queue = /* @__PURE__ */ new Array(); _children = null; _observers = /* @__PURE__ */ new Array(); _running = false; _stack = []; _asyncInterruptor = null; _asyncBlockingOn = null; _exitValue = null; _steps = []; _isYielding = false; currentRuntimeFlags; currentOpCount = 0; currentSupervisor; currentScheduler; currentTracer; currentSpan; currentContext; currentDefaultServices; constructor(fiberId2, fiberRefs0, runtimeFlags0) { super(); this.currentRuntimeFlags = runtimeFlags0; this._fiberId = fiberId2; this._fiberRefs = fiberRefs0; if (runtimeMetrics(runtimeFlags0)) { const tags = this.getFiberRef(currentMetricLabels); fiberStarted.unsafeUpdate(1, tags); fiberActive.unsafeUpdate(1, tags); } this.refreshRefCache(); } commit() { return join2(this); } /** * The identity of the fiber. */ id() { return this._fiberId; } /** * Begins execution of the effect associated with this fiber on in the * background. This can be called to "kick off" execution of a fiber after * it has been created. */ resume(effect) { this.tell(resume(effect)); } /** * The status of the fiber. */ get status() { return this.ask((_, status) => status); } /** * Gets the fiber runtime flags. */ get runtimeFlags() { return this.ask((state, status) => { if (isDone2(status)) { return state.currentRuntimeFlags; } return status.runtimeFlags; }); } /** * Returns the current `FiberScope` for the fiber. */ scope() { return unsafeMake4(this); } /** * Retrieves the immediate children of the fiber. */ get children() { return this.ask((fiber) => Array.from(fiber.getChildren())); } /** * Gets the fiber's set of children. */ getChildren() { if (this._children === null) { this._children = /* @__PURE__ */ new Set(); } return this._children; } /** * Retrieves the interrupted cause of the fiber, which will be `Cause.empty` * if the fiber has not been interrupted. * * **NOTE**: This method is safe to invoke on any fiber, but if not invoked * on this fiber, then values derived from the fiber's state (including the * log annotations and log level) may not be up-to-date. */ getInterruptedCause() { return this.getFiberRef(currentInterruptedCause); } /** * Retrieves the whole set of fiber refs. */ fiberRefs() { return this.ask((fiber) => fiber.getFiberRefs()); } /** * Returns an effect that will contain information computed from the fiber * state and status while running on the fiber. * * This allows the outside world to interact safely with mutable fiber state * without locks or immutable data. */ ask(f) { return suspend(() => { const deferred = deferredUnsafeMake(this._fiberId); this.tell(stateful((fiber, status) => { deferredUnsafeDone(deferred, sync(() => f(fiber, status))); })); return deferredAwait(deferred); }); } /** * Adds a message to be processed by the fiber on the fiber. */ tell(message) { this._queue.push(message); if (!this._running) { this._running = true; this.drainQueueLaterOnExecutor(); } } get await() { return async_((resume2) => { const cb = (exit3) => resume2(succeed(exit3)); this.tell(stateful((fiber, _) => { if (fiber._exitValue !== null) { cb(this._exitValue); } else { fiber.addObserver(cb); } })); return sync(() => this.tell(stateful((fiber, _) => { fiber.removeObserver(cb); }))); }, this.id()); } get inheritAll() { return withFiberRuntime((parentFiber, parentStatus) => { const parentFiberId = parentFiber.id(); const parentFiberRefs = parentFiber.getFiberRefs(); const parentRuntimeFlags = parentStatus.runtimeFlags; const childFiberRefs = this.getFiberRefs(); const updatedFiberRefs = joinAs(parentFiberRefs, parentFiberId, childFiberRefs); parentFiber.setFiberRefs(updatedFiberRefs); const updatedRuntimeFlags = parentFiber.getFiberRef(currentRuntimeFlags); const patch9 = pipe( diff4(parentRuntimeFlags, updatedRuntimeFlags), // Do not inherit WindDown or Interruption! exclude2(Interruption), exclude2(WindDown) ); return updateRuntimeFlags(patch9); }); } /** * Tentatively observes the fiber, but returns immediately if it is not * already done. */ get poll() { return sync(() => fromNullable2(this._exitValue)); } /** * Unsafely observes the fiber, but returns immediately if it is not * already done. */ unsafePoll() { return this._exitValue; } /** * In the background, interrupts the fiber as if interrupted from the specified fiber. */ interruptAsFork(fiberId2) { return sync(() => this.tell(interruptSignal(interrupt(fiberId2)))); } /** * In the background, interrupts the fiber as if interrupted from the specified fiber. */ unsafeInterruptAsFork(fiberId2) { this.tell(interruptSignal(interrupt(fiberId2))); } /** * Adds an observer to the list of observers. * * **NOTE**: This method must be invoked by the fiber itself. */ addObserver(observer) { if (this._exitValue !== null) { observer(this._exitValue); } else { this._observers.push(observer); } } /** * Removes the specified observer from the list of observers that will be * notified when the fiber exits. * * **NOTE**: This method must be invoked by the fiber itself. */ removeObserver(observer) { this._observers = this._observers.filter((o) => o !== observer); } /** * Retrieves all fiber refs of the fiber. * * **NOTE**: This method is safe to invoke on any fiber, but if not invoked * on this fiber, then values derived from the fiber's state (including the * log annotations and log level) may not be up-to-date. */ getFiberRefs() { this.setFiberRef(currentRuntimeFlags, this.currentRuntimeFlags); return this._fiberRefs; } /** * Deletes the specified fiber ref. * * **NOTE**: This method must be invoked by the fiber itself. */ unsafeDeleteFiberRef(fiberRef) { this._fiberRefs = delete_(this._fiberRefs, fiberRef); } /** * Retrieves the state of the fiber ref, or else its initial value. * * **NOTE**: This method is safe to invoke on any fiber, but if not invoked * on this fiber, then values derived from the fiber's state (including the * log annotations and log level) may not be up-to-date. */ getFiberRef(fiberRef) { if (this._fiberRefs.locals.has(fiberRef)) { return this._fiberRefs.locals.get(fiberRef)[0][1]; } return fiberRef.initial; } /** * Sets the fiber ref to the specified value. * * **NOTE**: This method must be invoked by the fiber itself. */ setFiberRef(fiberRef, value3) { this._fiberRefs = updateAs(this._fiberRefs, { fiberId: this._fiberId, fiberRef, value: value3 }); this.refreshRefCache(); } refreshRefCache() { this.currentDefaultServices = this.getFiberRef(currentServices); this.currentTracer = this.currentDefaultServices.unsafeMap.get(tracerTag.key); this.currentSupervisor = this.getFiberRef(currentSupervisor); this.currentScheduler = this.getFiberRef(currentScheduler); this.currentContext = this.getFiberRef(currentContext); this.currentSpan = this.currentContext.unsafeMap.get(spanTag.key); } /** * Wholesale replaces all fiber refs of this fiber. * * **NOTE**: This method must be invoked by the fiber itself. */ setFiberRefs(fiberRefs2) { this._fiberRefs = fiberRefs2; this.refreshRefCache(); } /** * Adds a reference to the specified fiber inside the children set. * * **NOTE**: This method must be invoked by the fiber itself. */ addChild(child) { this.getChildren().add(child); } /** * Removes a reference to the specified fiber inside the children set. * * **NOTE**: This method must be invoked by the fiber itself. */ removeChild(child) { this.getChildren().delete(child); } /** * Transfers all children of this fiber that are currently running to the * specified fiber scope. * * **NOTE**: This method must be invoked by the fiber itself after it has * evaluated the effects but prior to exiting. */ transferChildren(scope2) { const children = this._children; this._children = null; if (children !== null && children.size > 0) { for (const child of children) { if (child._exitValue === null) { scope2.add(this.currentRuntimeFlags, child); } } } } /** * On the current thread, executes all messages in the fiber's inbox. This * method may return before all work is done, in the event the fiber executes * an asynchronous operation. * * **NOTE**: This method must be invoked by the fiber itself. */ drainQueueOnCurrentThread() { let recurse = true; while (recurse) { let evaluationSignal = EvaluationSignalContinue; const prev = globalThis[currentFiberURI]; globalThis[currentFiberURI] = this; try { while (evaluationSignal === EvaluationSignalContinue) { evaluationSignal = this._queue.length === 0 ? EvaluationSignalDone : this.evaluateMessageWhileSuspended(this._queue.splice(0, 1)[0]); } } finally { this._running = false; globalThis[currentFiberURI] = prev; } if (this._queue.length > 0 && !this._running) { this._running = true; if (evaluationSignal === EvaluationSignalYieldNow) { this.drainQueueLaterOnExecutor(); recurse = false; } else { recurse = true; } } else { recurse = false; } } } /** * Schedules the execution of all messages in the fiber's inbox. * * This method will return immediately after the scheduling * operation is completed, but potentially before such messages have been * executed. * * **NOTE**: This method must be invoked by the fiber itself. */ drainQueueLaterOnExecutor() { this.currentScheduler.scheduleTask(this.run, this.getFiberRef(currentSchedulingPriority)); } /** * Drains the fiber's message queue while the fiber is actively running, * returning the next effect to execute, which may be the input effect if no * additional effect needs to be executed. * * **NOTE**: This method must be invoked by the fiber itself. */ drainQueueWhileRunning(runtimeFlags2, cur0) { let cur = cur0; while (this._queue.length > 0) { const message = this._queue.splice(0, 1)[0]; cur = drainQueueWhileRunningTable[message._tag](this, runtimeFlags2, cur, message); } return cur; } /** * Determines if the fiber is interrupted. * * **NOTE**: This method is safe to invoke on any fiber, but if not invoked * on this fiber, then values derived from the fiber's state (including the * log annotations and log level) may not be up-to-date. */ isInterrupted() { return !isEmpty5(this.getFiberRef(currentInterruptedCause)); } /** * Adds an interruptor to the set of interruptors that are interrupting this * fiber. * * **NOTE**: This method must be invoked by the fiber itself. */ addInterruptedCause(cause) { const oldSC = this.getFiberRef(currentInterruptedCause); this.setFiberRef(currentInterruptedCause, sequential(oldSC, cause)); } /** * Processes a new incoming interrupt signal. * * **NOTE**: This method must be invoked by the fiber itself. */ processNewInterruptSignal(cause) { this.addInterruptedCause(cause); this.sendInterruptSignalToAllChildren(); } /** * Interrupts all children of the current fiber, returning an effect that will * await the exit of the children. This method will return null if the fiber * has no children. * * **NOTE**: This method must be invoked by the fiber itself. */ sendInterruptSignalToAllChildren() { if (this._children === null || this._children.size === 0) { return false; } let told = false; for (const child of this._children) { child.tell(interruptSignal(interrupt(this.id()))); told = true; } return told; } /** * Interrupts all children of the current fiber, returning an effect that will * await the exit of the children. This method will return null if the fiber * has no children. * * **NOTE**: This method must be invoked by the fiber itself. */ interruptAllChildren() { if (this.sendInterruptSignalToAllChildren()) { const it = this._children.values(); this._children = null; let isDone3 = false; const body = () => { const next = it.next(); if (!next.done) { return asVoid(next.value.await); } else { return sync(() => { isDone3 = true; }); } }; return whileLoop({ while: () => !isDone3, body, step: () => { } }); } return null; } reportExitValue(exit3) { if (runtimeMetrics(this.currentRuntimeFlags)) { const tags = this.getFiberRef(currentMetricLabels); const startTimeMillis = this.id().startTimeMillis; const endTimeMillis = Date.now(); fiberLifetimes.unsafeUpdate(endTimeMillis - startTimeMillis, tags); fiberActive.unsafeUpdate(-1, tags); switch (exit3._tag) { case OP_SUCCESS: { fiberSuccesses.unsafeUpdate(1, tags); break; } case OP_FAILURE: { fiberFailures.unsafeUpdate(1, tags); break; } } } if (exit3._tag === "Failure") { const level = this.getFiberRef(currentUnhandledErrorLogLevel); if (!isInterruptedOnly(exit3.cause) && level._tag === "Some") { this.log("Fiber terminated with an unhandled error", exit3.cause, level); } } } setExitValue(exit3) { this._exitValue = exit3; this.reportExitValue(exit3); for (let i = this._observers.length - 1; i >= 0; i--) { this._observers[i](exit3); } this._observers = []; } getLoggers() { return this.getFiberRef(currentLoggers); } log(message, cause, overrideLogLevel) { const logLevel2 = isSome2(overrideLogLevel) ? overrideLogLevel.value : this.getFiberRef(currentLogLevel); const minimumLogLevel = this.getFiberRef(currentMinimumLogLevel); if (greaterThan4(minimumLogLevel, logLevel2)) { return; } const spans = this.getFiberRef(currentLogSpan); const annotations3 = this.getFiberRef(currentLogAnnotations); const loggers = this.getLoggers(); const contextMap = this.getFiberRefs(); if (size3(loggers) > 0) { const clockService = get3(this.getFiberRef(currentServices), clockTag); const date3 = new Date(clockService.unsafeCurrentTimeMillis()); withRedactableContext(contextMap, () => { for (const logger of loggers) { logger.log({ fiberId: this.id(), logLevel: logLevel2, message, cause, context: contextMap, spans, annotations: annotations3, date: date3 }); } }); } } /** * Evaluates a single message on the current thread, while the fiber is * suspended. This method should only be called while evaluation of the * fiber's effect is suspended due to an asynchronous operation. * * **NOTE**: This method must be invoked by the fiber itself. */ evaluateMessageWhileSuspended(message) { switch (message._tag) { case OP_YIELD_NOW: { return EvaluationSignalYieldNow; } case OP_INTERRUPT_SIGNAL: { this.processNewInterruptSignal(message.cause); if (this._asyncInterruptor !== null) { this._asyncInterruptor(exitFailCause(message.cause)); this._asyncInterruptor = null; } return EvaluationSignalContinue; } case OP_RESUME: { this._asyncInterruptor = null; this._asyncBlockingOn = null; this.evaluateEffect(message.effect); return EvaluationSignalContinue; } case OP_STATEFUL: { message.onFiber(this, this._exitValue !== null ? done3 : suspended2(this.currentRuntimeFlags, this._asyncBlockingOn)); return EvaluationSignalContinue; } default: { return absurd(message); } } } /** * Evaluates an effect until completion, potentially asynchronously. * * **NOTE**: This method must be invoked by the fiber itself. */ evaluateEffect(effect0) { this.currentSupervisor.onResume(this); try { let effect = interruptible(this.currentRuntimeFlags) && this.isInterrupted() ? exitFailCause(this.getInterruptedCause()) : effect0; while (effect !== null) { const eff = effect; const exit3 = this.runLoop(eff); if (exit3 === YieldedOp) { const op = yieldedOpChannel.currentOp; yieldedOpChannel.currentOp = null; if (op._op === OP_YIELD) { if (cooperativeYielding(this.currentRuntimeFlags)) { this.tell(yieldNow3()); this.tell(resume(exitVoid)); effect = null; } else { effect = exitVoid; } } else if (op._op === OP_ASYNC) { effect = null; } } else { this.currentRuntimeFlags = pipe(this.currentRuntimeFlags, enable2(WindDown)); const interruption2 = this.interruptAllChildren(); if (interruption2 !== null) { effect = flatMap7(interruption2, () => exit3); } else { if (this._queue.length === 0) { this.setExitValue(exit3); } else { this.tell(resume(exit3)); } effect = null; } } } } finally { this.currentSupervisor.onSuspend(this); } } /** * Begins execution of the effect associated with this fiber on the current * thread. This can be called to "kick off" execution of a fiber after it has * been created, in hopes that the effect can be executed synchronously. * * This is not the normal way of starting a fiber, but it is useful when the * express goal of executing the fiber is to synchronously produce its exit. */ start(effect) { if (!this._running) { this._running = true; const prev = globalThis[currentFiberURI]; globalThis[currentFiberURI] = this; try { this.evaluateEffect(effect); } finally { this._running = false; globalThis[currentFiberURI] = prev; if (this._queue.length > 0) { this.drainQueueLaterOnExecutor(); } } } else { this.tell(resume(effect)); } } /** * Begins execution of the effect associated with this fiber on in the * background, and on the correct thread pool. This can be called to "kick * off" execution of a fiber after it has been created, in hopes that the * effect can be executed synchronously. */ startFork(effect) { this.tell(resume(effect)); } /** * Takes the current runtime flags, patches them to return the new runtime * flags, and then makes any changes necessary to fiber state based on the * specified patch. * * **NOTE**: This method must be invoked by the fiber itself. */ patchRuntimeFlags(oldRuntimeFlags, patch9) { const newRuntimeFlags = patch4(oldRuntimeFlags, patch9); globalThis[currentFiberURI] = this; this.currentRuntimeFlags = newRuntimeFlags; return newRuntimeFlags; } /** * Initiates an asynchronous operation, by building a callback that will * resume execution, and then feeding that callback to the registration * function, handling error cases and repeated resumptions appropriately. * * **NOTE**: This method must be invoked by the fiber itself. */ initiateAsync(runtimeFlags2, asyncRegister) { let alreadyCalled = false; const callback = (effect) => { if (!alreadyCalled) { alreadyCalled = true; this.tell(resume(effect)); } }; if (interruptible(runtimeFlags2)) { this._asyncInterruptor = callback; } try { asyncRegister(callback); } catch (e) { callback(failCause(die(e))); } } pushStack(cont) { this._stack.push(cont); if (cont._op === "OnStep") { this._steps.push({ refs: this.getFiberRefs(), flags: this.currentRuntimeFlags }); } } popStack() { const item = this._stack.pop(); if (item) { if (item._op === "OnStep") { this._steps.pop(); } return item; } return; } getNextSuccessCont() { let frame = this.popStack(); while (frame) { if (frame._op !== OP_ON_FAILURE) { return frame; } frame = this.popStack(); } } getNextFailCont() { let frame = this.popStack(); while (frame) { if (frame._op !== OP_ON_SUCCESS && frame._op !== OP_WHILE && frame._op !== OP_ITERATOR) { return frame; } frame = this.popStack(); } } [OP_TAG](op) { return sync(() => unsafeGet3(this.currentContext, op)); } ["Left"](op) { return fail2(op.left); } ["None"](_) { return fail2(new NoSuchElementException()); } ["Right"](op) { return exitSucceed(op.right); } ["Some"](op) { return exitSucceed(op.value); } ["Micro"](op) { return unsafeAsync((microResume) => { let resume2 = microResume; const fiber = runFork(provideContext2(op, this.currentContext)); fiber.addObserver((exit3) => { if (exit3._tag === "Success") { return resume2(exitSucceed(exit3.value)); } switch (exit3.cause._tag) { case "Interrupt": { return resume2(exitFailCause(interrupt(none4))); } case "Fail": { return resume2(fail2(exit3.cause.error)); } case "Die": { return resume2(die2(exit3.cause.defect)); } } }); return unsafeAsync((abortResume) => { resume2 = (_) => { abortResume(void_); }; fiber.unsafeInterrupt(); }); }); } [OP_SYNC](op) { const value3 = internalCall(() => op.effect_instruction_i0()); const cont = this.getNextSuccessCont(); if (cont !== void 0) { if (!(cont._op in contOpSuccess)) { absurd(cont); } return contOpSuccess[cont._op](this, cont, value3); } else { yieldedOpChannel.currentOp = exitSucceed(value3); return YieldedOp; } } [OP_SUCCESS](op) { const oldCur = op; const cont = this.getNextSuccessCont(); if (cont !== void 0) { if (!(cont._op in contOpSuccess)) { absurd(cont); } return contOpSuccess[cont._op](this, cont, oldCur.effect_instruction_i0); } else { yieldedOpChannel.currentOp = oldCur; return YieldedOp; } } [OP_FAILURE](op) { const cause = op.effect_instruction_i0; const cont = this.getNextFailCont(); if (cont !== void 0) { switch (cont._op) { case OP_ON_FAILURE: case OP_ON_SUCCESS_AND_FAILURE: { if (!(interruptible(this.currentRuntimeFlags) && this.isInterrupted())) { return internalCall(() => cont.effect_instruction_i1(cause)); } else { return exitFailCause(stripFailures(cause)); } } case "OnStep": { if (!(interruptible(this.currentRuntimeFlags) && this.isInterrupted())) { return exitSucceed(exitFailCause(cause)); } else { return exitFailCause(stripFailures(cause)); } } case OP_REVERT_FLAGS: { this.patchRuntimeFlags(this.currentRuntimeFlags, cont.patch); if (interruptible(this.currentRuntimeFlags) && this.isInterrupted()) { return exitFailCause(sequential(cause, this.getInterruptedCause())); } else { return exitFailCause(cause); } } default: { absurd(cont); } } } else { yieldedOpChannel.currentOp = exitFailCause(cause); return YieldedOp; } } [OP_WITH_RUNTIME](op) { return internalCall(() => op.effect_instruction_i0(this, running2(this.currentRuntimeFlags))); } ["Blocked"](op) { const refs = this.getFiberRefs(); const flags = this.currentRuntimeFlags; if (this._steps.length > 0) { const frames = []; const snap = this._steps[this._steps.length - 1]; let frame = this.popStack(); while (frame && frame._op !== "OnStep") { frames.push(frame); frame = this.popStack(); } this.setFiberRefs(snap.refs); this.currentRuntimeFlags = snap.flags; const patchRefs = diff6(snap.refs, refs); const patchFlags = diff4(snap.flags, flags); return exitSucceed(blocked(op.effect_instruction_i0, withFiberRuntime((newFiber) => { while (frames.length > 0) { newFiber.pushStack(frames.pop()); } newFiber.setFiberRefs(patch7(newFiber.id(), newFiber.getFiberRefs())(patchRefs)); newFiber.currentRuntimeFlags = patch4(patchFlags)(newFiber.currentRuntimeFlags); return op.effect_instruction_i1; }))); } return uninterruptibleMask((restore) => flatMap7(forkDaemon(runRequestBlock(op.effect_instruction_i0)), () => restore(op.effect_instruction_i1))); } ["RunBlocked"](op) { return runBlockedRequests(op.effect_instruction_i0); } [OP_UPDATE_RUNTIME_FLAGS](op) { const updateFlags = op.effect_instruction_i0; const oldRuntimeFlags = this.currentRuntimeFlags; const newRuntimeFlags = patch4(oldRuntimeFlags, updateFlags); if (interruptible(newRuntimeFlags) && this.isInterrupted()) { return exitFailCause(this.getInterruptedCause()); } else { this.patchRuntimeFlags(this.currentRuntimeFlags, updateFlags); if (op.effect_instruction_i1) { const revertFlags = diff4(newRuntimeFlags, oldRuntimeFlags); this.pushStack(new RevertFlags(revertFlags, op)); return internalCall(() => op.effect_instruction_i1(oldRuntimeFlags)); } else { return exitVoid; } } } [OP_ON_SUCCESS](op) { this.pushStack(op); return op.effect_instruction_i0; } ["OnStep"](op) { this.pushStack(op); return op.effect_instruction_i0; } [OP_ON_FAILURE](op) { this.pushStack(op); return op.effect_instruction_i0; } [OP_ON_SUCCESS_AND_FAILURE](op) { this.pushStack(op); return op.effect_instruction_i0; } [OP_ASYNC](op) { this._asyncBlockingOn = op.effect_instruction_i1; this.initiateAsync(this.currentRuntimeFlags, op.effect_instruction_i0); yieldedOpChannel.currentOp = op; return YieldedOp; } [OP_YIELD](op) { this._isYielding = false; yieldedOpChannel.currentOp = op; return YieldedOp; } [OP_WHILE](op) { const check2 = op.effect_instruction_i0; const body = op.effect_instruction_i1; if (check2()) { this.pushStack(op); return body(); } else { return exitVoid; } } [OP_ITERATOR](op) { return contOpSuccess[OP_ITERATOR](this, op, void 0); } [OP_COMMIT](op) { return internalCall(() => op.commit()); } /** * The main run-loop for evaluating effects. * * **NOTE**: This method must be invoked by the fiber itself. */ runLoop(effect0) { let cur = effect0; this.currentOpCount = 0; while (true) { if ((this.currentRuntimeFlags & OpSupervision) !== 0) { this.currentSupervisor.onEffect(this, cur); } if (this._queue.length > 0) { cur = this.drainQueueWhileRunning(this.currentRuntimeFlags, cur); } if (!this._isYielding) { this.currentOpCount += 1; const shouldYield = this.currentScheduler.shouldYield(this); if (shouldYield !== false) { this._isYielding = true; this.currentOpCount = 0; const oldCur = cur; cur = flatMap7(yieldNow({ priority: shouldYield }), () => oldCur); } } try { cur = this.currentTracer.context(() => { if (_version !== cur[EffectTypeId2]._V) { return dieMessage(`Cannot execute an Effect versioned ${cur[EffectTypeId2]._V} with a Runtime of version ${getCurrentVersion()}`); } return this[cur._op](cur); }, this); if (cur === YieldedOp) { const op = yieldedOpChannel.currentOp; if (op._op === OP_YIELD || op._op === OP_ASYNC) { return YieldedOp; } yieldedOpChannel.currentOp = null; return op._op === OP_SUCCESS || op._op === OP_FAILURE ? op : exitFailCause(die(op)); } } catch (e) { if (cur !== YieldedOp && !hasProperty(cur, "_op") || !(cur._op in this)) { cur = dieMessage(`Not a valid effect: ${toStringUnknown(cur)}`); } else if (isInterruptedException(e)) { cur = exitFailCause(sequential(die(e), interrupt(none4))); } else { cur = die2(e); } } } } run = () => { this.drainQueueOnCurrentThread(); }; }; var currentMinimumLogLevel = /* @__PURE__ */ globalValue("effect/FiberRef/currentMinimumLogLevel", () => fiberRefUnsafeMake(fromLiteral("Info"))); var loggerWithConsoleLog = (self) => makeLogger((opts) => { const services = getOrDefault2(opts.context, currentServices); get3(services, consoleTag).unsafe.log(self.log(opts)); }); var defaultLogger = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Logger/defaultLogger"), () => loggerWithConsoleLog(stringLogger)); var tracerLogger = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Logger/tracerLogger"), () => makeLogger(({ annotations: annotations3, cause, context: context3, fiberId: fiberId2, logLevel: logLevel2, message }) => { const span2 = getOption2(getOrDefault(context3, currentContext), spanTag); if (span2._tag === "None" || span2.value._tag === "ExternalSpan") { return; } const clockService = unsafeGet3(getOrDefault(context3, currentServices), clockTag); const attributes = {}; for (const [key, value3] of annotations3) { attributes[key] = value3; } attributes["effect.fiberId"] = threadName2(fiberId2); attributes["effect.logLevel"] = logLevel2.label; if (cause !== null && cause._tag !== "Empty") { attributes["effect.cause"] = pretty(cause, { renderErrorCause: true }); } span2.value.event(toStringUnknown(Array.isArray(message) ? message[0] : message), clockService.unsafeCurrentTimeNanos(), attributes); })); var currentLoggers = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/FiberRef/currentLoggers"), () => fiberRefUnsafeMakeHashSet(make11(defaultLogger, tracerLogger))); var forEach6 = /* @__PURE__ */ dual((args2) => isIterable(args2[0]), (self, f, options) => withFiberRuntime((r) => { const isRequestBatchingEnabled = options?.batching === true || options?.batching === "inherit" && r.getFiberRef(currentRequestBatching); if (options?.discard) { return match8(options.concurrency, () => finalizersMaskInternal(sequential3, options?.concurrentFinalizers)((restore) => isRequestBatchingEnabled ? forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), true, false, 1) : forEachSequentialDiscard(self, (a, i) => restore(f(a, i)))), () => finalizersMaskInternal(parallel3, options?.concurrentFinalizers)((restore) => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false)), (n) => finalizersMaskInternal(parallelN2(n), options?.concurrentFinalizers)((restore) => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false, n))); } return match8(options?.concurrency, () => finalizersMaskInternal(sequential3, options?.concurrentFinalizers)((restore) => isRequestBatchingEnabled ? forEachParN(self, 1, (a, i) => restore(f(a, i)), true) : forEachSequential(self, (a, i) => restore(f(a, i)))), () => finalizersMaskInternal(parallel3, options?.concurrentFinalizers)((restore) => forEachParUnbounded(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)), (n) => finalizersMaskInternal(parallelN2(n), options?.concurrentFinalizers)((restore) => forEachParN(self, n, (a, i) => restore(f(a, i)), isRequestBatchingEnabled))); })); var forEachParUnbounded = (self, f, batching) => suspend(() => { const as4 = fromIterable(self); const array6 = new Array(as4.length); const fn = (a, i) => flatMap7(f(a, i), (b) => sync(() => array6[i] = b)); return zipRight(forEachConcurrentDiscard(as4, fn, batching, false), succeed(array6)); }); var forEachConcurrentDiscard = (self, f, batching, processAll, n) => uninterruptibleMask((restore) => transplant((graft) => withFiberRuntime((parent) => { let todos = Array.from(self).reverse(); let target = todos.length; if (target === 0) { return void_; } let counter6 = 0; let interrupted = false; const fibersCount = n ? Math.min(todos.length, n) : todos.length; const fibers = /* @__PURE__ */ new Set(); const results = new Array(); const interruptAll = () => fibers.forEach((fiber) => { fiber.currentScheduler.scheduleTask(() => { fiber.unsafeInterruptAsFork(parent.id()); }, 0); }); const startOrder = new Array(); const joinOrder = new Array(); const residual = new Array(); const collectExits = () => { const exits = results.filter(({ exit: exit3 }) => exit3._tag === "Failure").sort((a, b) => a.index < b.index ? -1 : a.index === b.index ? 0 : 1).map(({ exit: exit3 }) => exit3); if (exits.length === 0) { exits.push(exitVoid); } return exits; }; const runFiber = (eff, interruptImmediately = false) => { const runnable = uninterruptible(graft(eff)); const fiber = unsafeForkUnstarted(runnable, parent, parent.currentRuntimeFlags, globalScope); parent.currentScheduler.scheduleTask(() => { if (interruptImmediately) { fiber.unsafeInterruptAsFork(parent.id()); } fiber.resume(runnable); }, 0); return fiber; }; const onInterruptSignal = () => { if (!processAll) { target -= todos.length; todos = []; } interrupted = true; interruptAll(); }; const stepOrExit = batching ? step2 : exit; const processingFiber = runFiber(async_((resume2) => { const pushResult = (res, index) => { if (res._op === "Blocked") { residual.push(res); } else { results.push({ index, exit: res }); if (res._op === "Failure" && !interrupted) { onInterruptSignal(); } } }; const next = () => { if (todos.length > 0) { const a = todos.pop(); let index = counter6++; const returnNextElement = () => { const a2 = todos.pop(); index = counter6++; return flatMap7(yieldNow(), () => flatMap7(stepOrExit(restore(f(a2, index))), onRes)); }; const onRes = (res) => { if (todos.length > 0) { pushResult(res, index); if (todos.length > 0) { return returnNextElement(); } } return succeed(res); }; const todo = flatMap7(stepOrExit(restore(f(a, index))), onRes); const fiber = runFiber(todo); startOrder.push(fiber); fibers.add(fiber); if (interrupted) { fiber.currentScheduler.scheduleTask(() => { fiber.unsafeInterruptAsFork(parent.id()); }, 0); } fiber.addObserver((wrapped) => { let exit3; if (wrapped._op === "Failure") { exit3 = wrapped; } else { exit3 = wrapped.effect_instruction_i0; } joinOrder.push(fiber); fibers.delete(fiber); pushResult(exit3, index); if (results.length === target) { resume2(succeed(getOrElse2(exitCollectAll(collectExits(), { parallel: true }), () => exitVoid))); } else if (residual.length + results.length === target) { const requests = residual.map((blocked2) => blocked2.effect_instruction_i0).reduce(par); resume2(succeed(blocked(requests, forEachConcurrentDiscard([getOrElse2(exitCollectAll(collectExits(), { parallel: true }), () => exitVoid), ...residual.map((blocked2) => blocked2.effect_instruction_i1)], (i) => i, batching, true, n)))); } else { next(); } }); } }; for (let i = 0; i < fibersCount; i++) { next(); } })); return asVoid(onExit(flatten4(restore(join2(processingFiber))), exitMatch({ onFailure: () => { onInterruptSignal(); const target2 = residual.length + 1; const concurrency = Math.min(typeof n === "number" ? n : residual.length, residual.length); const toPop = Array.from(residual); return async_((cb) => { const exits = []; let count = 0; let index = 0; const check2 = (index2, hitNext) => (exit3) => { exits[index2] = exit3; count++; if (count === target2) { cb(getOrThrow2(exitCollectAll(exits, { parallel: true }))); } if (toPop.length > 0 && hitNext) { next(); } }; const next = () => { runFiber(toPop.pop(), true).addObserver(check2(index, true)); index++; }; processingFiber.addObserver(check2(index, false)); index++; for (let i = 0; i < concurrency; i++) { next(); } }); }, onSuccess: () => forEachSequential(joinOrder, (f2) => f2.inheritAll) }))); }))); var forEachParN = (self, n, f, batching) => suspend(() => { const as4 = fromIterable(self); const array6 = new Array(as4.length); const fn = (a, i) => map9(f(a, i), (b) => array6[i] = b); return zipRight(forEachConcurrentDiscard(as4, fn, batching, false, n), succeed(array6)); }); var forkDaemon = (self) => forkWithScopeOverride(self, globalScope); var unsafeFork2 = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => { const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope); childFiber.resume(effect); return childFiber; }; var unsafeForkUnstarted = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => { const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope); return childFiber; }; var unsafeMakeChildFiber = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => { const childId = unsafeMake2(); const parentFiberRefs = parentFiber.getFiberRefs(); const childFiberRefs = forkAs(parentFiberRefs, childId); const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags); const childContext = getOrDefault(childFiberRefs, currentContext); const supervisor = childFiber.currentSupervisor; supervisor.onStart(childContext, effect, some2(parentFiber), childFiber); childFiber.addObserver((exit3) => supervisor.onEnd(exit3, childFiber)); const parentScope = overrideScope !== null ? overrideScope : pipe(parentFiber.getFiberRef(currentForkScopeOverride), getOrElse2(() => parentFiber.scope())); parentScope.add(parentRuntimeFlags, childFiber); return childFiber; }; var forkWithScopeOverride = (self, scopeOverride) => withFiberRuntime((parentFiber, parentStatus) => succeed(unsafeFork2(self, parentFiber, parentStatus.runtimeFlags, scopeOverride))); var parallelFinalizers = (self) => contextWithEffect((context3) => match2(getOption2(context3, scopeTag), { onNone: () => self, onSome: (scope2) => { switch (scope2.strategy._tag) { case "Parallel": return self; case "Sequential": case "ParallelN": return flatMap7(scopeFork(scope2, parallel3), (inner) => scopeExtend(self, inner)); } } })); var parallelNFinalizers = (parallelism) => (self) => contextWithEffect((context3) => match2(getOption2(context3, scopeTag), { onNone: () => self, onSome: (scope2) => { if (scope2.strategy._tag === "ParallelN" && scope2.strategy.parallelism === parallelism) { return self; } return flatMap7(scopeFork(scope2, parallelN2(parallelism)), (inner) => scopeExtend(self, inner)); } })); var finalizersMaskInternal = (strategy, concurrentFinalizers) => (self) => contextWithEffect((context3) => match2(getOption2(context3, scopeTag), { onNone: () => self(identity), onSome: (scope2) => { if (concurrentFinalizers === true) { const patch9 = strategy._tag === "Parallel" ? parallelFinalizers : strategy._tag === "Sequential" ? sequentialFinalizers : parallelNFinalizers(strategy.parallelism); switch (scope2.strategy._tag) { case "Parallel": return patch9(self(parallelFinalizers)); case "Sequential": return patch9(self(sequentialFinalizers)); case "ParallelN": return patch9(self(parallelNFinalizers(scope2.strategy.parallelism))); } } else { return self(identity); } } })); var sequentialFinalizers = (self) => contextWithEffect((context3) => match2(getOption2(context3, scopeTag), { onNone: () => self, onSome: (scope2) => { switch (scope2.strategy._tag) { case "Sequential": return self; case "Parallel": case "ParallelN": return flatMap7(scopeFork(scope2, sequential3), (inner) => scopeExtend(self, inner)); } } })); var scopeTag = /* @__PURE__ */ GenericTag("effect/Scope"); var scopeUnsafeAddFinalizer = (scope2, fin) => { if (scope2.state._tag === "Open") { scope2.state.finalizers.add(fin); } }; var ScopeImplProto = { [ScopeTypeId]: ScopeTypeId, [CloseableScopeTypeId]: CloseableScopeTypeId, pipe() { return pipeArguments(this, arguments); }, fork(strategy) { return sync(() => { const newScope = scopeUnsafeMake(strategy); if (this.state._tag === "Closed") { newScope.state = this.state; return newScope; } const fin = (exit3) => newScope.close(exit3); this.state.finalizers.add(fin); scopeUnsafeAddFinalizer(newScope, (_) => sync(() => { if (this.state._tag === "Open") { this.state.finalizers.delete(fin); } })); return newScope; }); }, close(exit3) { return suspend(() => { if (this.state._tag === "Closed") { return void_; } const finalizers = Array.from(this.state.finalizers.values()).reverse(); this.state = { _tag: "Closed", exit: exit3 }; if (finalizers.length === 0) { return void_; } return isSequential(this.strategy) ? pipe(forEachSequential(finalizers, (fin) => exit(fin(exit3))), flatMap7((results) => pipe(exitCollectAll(results), map2(exitAsVoid), getOrElse2(() => exitVoid)))) : isParallel(this.strategy) ? pipe(forEachParUnbounded(finalizers, (fin) => exit(fin(exit3)), false), flatMap7((results) => pipe(exitCollectAll(results, { parallel: true }), map2(exitAsVoid), getOrElse2(() => exitVoid)))) : pipe(forEachParN(finalizers, this.strategy.parallelism, (fin) => exit(fin(exit3)), false), flatMap7((results) => pipe(exitCollectAll(results, { parallel: true }), map2(exitAsVoid), getOrElse2(() => exitVoid)))); }); }, addFinalizer(fin) { return suspend(() => { if (this.state._tag === "Closed") { return fin(this.state.exit); } this.state.finalizers.add(fin); return void_; }); } }; var scopeUnsafeMake = (strategy = sequential2) => { const scope2 = Object.create(ScopeImplProto); scope2.strategy = strategy; scope2.state = { _tag: "Open", finalizers: /* @__PURE__ */ new Set() }; return scope2; }; var scopeExtend = /* @__PURE__ */ dual(2, (effect, scope2) => mapInputContext( effect, // @ts-expect-error merge3(make6(scopeTag, scope2)) )); var fiberRefUnsafeMakeSupervisor = (initial) => fiberRefUnsafeMakePatch(initial, { differ: differ2, fork: empty22 }); var currentRuntimeFlags = /* @__PURE__ */ fiberRefUnsafeMakeRuntimeFlags(none5); var currentSupervisor = /* @__PURE__ */ fiberRefUnsafeMakeSupervisor(none7); var invokeWithInterrupt = (self, entries2, onInterrupt2) => fiberIdWith((id) => flatMap7(flatMap7(forkDaemon(interruptible2(self)), (processing) => async_((cb) => { const counts = entries2.map((_) => _.listeners.count); const checkDone = () => { if (counts.every((count) => count === 0)) { if (entries2.every((_) => { if (_.result.state.current._tag === "Pending") { return true; } else if (_.result.state.current._tag === "Done" && exitIsExit(_.result.state.current.effect) && _.result.state.current.effect._tag === "Failure" && isInterrupted(_.result.state.current.effect.cause)) { return true; } else { return false; } })) { cleanup.forEach((f) => f()); onInterrupt2?.(); cb(interruptFiber(processing)); } } }; processing.addObserver((exit3) => { cleanup.forEach((f) => f()); cb(exit3); }); const cleanup = entries2.map((r, i) => { const observer = (count) => { counts[i] = count; checkDone(); }; r.listeners.addObserver(observer); return () => r.listeners.removeObserver(observer); }); checkDone(); return sync(() => { cleanup.forEach((f) => f()); }); })), () => suspend(() => { const residual = entries2.flatMap((entry) => { if (!entry.state.completed) { return [entry]; } return []; }); return forEachSequentialDiscard(residual, (entry) => complete(entry.request, exitInterrupt(id))); }))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Cause.js var empty24 = empty14; var fail3 = fail; var die3 = die; var interrupt2 = interrupt; var parallel4 = parallel; var sequential4 = sequential; var isCause2 = isCause; var isFailType2 = isFailType; var IllegalArgumentException2 = IllegalArgumentException; var pretty2 = pretty; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Scope.js var close = scopeClose; var fork = scopeFork; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Data.js var struct2 = struct; var array4 = (as4) => unsafeArray(as4.slice(0)); var unsafeArray = (as4) => Object.setPrototypeOf(as4, ArrayProto); var Class4 = Structural; var Error3 = /* @__PURE__ */ function() { const plainArgsSymbol = /* @__PURE__ */ Symbol.for("effect/Data/Error/plainArgs"); return class Base extends YieldableError { constructor(args2) { super(args2?.message, args2?.cause ? { cause: args2.cause } : void 0); if (args2) { Object.assign(this, args2); Object.defineProperty(this, plainArgsSymbol, { value: args2, enumerable: false }); } } toJSON() { return { ...this[plainArgsSymbol], ...this }; } }; }(); var TaggedError = (tag2) => { class Base3 extends Error3 { _tag = tag2; } ; Base3.prototype.name = tag2; return Base3; }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/dateTime.js var TypeId14 = /* @__PURE__ */ Symbol.for("effect/DateTime"); var TimeZoneTypeId = /* @__PURE__ */ Symbol.for("effect/DateTime/TimeZone"); var Proto = { [TypeId14]: TypeId14, pipe() { return pipeArguments(this, arguments); }, [NodeInspectSymbol]() { return this.toString(); }, toJSON() { return toDateUtc(this).toJSON(); } }; var ProtoUtc = { ...Proto, _tag: "Utc", [symbol]() { return cached(this, number2(this.epochMillis)); }, [symbol2](that) { return isDateTime(that) && that._tag === "Utc" && this.epochMillis === that.epochMillis; }, toString() { return `DateTime.Utc(${toDateUtc(this).toJSON()})`; } }; var ProtoZoned = { ...Proto, _tag: "Zoned", [symbol]() { return pipe(number2(this.epochMillis), combine(hash(this.zone)), cached(this)); }, [symbol2](that) { return isDateTime(that) && that._tag === "Zoned" && this.epochMillis === that.epochMillis && equals(this.zone, that.zone); }, toString() { return `DateTime.Zoned(${formatIsoZoned(this)})`; } }; var ProtoTimeZone = { [TimeZoneTypeId]: TimeZoneTypeId, [NodeInspectSymbol]() { return this.toString(); } }; var ProtoTimeZoneNamed = { ...ProtoTimeZone, _tag: "Named", [symbol]() { return cached(this, string(`Named:${this.id}`)); }, [symbol2](that) { return isTimeZone(that) && that._tag === "Named" && this.id === that.id; }, toString() { return `TimeZone.Named(${this.id})`; }, toJSON() { return { _id: "TimeZone", _tag: "Named", id: this.id }; } }; var ProtoTimeZoneOffset = { ...ProtoTimeZone, _tag: "Offset", [symbol]() { return cached(this, string(`Offset:${this.offset}`)); }, [symbol2](that) { return isTimeZone(that) && that._tag === "Offset" && this.offset === that.offset; }, toString() { return `TimeZone.Offset(${offsetToString(this.offset)})`; }, toJSON() { return { _id: "TimeZone", _tag: "Offset", offset: this.offset }; } }; var makeZonedProto = (epochMillis, zone, partsUtc) => { const self = Object.create(ProtoZoned); self.epochMillis = epochMillis; self.zone = zone; Object.defineProperty(self, "partsUtc", { value: partsUtc, enumerable: false, writable: true }); Object.defineProperty(self, "adjustedEpochMillis", { value: void 0, enumerable: false, writable: true }); Object.defineProperty(self, "partsAdjusted", { value: void 0, enumerable: false, writable: true }); return self; }; var isDateTime = (u) => hasProperty(u, TypeId14); var isTimeZone = (u) => hasProperty(u, TimeZoneTypeId); var isTimeZoneOffset = (u) => isTimeZone(u) && u._tag === "Offset"; var isTimeZoneNamed = (u) => isTimeZone(u) && u._tag === "Named"; var isUtc = (self) => self._tag === "Utc"; var isZoned = (self) => self._tag === "Zoned"; var Equivalence3 = /* @__PURE__ */ make((a, b) => a.epochMillis === b.epochMillis); var makeUtc = (epochMillis) => { const self = Object.create(ProtoUtc); self.epochMillis = epochMillis; Object.defineProperty(self, "partsUtc", { value: void 0, enumerable: false, writable: true }); return self; }; var unsafeFromDate = (date3) => { const epochMillis = date3.getTime(); if (Number.isNaN(epochMillis)) { throw new IllegalArgumentException2("Invalid date"); } return makeUtc(epochMillis); }; var unsafeMake6 = (input) => { if (isDateTime(input)) { return input; } else if (input instanceof Date) { return unsafeFromDate(input); } else if (typeof input === "object") { const date3 = /* @__PURE__ */ new Date(0); setPartsDate(date3, input); return unsafeFromDate(date3); } return unsafeFromDate(new Date(input)); }; var minEpochMillis = -864e13 + 12 * 60 * 60 * 1e3; var maxEpochMillis = 864e13 - 14 * 60 * 60 * 1e3; var unsafeMakeZoned = (input, options) => { if (options?.timeZone === void 0 && isDateTime(input) && isZoned(input)) { return input; } const self = unsafeMake6(input); if (self.epochMillis < minEpochMillis || self.epochMillis > maxEpochMillis) { throw new IllegalArgumentException2(`Epoch millis out of range: ${self.epochMillis}`); } let zone; if (options?.timeZone === void 0) { const offset = new Date(self.epochMillis).getTimezoneOffset() * -60 * 1e3; zone = zoneMakeOffset(offset); } else if (isTimeZone(options?.timeZone)) { zone = options.timeZone; } else if (typeof options?.timeZone === "number") { zone = zoneMakeOffset(options.timeZone); } else { const parsedZone = zoneFromString(options.timeZone); if (isNone2(parsedZone)) { throw new IllegalArgumentException2(`Invalid time zone: ${options.timeZone}`); } zone = parsedZone.value; } if (options?.adjustForTimeZone !== true) { return makeZonedProto(self.epochMillis, zone, self.partsUtc); } return makeZonedFromAdjusted(self.epochMillis, zone); }; var makeZoned = /* @__PURE__ */ liftThrowable(unsafeMakeZoned); var zonedStringRegex = /^(.{17,35})\[(.+)\]$/; var makeZonedFromString = (input) => { const match10 = zonedStringRegex.exec(input); if (match10 === null) { const offset = parseOffset(input); return offset !== null ? makeZoned(input, { timeZone: offset }) : none2(); } const [, isoString, timeZone] = match10; return makeZoned(isoString, { timeZone }); }; var validZoneCache = /* @__PURE__ */ globalValue("effect/DateTime/validZoneCache", () => /* @__PURE__ */ new Map()); var formatOptions = { day: "numeric", month: "numeric", year: "numeric", hour: "numeric", minute: "numeric", second: "numeric", timeZoneName: "longOffset", fractionalSecondDigits: 3, hourCycle: "h23" }; var zoneMakeIntl = (format7) => { const zoneId = format7.resolvedOptions().timeZone; if (validZoneCache.has(zoneId)) { return validZoneCache.get(zoneId); } const zone = Object.create(ProtoTimeZoneNamed); zone.id = zoneId; zone.format = format7; validZoneCache.set(zoneId, zone); return zone; }; var zoneUnsafeMakeNamed = (zoneId) => { if (validZoneCache.has(zoneId)) { return validZoneCache.get(zoneId); } try { return zoneMakeIntl(new Intl.DateTimeFormat("en-US", { ...formatOptions, timeZone: zoneId })); } catch (_) { throw new IllegalArgumentException2(`Invalid time zone: ${zoneId}`); } }; var zoneMakeOffset = (offset) => { const zone = Object.create(ProtoTimeZoneOffset); zone.offset = offset; return zone; }; var zoneMakeNamed = /* @__PURE__ */ liftThrowable(zoneUnsafeMakeNamed); var offsetZoneRegex = /^(?:GMT|[+-])/; var zoneFromString = (zone) => { if (offsetZoneRegex.test(zone)) { const offset = parseOffset(zone); return offset === null ? none2() : some2(zoneMakeOffset(offset)); } return zoneMakeNamed(zone); }; var zoneToString = (self) => { if (self._tag === "Offset") { return offsetToString(self.offset); } return self.id; }; var toDateUtc = (self) => new Date(self.epochMillis); var toDate = (self) => { if (self._tag === "Utc") { return new Date(self.epochMillis); } else if (self.zone._tag === "Offset") { return new Date(self.epochMillis + self.zone.offset); } else if (self.adjustedEpochMillis !== void 0) { return new Date(self.adjustedEpochMillis); } const parts2 = self.zone.format.formatToParts(self.epochMillis).filter((_) => _.type !== "literal"); const date3 = /* @__PURE__ */ new Date(0); date3.setUTCFullYear(Number(parts2[2].value), Number(parts2[0].value) - 1, Number(parts2[1].value)); date3.setUTCHours(Number(parts2[3].value), Number(parts2[4].value), Number(parts2[5].value), Number(parts2[6].value)); self.adjustedEpochMillis = date3.getTime(); return date3; }; var zonedOffset = (self) => { const date3 = toDate(self); return date3.getTime() - toEpochMillis(self); }; var offsetToString = (offset) => { const abs2 = Math.abs(offset); let hours2 = Math.floor(abs2 / (60 * 60 * 1e3)); let minutes2 = Math.round(abs2 % (60 * 60 * 1e3) / (60 * 1e3)); if (minutes2 === 60) { hours2 += 1; minutes2 = 0; } return `${offset < 0 ? "-" : "+"}${String(hours2).padStart(2, "0")}:${String(minutes2).padStart(2, "0")}`; }; var zonedOffsetIso = (self) => offsetToString(zonedOffset(self)); var toEpochMillis = (self) => self.epochMillis; var setPartsDate = (date3, parts2) => { if (parts2.year !== void 0) { date3.setUTCFullYear(parts2.year); } if (parts2.month !== void 0) { date3.setUTCMonth(parts2.month - 1); } if (parts2.day !== void 0) { date3.setUTCDate(parts2.day); } if (parts2.weekDay !== void 0) { const diff8 = parts2.weekDay - date3.getUTCDay(); date3.setUTCDate(date3.getUTCDate() + diff8); } if (parts2.hours !== void 0) { date3.setUTCHours(parts2.hours); } if (parts2.minutes !== void 0) { date3.setUTCMinutes(parts2.minutes); } if (parts2.seconds !== void 0) { date3.setUTCSeconds(parts2.seconds); } if (parts2.millis !== void 0) { date3.setUTCMilliseconds(parts2.millis); } }; var makeZonedFromAdjusted = (adjustedMillis, zone) => { const offset = zone._tag === "Offset" ? zone.offset : calculateNamedOffset(adjustedMillis, zone); return makeZonedProto(adjustedMillis - offset, zone); }; var offsetRegex = /([+-])(\d{2}):(\d{2})$/; var parseOffset = (offset) => { const match10 = offsetRegex.exec(offset); if (match10 === null) { return null; } const [, sign2, hours2, minutes2] = match10; return (sign2 === "+" ? 1 : -1) * (Number(hours2) * 60 + Number(minutes2)) * 60 * 1e3; }; var calculateNamedOffset = (adjustedMillis, zone) => { const offset = zone.format.formatToParts(adjustedMillis).find((_) => _.type === "timeZoneName")?.value ?? ""; if (offset === "GMT") { return 0; } const result = parseOffset(offset); if (result === null) { return zonedOffset(makeZonedProto(adjustedMillis, zone)); } return result; }; var formatIso = (self) => toDateUtc(self).toISOString(); var formatIsoOffset = (self) => { const date3 = toDate(self); return self._tag === "Utc" ? date3.toISOString() : `${date3.toISOString().slice(0, -1)}${zonedOffsetIso(self)}`; }; var formatIsoZoned = (self) => self.zone._tag === "Offset" ? formatIsoOffset(self) : `${formatIsoOffset(self)}[${self.zone.id}]`; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/String.js var toUpperCase = (self) => self.toUpperCase(); var toLowerCase = (self) => self.toLowerCase(); var capitalize = (self) => { if (self.length === 0) return self; return toUpperCase(self[0]) + self.slice(1); }; var uncapitalize = (self) => { if (self.length === 0) return self; return toLowerCase(self[0]) + self.slice(1); }; var isNonEmpty3 = (self) => self.length > 0; var split = /* @__PURE__ */ dual(2, (self, separator) => { const out = self.split(separator); return isNonEmptyArray(out) ? out : [self]; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/runtime.js var unsafeFork3 = (runtime4) => (self, options) => { const fiberId2 = unsafeMake2(); const fiberRefUpdates = [[currentContext, [[fiberId2, runtime4.context]]]]; if (options?.scheduler) { fiberRefUpdates.push([currentScheduler, [[fiberId2, options.scheduler]]]); } let fiberRefs2 = updateManyAs2(runtime4.fiberRefs, { entries: fiberRefUpdates, forkAs: fiberId2 }); if (options?.updateRefs) { fiberRefs2 = options.updateRefs(fiberRefs2, fiberId2); } const fiberRuntime = new FiberRuntime(fiberId2, fiberRefs2, runtime4.runtimeFlags); let effect = self; if (options?.scope) { effect = flatMap7(fork(options.scope, sequential2), (closeableScope) => zipRight(scopeAddFinalizer(closeableScope, fiberIdWith((id) => equals(id, fiberRuntime.id()) ? void_ : interruptAsFiber(fiberRuntime, id))), onExit(self, (exit3) => close(closeableScope, exit3)))); } const supervisor = fiberRuntime.currentSupervisor; if (supervisor !== none7) { supervisor.onStart(runtime4.context, effect, none2(), fiberRuntime); fiberRuntime.addObserver((exit3) => supervisor.onEnd(exit3, fiberRuntime)); } globalScope.add(runtime4.runtimeFlags, fiberRuntime); if (options?.immediate === false) { fiberRuntime.resume(effect); } else { fiberRuntime.start(effect); } return fiberRuntime; }; var unsafeRunSync = (runtime4) => (effect) => { const result = unsafeRunSyncExit(runtime4)(effect); if (result._tag === "Failure") { throw fiberFailure(result.effect_instruction_i0); } else { return result.effect_instruction_i0; } }; var AsyncFiberExceptionImpl = class extends Error { fiber; _tag = "AsyncFiberException"; constructor(fiber) { super(`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`); this.fiber = fiber; this.name = this._tag; this.stack = this.message; } }; var asyncFiberException = (fiber) => { const limit = Error.stackTraceLimit; Error.stackTraceLimit = 0; const error = new AsyncFiberExceptionImpl(fiber); Error.stackTraceLimit = limit; return error; }; var FiberFailureId = /* @__PURE__ */ Symbol.for("effect/Runtime/FiberFailure"); var FiberFailureCauseId = /* @__PURE__ */ Symbol.for("effect/Runtime/FiberFailure/Cause"); var FiberFailureImpl = class extends Error { [FiberFailureId]; [FiberFailureCauseId]; constructor(cause) { const head4 = prettyErrors(cause)[0]; super(head4?.message || "An error has occurred"); this[FiberFailureId] = FiberFailureId; this[FiberFailureCauseId] = cause; this.name = head4 ? `(FiberFailure) ${head4.name}` : "FiberFailure"; if (head4?.stack) { this.stack = head4.stack; } } toJSON() { return { _id: "FiberFailure", cause: this[FiberFailureCauseId].toJSON() }; } toString() { return "(FiberFailure) " + pretty(this[FiberFailureCauseId], { renderErrorCause: true }); } [NodeInspectSymbol]() { return this.toString(); } }; var fiberFailure = (cause) => { const limit = Error.stackTraceLimit; Error.stackTraceLimit = 0; const error = new FiberFailureImpl(cause); Error.stackTraceLimit = limit; return error; }; var fastPath = (effect) => { const op = effect; switch (op._op) { case "Failure": case "Success": { return op; } case "Left": { return exitFail(op.left); } case "Right": { return exitSucceed(op.right); } case "Some": { return exitSucceed(op.value); } case "None": { return exitFail(NoSuchElementException()); } } }; var unsafeRunSyncExit = (runtime4) => (effect) => { const op = fastPath(effect); if (op) { return op; } const scheduler2 = new SyncScheduler(); const fiberRuntime = unsafeFork3(runtime4)(effect, { scheduler: scheduler2 }); scheduler2.flush(); const result = fiberRuntime.unsafePoll(); if (result) { return result; } return exitDie(capture(asyncFiberException(fiberRuntime), currentSpanFromFiber(fiberRuntime))); }; var unsafeRunPromise = (runtime4) => (effect, options) => unsafeRunPromiseExit(runtime4)(effect, options).then((result) => { switch (result._tag) { case OP_SUCCESS: { return result.effect_instruction_i0; } case OP_FAILURE: { throw fiberFailure(result.effect_instruction_i0); } } }); var unsafeRunPromiseExit = (runtime4) => (effect, options) => new Promise((resolve) => { const op = fastPath(effect); if (op) { resolve(op); } const fiber = unsafeFork3(runtime4)(effect); fiber.addObserver((exit3) => { resolve(exit3); }); if (options?.signal !== void 0) { if (options.signal.aborted) { fiber.unsafeInterruptAsFork(fiber.id()); } else { options.signal.addEventListener("abort", () => { fiber.unsafeInterruptAsFork(fiber.id()); }, { once: true }); } } }); var RuntimeImpl = class { context; runtimeFlags; fiberRefs; constructor(context3, runtimeFlags2, fiberRefs2) { this.context = context3; this.runtimeFlags = runtimeFlags2; this.fiberRefs = fiberRefs2; } pipe() { return pipeArguments(this, arguments); } }; var make30 = (options) => new RuntimeImpl(options.context, options.runtimeFlags, options.fiberRefs); var defaultRuntimeFlags = /* @__PURE__ */ make17(Interruption, CooperativeYielding, RuntimeMetrics); var defaultRuntime = /* @__PURE__ */ make30({ context: /* @__PURE__ */ empty3(), runtimeFlags: defaultRuntimeFlags, fiberRefs: /* @__PURE__ */ empty18() }); var unsafeForkEffect = /* @__PURE__ */ unsafeFork3(defaultRuntime); var unsafeRunPromiseEffect = /* @__PURE__ */ unsafeRunPromise(defaultRuntime); var unsafeRunSyncEffect = /* @__PURE__ */ unsafeRunSync(defaultRuntime); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Request.js var Class5 = Class3; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Effect.js var isEffect2 = isEffect; var forEach7 = forEach6; var suspend3 = suspend; var _void = void_; var catchAll2 = catchAll; var map11 = map9; var mapBoth3 = mapBoth2; var mapError2 = mapError; var either3 = either2; var flatMap10 = flatMap7; var runFork2 = unsafeForkEffect; var runPromise = unsafeRunPromiseEffect; var runSync = unsafeRunSyncEffect; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/ConfigError.js var InvalidData2 = InvalidData; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/redacted.js var RedactedSymbolKey = "effect/Redacted"; var redactedRegistry = /* @__PURE__ */ globalValue("effect/Redacted/redactedRegistry", () => /* @__PURE__ */ new WeakMap()); var RedactedTypeId = /* @__PURE__ */ Symbol.for(RedactedSymbolKey); var proto3 = { [RedactedTypeId]: { _A: (_) => _ }, pipe() { return pipeArguments(this, arguments); }, toString() { return ""; }, toJSON() { return ""; }, [NodeInspectSymbol]() { return ""; }, [symbol]() { return pipe(hash(RedactedSymbolKey), combine(hash(redactedRegistry.get(this))), cached(this)); }, [symbol2](that) { return isRedacted(that) && equals(redactedRegistry.get(this), redactedRegistry.get(that)); } }; var isRedacted = (u) => hasProperty(u, RedactedTypeId); var make31 = (value3) => { const redacted2 = Object.create(proto3); redactedRegistry.set(redacted2, value3); return redacted2; }; var value = (self) => { if (redactedRegistry.has(self)) { return redactedRegistry.get(self); } else { throw new Error("Unable to get redacted value"); } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/config.js var ConfigSymbolKey = "effect/Config"; var ConfigTypeId = /* @__PURE__ */ Symbol.for(ConfigSymbolKey); var configVariance = { /* c8 ignore next */ _A: (_) => _ }; var proto4 = { ...CommitPrototype, [ConfigTypeId]: configVariance, commit() { return config(this); } }; var mapOrFail = /* @__PURE__ */ dual(2, (self, f) => { const mapOrFail3 = Object.create(proto4); mapOrFail3._tag = OP_MAP_OR_FAIL; mapOrFail3.original = self; mapOrFail3.mapOrFail = f; return mapOrFail3; }); var nested2 = /* @__PURE__ */ dual(2, (self, name) => { const nested3 = Object.create(proto4); nested3._tag = OP_NESTED; nested3.name = name; nested3.config = self; return nested3; }); var primitive = (description, parse2) => { const primitive2 = Object.create(proto4); primitive2._tag = OP_PRIMITIVE; primitive2.description = description; primitive2.parse = parse2; return primitive2; }; var string3 = (name) => { const config2 = primitive("a text property", right2); return name === void 0 ? config2 : nested2(config2, name); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Config.js var mapOrFail2 = mapOrFail; var string4 = string3; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/DateTime.js var isDateTime2 = isDateTime; var isTimeZoneOffset2 = isTimeZoneOffset; var isTimeZoneNamed2 = isTimeZoneNamed; var isUtc2 = isUtc; var isZoned2 = isZoned; var Equivalence4 = Equivalence3; var unsafeFromDate2 = unsafeFromDate; var unsafeMake7 = unsafeMake6; var unsafeMakeZoned2 = unsafeMakeZoned; var makeZonedFromString2 = makeZonedFromString; var zoneUnsafeMakeNamed2 = zoneUnsafeMakeNamed; var zoneMakeOffset2 = zoneMakeOffset; var zoneFromString2 = zoneFromString; var zoneToString2 = zoneToString; var toDateUtc2 = toDateUtc; var toEpochMillis2 = toEpochMillis; var formatIso2 = formatIso; var formatIsoZoned2 = formatIsoZoned; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/encoding/common.js var DecodeExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Encoding/errors/Decode"); var DecodeException = (input, message) => { const out = { _tag: "DecodeException", [DecodeExceptionTypeId]: DecodeExceptionTypeId, input }; if (isString(message)) { out.message = message; } return out; }; var EncodeExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Encoding/errors/Encode"); var EncodeException = (input, message) => { const out = { _tag: "EncodeException", [EncodeExceptionTypeId]: EncodeExceptionTypeId, input }; if (isString(message)) { out.message = message; } return out; }; var encoder = /* @__PURE__ */ new TextEncoder(); var decoder = /* @__PURE__ */ new TextDecoder(); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/encoding/base64.js var encode = (bytes) => { const length2 = bytes.length; let result = ""; let i; for (i = 2; i < length2; i += 3) { result += base64abc[bytes[i - 2] >> 2]; result += base64abc[(bytes[i - 2] & 3) << 4 | bytes[i - 1] >> 4]; result += base64abc[(bytes[i - 1] & 15) << 2 | bytes[i] >> 6]; result += base64abc[bytes[i] & 63]; } if (i === length2 + 1) { result += base64abc[bytes[i - 2] >> 2]; result += base64abc[(bytes[i - 2] & 3) << 4]; result += "=="; } if (i === length2) { result += base64abc[bytes[i - 2] >> 2]; result += base64abc[(bytes[i - 2] & 3) << 4 | bytes[i - 1] >> 4]; result += base64abc[(bytes[i - 1] & 15) << 2]; result += "="; } return result; }; var decode2 = (str) => { const stripped = stripCrlf(str); const length2 = stripped.length; if (length2 % 4 !== 0) { return left2(DecodeException(stripped, `Length must be a multiple of 4, but is ${length2}`)); } const index = stripped.indexOf("="); if (index !== -1 && (index < length2 - 2 || index === length2 - 2 && stripped[length2 - 1] !== "=")) { return left2(DecodeException(stripped, "Found a '=' character, but it is not at the end")); } try { const missingOctets = stripped.endsWith("==") ? 2 : stripped.endsWith("=") ? 1 : 0; const result = new Uint8Array(3 * (length2 / 4) - missingOctets); for (let i = 0, j = 0; i < length2; i += 4, j += 3) { const buffer = getBase64Code(stripped.charCodeAt(i)) << 18 | getBase64Code(stripped.charCodeAt(i + 1)) << 12 | getBase64Code(stripped.charCodeAt(i + 2)) << 6 | getBase64Code(stripped.charCodeAt(i + 3)); result[j] = buffer >> 16; result[j + 1] = buffer >> 8 & 255; result[j + 2] = buffer & 255; } return right2(result); } catch (e) { return left2(DecodeException(stripped, e instanceof Error ? e.message : "Invalid input")); } }; var stripCrlf = (str) => str.replace(/[\n\r]/g, ""); function getBase64Code(charCode) { if (charCode >= base64codes.length) { throw new TypeError(`Invalid character ${String.fromCharCode(charCode)}`); } const code = base64codes[charCode]; if (code === 255) { throw new TypeError(`Invalid character ${String.fromCharCode(charCode)}`); } return code; } var base64abc = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"]; var base64codes = [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 0, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/encoding/base64Url.js var encode2 = (data) => encode(data).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); var decode3 = (str) => { const stripped = stripCrlf(str); const length2 = stripped.length; if (length2 % 4 === 1) { return left2(DecodeException(stripped, `Length should be a multiple of 4, but is ${length2}`)); } if (!/^[-_A-Z0-9]*?={0,2}$/i.test(stripped)) { return left2(DecodeException(stripped, "Invalid input")); } let sanitized = length2 % 4 === 2 ? `${stripped}==` : length2 % 4 === 3 ? `${stripped}=` : stripped; sanitized = sanitized.replace(/-/g, "+").replace(/_/g, "/"); return decode2(sanitized); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/internal/encoding/hex.js var encode3 = (bytes) => { let result = ""; for (let i = 0; i < bytes.length; ++i) { result += bytesToHex[bytes[i]]; } return result; }; var decode4 = (str) => { const bytes = new TextEncoder().encode(str); if (bytes.length % 2 !== 0) { return left2(DecodeException(str, `Length must be a multiple of 2, but is ${bytes.length}`)); } try { const length2 = bytes.length / 2; const result = new Uint8Array(length2); for (let i = 0; i < length2; i++) { const a = fromHexChar(bytes[i * 2]); const b = fromHexChar(bytes[i * 2 + 1]); result[i] = a << 4 | b; } return right2(result); } catch (e) { return left2(DecodeException(str, e instanceof Error ? e.message : "Invalid input")); } }; var bytesToHex = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff"]; var fromHexChar = (byte) => { if (48 <= byte && byte <= 57) { return byte - 48; } if (97 <= byte && byte <= 102) { return byte - 97 + 10; } if (65 <= byte && byte <= 70) { return byte - 65 + 10; } throw new TypeError("Invalid input"); }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Encoding.js var encodeBase64 = (input) => typeof input === "string" ? encode(encoder.encode(input)) : encode(input); var decodeBase64 = (str) => decode2(str); var decodeBase64String = (str) => map(decodeBase64(str), (_) => decoder.decode(_)); var encodeBase64Url = (input) => typeof input === "string" ? encode2(encoder.encode(input)) : encode2(input); var decodeBase64Url = (str) => decode3(str); var decodeBase64UrlString = (str) => map(decodeBase64Url(str), (_) => decoder.decode(_)); var encodeHex = (input) => typeof input === "string" ? encode3(encoder.encode(input)) : encode3(input); var decodeHex = (str) => decode4(str); var decodeHexString = (str) => map(decodeHex(str), (_) => decoder.decode(_)); var encodeUriComponent = (str) => try_({ try: () => encodeURIComponent(str), catch: (e) => EncodeException2(str, e instanceof Error ? e.message : "Invalid input") }); var decodeUriComponent = (str) => try_({ try: () => decodeURIComponent(str), catch: (e) => DecodeException2(str, e instanceof Error ? e.message : "Invalid input") }); var DecodeException2 = DecodeException; var EncodeException2 = EncodeException; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/ParseResult.js var Pointer = class { path; actual; issue; /** * @since 3.10.0 */ _tag = "Pointer"; constructor(path2, actual, issue) { this.path = path2; this.actual = actual; this.issue = issue; } }; var Unexpected = class { actual; message; /** * @since 3.10.0 */ _tag = "Unexpected"; constructor(actual, message) { this.actual = actual; this.message = message; } }; var Missing = class { ast; message; /** * @since 3.10.0 */ _tag = "Missing"; /** * @since 3.10.0 */ actual = void 0; constructor(ast, message) { this.ast = ast; this.message = message; } }; var Composite2 = class { ast; actual; issues; output; /** * @since 3.10.0 */ _tag = "Composite"; constructor(ast, actual, issues, output) { this.ast = ast; this.actual = actual; this.issues = issues; this.output = output; } }; var Refinement2 = class { ast; actual; kind; issue; /** * @since 3.10.0 */ _tag = "Refinement"; constructor(ast, actual, kind, issue) { this.ast = ast; this.actual = actual; this.kind = kind; this.issue = issue; } }; var Transformation2 = class { ast; actual; kind; issue; /** * @since 3.10.0 */ _tag = "Transformation"; constructor(ast, actual, kind, issue) { this.ast = ast; this.actual = actual; this.kind = kind; this.issue = issue; } }; var Type2 = class { ast; actual; message; /** * @since 3.10.0 */ _tag = "Type"; constructor(ast, actual, message) { this.ast = ast; this.actual = actual; this.message = message; } }; var Forbidden = class { ast; actual; message; /** * @since 3.10.0 */ _tag = "Forbidden"; constructor(ast, actual, message) { this.ast = ast; this.actual = actual; this.message = message; } }; var ParseErrorTypeId = /* @__PURE__ */ Symbol.for("effect/Schema/ParseErrorTypeId"); var ParseError = class extends (/* @__PURE__ */ TaggedError("ParseError")) { /** * @since 3.10.0 */ [ParseErrorTypeId] = ParseErrorTypeId; get message() { return this.toString(); } /** * @since 3.10.0 */ toString() { return TreeFormatter.formatIssueSync(this.issue); } /** * @since 3.10.0 */ toJSON() { return { _id: "ParseError", message: this.toString() }; } /** * @since 3.10.0 */ [NodeInspectSymbol]() { return this.toJSON(); } }; var parseError = (issue) => new ParseError({ issue }); var succeed6 = right2; var fail6 = left2; var _try = try_; var fromOption3 = fromOption2; var isEither3 = isEither2; var flatMap11 = /* @__PURE__ */ dual(2, (self, f) => { return isEither3(self) ? match(self, { onLeft: left2, onRight: f }) : flatMap10(self, f); }); var map13 = /* @__PURE__ */ dual(2, (self, f) => { return isEither3(self) ? map(self, f) : map11(self, f); }); var mapError3 = /* @__PURE__ */ dual(2, (self, f) => { return isEither3(self) ? mapLeft(self, f) : mapError2(self, f); }); var mapBoth4 = /* @__PURE__ */ dual(2, (self, options) => { return isEither3(self) ? mapBoth(self, { onLeft: options.onFailure, onRight: options.onSuccess }) : mapBoth3(self, options); }); var orElse5 = /* @__PURE__ */ dual(2, (self, f) => { return isEither3(self) ? match(self, { onLeft: f, onRight: right2 }) : catchAll2(self, f); }); var mergeInternalOptions = (options, overrideOptions) => { if (overrideOptions === void 0 || isNumber(overrideOptions)) { return options; } if (options === void 0) { return overrideOptions; } return { ...options, ...overrideOptions }; }; var getEither = (ast, isDecoding, options) => { const parser = goMemo(ast, isDecoding); return (u, overrideOptions) => parser(u, mergeInternalOptions(options, overrideOptions)); }; var getSync = (ast, isDecoding, options) => { const parser = getEither(ast, isDecoding, options); return (input, overrideOptions) => getOrThrowWith(parser(input, overrideOptions), parseError); }; var getOption3 = (ast, isDecoding, options) => { const parser = getEither(ast, isDecoding, options); return (input, overrideOptions) => getRight3(parser(input, overrideOptions)); }; var getEffect = (ast, isDecoding, options) => { const parser = goMemo(ast, isDecoding); return (input, overrideOptions) => parser(input, { ...mergeInternalOptions(options, overrideOptions), isEffectAllowed: true }); }; var decodeUnknownSync = (schema, options) => getSync(schema.ast, true, options); var decodeUnknownOption = (schema, options) => getOption3(schema.ast, true, options); var decodeUnknownEither = (schema, options) => getEither(schema.ast, true, options); var decodeUnknown = (schema, options) => getEffect(schema.ast, true, options); var encodeUnknownSync = (schema, options) => getSync(schema.ast, false, options); var encodeUnknownOption = (schema, options) => getOption3(schema.ast, false, options); var encodeUnknownEither = (schema, options) => getEither(schema.ast, false, options); var encodeUnknown = (schema, options) => getEffect(schema.ast, false, options); var decodeSync = decodeUnknownSync; var decodeOption = decodeUnknownOption; var validateSync = (schema, options) => getSync(typeAST(schema.ast), true, options); var validateOption = (schema, options) => getOption3(typeAST(schema.ast), true, options); var validateEither = (schema, options) => getEither(typeAST(schema.ast), true, options); var validate3 = (schema, options) => getEffect(typeAST(schema.ast), true, options); var is = (schema, options) => { const parser = goMemo(typeAST(schema.ast), true); return (u, overrideOptions) => isRight2(parser(u, { exact: true, ...mergeInternalOptions(options, overrideOptions) })); }; var asserts = (schema, options) => { const parser = goMemo(typeAST(schema.ast), true); return (u, overrideOptions) => { const result = parser(u, { exact: true, ...mergeInternalOptions(options, overrideOptions) }); if (isLeft2(result)) { throw parseError(result.left); } }; }; var encodeSync = encodeUnknownSync; var encodeOption = encodeUnknownOption; var decodeMemoMap = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/ParseResult/decodeMemoMap"), () => /* @__PURE__ */ new WeakMap()); var encodeMemoMap = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/ParseResult/encodeMemoMap"), () => /* @__PURE__ */ new WeakMap()); var goMemo = (ast, isDecoding) => { const memoMap = isDecoding ? decodeMemoMap : encodeMemoMap; const memo2 = memoMap.get(ast); if (memo2) { return memo2; } const raw = go(ast, isDecoding); const parseOptionsAnnotation = getParseOptionsAnnotation(ast); const parserWithOptions = isSome2(parseOptionsAnnotation) ? (i, options) => raw(i, mergeInternalOptions(options, parseOptionsAnnotation.value)) : raw; const decodingFallbackAnnotation = getDecodingFallbackAnnotation(ast); const parser = isDecoding && isSome2(decodingFallbackAnnotation) ? (i, options) => handleForbidden(orElse5(parserWithOptions(i, options), decodingFallbackAnnotation.value), ast, i, options) : parserWithOptions; memoMap.set(ast, parser); return parser; }; var getConcurrency = (ast) => getOrUndefined2(getConcurrencyAnnotation(ast)); var getBatching = (ast) => getOrUndefined2(getBatchingAnnotation(ast)); var go = (ast, isDecoding) => { switch (ast._tag) { case "Refinement": { if (isDecoding) { const from = goMemo(ast.from, true); return (i, options) => { options = options ?? defaultParseOption; const allErrors = options?.errors === "all"; const result = flatMap11(orElse5(from(i, options), (ef) => { const issue = new Refinement2(ast, i, "From", ef); if (allErrors && hasStableFilter(ast) && isComposite2(ef)) { return match2(ast.filter(i, options, ast), { onNone: () => left2(issue), onSome: (ep) => left2(new Composite2(ast, i, [issue, new Refinement2(ast, i, "Predicate", ep)])) }); } return left2(issue); }), (a) => match2(ast.filter(a, options, ast), { onNone: () => right2(a), onSome: (ep) => left2(new Refinement2(ast, i, "Predicate", ep)) })); return handleForbidden(result, ast, i, options); }; } else { const from = goMemo(typeAST(ast), true); const to = goMemo(dropRightRefinement(ast.from), false); return (i, options) => handleForbidden(flatMap11(from(i, options), (a) => to(a, options)), ast, i, options); } } case "Transformation": { const transform3 = getFinalTransformation(ast.transformation, isDecoding); const from = isDecoding ? goMemo(ast.from, true) : goMemo(ast.to, false); const to = isDecoding ? goMemo(ast.to, true) : goMemo(ast.from, false); return (i, options) => handleForbidden(flatMap11(mapError3(from(i, options), (e) => new Transformation2(ast, i, isDecoding ? "Encoded" : "Type", e)), (a) => flatMap11(mapError3(transform3(a, options ?? defaultParseOption, ast, i), (e) => new Transformation2(ast, i, "Transformation", e)), (i2) => mapError3(to(i2, options), (e) => new Transformation2(ast, i, isDecoding ? "Type" : "Encoded", e)))), ast, i, options); } case "Declaration": { const parse2 = isDecoding ? ast.decodeUnknown(...ast.typeParameters) : ast.encodeUnknown(...ast.typeParameters); return (i, options) => handleForbidden(parse2(i, options ?? defaultParseOption, ast), ast, i, options); } case "Literal": return fromRefinement(ast, (u) => u === ast.literal); case "UniqueSymbol": return fromRefinement(ast, (u) => u === ast.symbol); case "UndefinedKeyword": return fromRefinement(ast, isUndefined); case "NeverKeyword": return fromRefinement(ast, isNever); case "UnknownKeyword": case "AnyKeyword": case "VoidKeyword": return right2; case "StringKeyword": return fromRefinement(ast, isString); case "NumberKeyword": return fromRefinement(ast, isNumber); case "BooleanKeyword": return fromRefinement(ast, isBoolean); case "BigIntKeyword": return fromRefinement(ast, isBigInt); case "SymbolKeyword": return fromRefinement(ast, isSymbol); case "ObjectKeyword": return fromRefinement(ast, isObject); case "Enums": return fromRefinement(ast, (u) => ast.enums.some(([_, value3]) => value3 === u)); case "TemplateLiteral": { const regex = getTemplateLiteralRegExp(ast); return fromRefinement(ast, (u) => isString(u) && regex.test(u)); } case "TupleType": { const elements = ast.elements.map((e) => goMemo(e.type, isDecoding)); const rest = ast.rest.map((annotatedAST) => goMemo(annotatedAST.type, isDecoding)); let requiredTypes = ast.elements.filter((e) => !e.isOptional); if (ast.rest.length > 0) { requiredTypes = requiredTypes.concat(ast.rest.slice(1)); } const requiredLen = requiredTypes.length; const expectedIndexes = ast.elements.length > 0 ? ast.elements.map((_, i) => i).join(" | ") : "never"; const concurrency = getConcurrency(ast); const batching = getBatching(ast); return (input, options) => { if (!isArray(input)) { return left2(new Type2(ast, input)); } const allErrors = options?.errors === "all"; const es = []; let stepKey = 0; const output = []; const len = input.length; for (let i2 = len; i2 <= requiredLen - 1; i2++) { const e = new Pointer(i2, input, new Missing(requiredTypes[i2 - len])); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, output)); } } if (ast.rest.length === 0) { for (let i2 = ast.elements.length; i2 <= len - 1; i2++) { const e = new Pointer(i2, input, new Unexpected(input[i2], `is unexpected, expected: ${expectedIndexes}`)); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, output)); } } } let i = 0; let queue = void 0; for (; i < elements.length; i++) { if (len < i + 1) { if (ast.elements[i].isOptional) { continue; } } else { const parser = elements[i]; const te = parser(input[i], options); if (isEither3(te)) { if (isLeft2(te)) { const e = new Pointer(i, input, te.left); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, sortByIndex(output))); } } output.push([stepKey++, te.right]); } else { const nk = stepKey++; const index = i; if (!queue) { queue = []; } queue.push(({ es: es2, output: output2 }) => flatMap10(either3(te), (t) => { if (isLeft2(t)) { const e = new Pointer(index, input, t.left); if (allErrors) { es2.push([nk, e]); return _void; } else { return left2(new Composite2(ast, input, e, sortByIndex(output2))); } } output2.push([nk, t.right]); return _void; })); } } } if (isNonEmptyReadonlyArray(rest)) { const [head4, ...tail] = rest; for (; i < len - tail.length; i++) { const te = head4(input[i], options); if (isEither3(te)) { if (isLeft2(te)) { const e = new Pointer(i, input, te.left); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, sortByIndex(output))); } } else { output.push([stepKey++, te.right]); } } else { const nk = stepKey++; const index = i; if (!queue) { queue = []; } queue.push(({ es: es2, output: output2 }) => flatMap10(either3(te), (t) => { if (isLeft2(t)) { const e = new Pointer(index, input, t.left); if (allErrors) { es2.push([nk, e]); return _void; } else { return left2(new Composite2(ast, input, e, sortByIndex(output2))); } } else { output2.push([nk, t.right]); return _void; } })); } } for (let j = 0; j < tail.length; j++) { i += j; if (len < i + 1) { continue; } else { const te = tail[j](input[i], options); if (isEither3(te)) { if (isLeft2(te)) { const e = new Pointer(i, input, te.left); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, sortByIndex(output))); } } output.push([stepKey++, te.right]); } else { const nk = stepKey++; const index = i; if (!queue) { queue = []; } queue.push(({ es: es2, output: output2 }) => flatMap10(either3(te), (t) => { if (isLeft2(t)) { const e = new Pointer(index, input, t.left); if (allErrors) { es2.push([nk, e]); return _void; } else { return left2(new Composite2(ast, input, e, sortByIndex(output2))); } } output2.push([nk, t.right]); return _void; })); } } } } const computeResult = ({ es: es2, output: output2 }) => isNonEmptyArray2(es2) ? left2(new Composite2(ast, input, sortByIndex(es2), sortByIndex(output2))) : right2(sortByIndex(output2)); if (queue && queue.length > 0) { const cqueue = queue; return suspend3(() => { const state = { es: copy(es), output: copy(output) }; return flatMap10(forEach7(cqueue, (f) => f(state), { concurrency, batching, discard: true }), () => computeResult(state)); }); } return computeResult({ output, es }); }; } case "TypeLiteral": { if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) { return fromRefinement(ast, isNotNullable); } const propertySignatures = []; const expectedKeysMap = {}; const expectedKeys = []; for (const ps of ast.propertySignatures) { propertySignatures.push([goMemo(ps.type, isDecoding), ps]); expectedKeysMap[ps.name] = null; expectedKeys.push(ps.name); } const indexSignatures = ast.indexSignatures.map((is2) => [goMemo(is2.parameter, isDecoding), goMemo(is2.type, isDecoding), is2.parameter]); const expectedAST = Union.make(ast.indexSignatures.map((is2) => is2.parameter).concat(expectedKeys.map((key) => isSymbol(key) ? new UniqueSymbol(key) : new Literal(key)))); const expected = goMemo(expectedAST, isDecoding); const concurrency = getConcurrency(ast); const batching = getBatching(ast); return (input, options) => { if (!isRecord(input)) { return left2(new Type2(ast, input)); } const allErrors = options?.errors === "all"; const es = []; let stepKey = 0; const onExcessPropertyError = options?.onExcessProperty === "error"; const onExcessPropertyPreserve = options?.onExcessProperty === "preserve"; const output = {}; let inputKeys; if (onExcessPropertyError || onExcessPropertyPreserve) { inputKeys = ownKeys(input); for (const key of inputKeys) { const te = expected(key, options); if (isEither3(te) && isLeft2(te)) { if (onExcessPropertyError) { const e = new Pointer(key, input, new Unexpected(input[key], `is unexpected, expected: ${String(expectedAST)}`)); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, output)); } } else { output[key] = input[key]; } } } } let queue = void 0; const isExact = options?.exact === true; for (let i = 0; i < propertySignatures.length; i++) { const ps = propertySignatures[i][1]; const name = ps.name; const hasKey = Object.prototype.hasOwnProperty.call(input, name); if (!hasKey) { if (ps.isOptional) { continue; } else if (isExact) { const e = new Pointer(name, input, new Missing(ps)); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, output)); } } } const parser = propertySignatures[i][0]; const te = parser(input[name], options); if (isEither3(te)) { if (isLeft2(te)) { const e = new Pointer(name, input, hasKey ? te.left : new Missing(ps)); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, output)); } } output[name] = te.right; } else { const nk = stepKey++; const index = name; if (!queue) { queue = []; } queue.push(({ es: es2, output: output2 }) => flatMap10(either3(te), (t) => { if (isLeft2(t)) { const e = new Pointer(index, input, hasKey ? t.left : new Missing(ps)); if (allErrors) { es2.push([nk, e]); return _void; } else { return left2(new Composite2(ast, input, e, output2)); } } output2[index] = t.right; return _void; })); } } for (let i = 0; i < indexSignatures.length; i++) { const indexSignature = indexSignatures[i]; const parameter = indexSignature[0]; const type = indexSignature[1]; const keys5 = getKeysForIndexSignature(input, indexSignature[2]); for (const key of keys5) { const keu = parameter(key, options); if (isEither3(keu) && isRight2(keu)) { const vpr = type(input[key], options); if (isEither3(vpr)) { if (isLeft2(vpr)) { const e = new Pointer(key, input, vpr.left); if (allErrors) { es.push([stepKey++, e]); continue; } else { return left2(new Composite2(ast, input, e, output)); } } else { if (!Object.prototype.hasOwnProperty.call(expectedKeysMap, key)) { output[key] = vpr.right; } } } else { const nk = stepKey++; const index = key; if (!queue) { queue = []; } queue.push(({ es: es2, output: output2 }) => flatMap10(either3(vpr), (tv) => { if (isLeft2(tv)) { const e = new Pointer(index, input, tv.left); if (allErrors) { es2.push([nk, e]); return _void; } else { return left2(new Composite2(ast, input, e, output2)); } } else { if (!Object.prototype.hasOwnProperty.call(expectedKeysMap, key)) { output2[key] = tv.right; } return _void; } })); } } } } const computeResult = ({ es: es2, output: output2 }) => { if (isNonEmptyArray2(es2)) { return left2(new Composite2(ast, input, sortByIndex(es2), output2)); } if (options?.propertyOrder === "original") { const keys5 = inputKeys || ownKeys(input); for (const name of expectedKeys) { if (keys5.indexOf(name) === -1) { keys5.push(name); } } const out = {}; for (const key of keys5) { if (Object.prototype.hasOwnProperty.call(output2, key)) { out[key] = output2[key]; } } return right2(out); } return right2(output2); }; if (queue && queue.length > 0) { const cqueue = queue; return suspend3(() => { const state = { es: copy(es), output: Object.assign({}, output) }; return flatMap10(forEach7(cqueue, (f) => f(state), { concurrency, batching, discard: true }), () => computeResult(state)); }); } return computeResult({ es, output }); }; } case "Union": { const searchTree = getSearchTree(ast.types, isDecoding); const ownKeys2 = ownKeys(searchTree.keys); const ownKeysLen = ownKeys2.length; const astTypesLen = ast.types.length; const map15 = /* @__PURE__ */ new Map(); for (let i = 0; i < astTypesLen; i++) { map15.set(ast.types[i], goMemo(ast.types[i], isDecoding)); } const concurrency = getConcurrency(ast) ?? 1; const batching = getBatching(ast); return (input, options) => { const es = []; let stepKey = 0; let candidates = []; if (ownKeysLen > 0) { if (isRecordOrArray(input)) { for (let i = 0; i < ownKeysLen; i++) { const name = ownKeys2[i]; const buckets = searchTree.keys[name].buckets; if (Object.prototype.hasOwnProperty.call(input, name)) { const literal2 = String(input[name]); if (Object.prototype.hasOwnProperty.call(buckets, literal2)) { candidates = candidates.concat(buckets[literal2]); } else { const { candidates: candidates2, literals } = searchTree.keys[name]; const literalsUnion = Union.make(literals); const errorAst = candidates2.length === astTypesLen ? new TypeLiteral([new PropertySignature(name, literalsUnion, false, true)], []) : Union.make(candidates2); es.push([stepKey++, new Composite2(errorAst, input, new Pointer(name, input, new Type2(literalsUnion, input[name])))]); } } else { const { candidates: candidates2, literals } = searchTree.keys[name]; const fakePropertySignature = new PropertySignature(name, Union.make(literals), false, true); const errorAst = candidates2.length === astTypesLen ? new TypeLiteral([fakePropertySignature], []) : Union.make(candidates2); es.push([stepKey++, new Composite2(errorAst, input, new Pointer(name, input, new Missing(fakePropertySignature)))]); } } } else { const errorAst = searchTree.candidates.length === astTypesLen ? ast : Union.make(searchTree.candidates); es.push([stepKey++, new Type2(errorAst, input)]); } } if (searchTree.otherwise.length > 0) { candidates = candidates.concat(searchTree.otherwise); } let queue = void 0; for (let i = 0; i < candidates.length; i++) { const candidate = candidates[i]; const pr = map15.get(candidate)(input, options); if (isEither3(pr) && (!queue || queue.length === 0)) { if (isRight2(pr)) { return pr; } else { es.push([stepKey++, pr.left]); } } else { const nk = stepKey++; if (!queue) { queue = []; } queue.push((state) => suspend3(() => { if ("finalResult" in state) { return _void; } else { return flatMap10(either3(pr), (t) => { if (isRight2(t)) { state.finalResult = t; } else { state.es.push([nk, t.left]); } return _void; }); } })); } } const computeResult = (es2) => isNonEmptyArray2(es2) ? es2.length === 1 && es2[0][1]._tag === "Type" ? left2(es2[0][1]) : left2(new Composite2(ast, input, sortByIndex(es2))) : ( // this should never happen left2(new Type2(ast, input)) ); if (queue && queue.length > 0) { const cqueue = queue; return suspend3(() => { const state = { es: copy(es) }; return flatMap10(forEach7(cqueue, (f) => f(state), { concurrency, batching, discard: true }), () => { if ("finalResult" in state) { return state.finalResult; } return computeResult(state.es); }); }); } return computeResult(es); }; } case "Suspend": { const get9 = memoizeThunk(() => goMemo(annotations(ast.f(), ast.annotations), isDecoding)); return (a, options) => get9()(a, options); } } }; var fromRefinement = (ast, refinement) => (u) => refinement(u) ? right2(u) : left2(new Type2(ast, u)); var getLiterals = (ast, isDecoding) => { switch (ast._tag) { case "Declaration": { const annotation = getSurrogateAnnotation(ast); if (isSome2(annotation)) { return getLiterals(annotation.value, isDecoding); } break; } case "TypeLiteral": { const out = []; for (let i = 0; i < ast.propertySignatures.length; i++) { const propertySignature2 = ast.propertySignatures[i]; const type = isDecoding ? encodedAST(propertySignature2.type) : typeAST(propertySignature2.type); if (isLiteral(type) && !propertySignature2.isOptional) { out.push([propertySignature2.name, type]); } } return out; } case "TupleType": { const out = []; for (let i = 0; i < ast.elements.length; i++) { const element2 = ast.elements[i]; const type = isDecoding ? encodedAST(element2.type) : typeAST(element2.type); if (isLiteral(type) && !element2.isOptional) { out.push([i, type]); } } return out; } case "Refinement": return getLiterals(ast.from, isDecoding); case "Suspend": return getLiterals(ast.f(), isDecoding); case "Transformation": return getLiterals(isDecoding ? ast.from : ast.to, isDecoding); } return []; }; var getSearchTree = (members, isDecoding) => { const keys5 = {}; const otherwise = []; const candidates = []; for (let i = 0; i < members.length; i++) { const member = members[i]; const tags = getLiterals(member, isDecoding); if (tags.length > 0) { candidates.push(member); for (let j = 0; j < tags.length; j++) { const [key, literal2] = tags[j]; const hash3 = String(literal2.literal); keys5[key] = keys5[key] || { buckets: {}, literals: [], candidates: [] }; const buckets = keys5[key].buckets; if (Object.prototype.hasOwnProperty.call(buckets, hash3)) { if (j < tags.length - 1) { continue; } buckets[hash3].push(member); keys5[key].literals.push(literal2); keys5[key].candidates.push(member); } else { buckets[hash3] = [member]; keys5[key].literals.push(literal2); keys5[key].candidates.push(member); break; } } } else { otherwise.push(member); } } return { keys: keys5, otherwise, candidates }; }; var dropRightRefinement = (ast) => isRefinement(ast) ? dropRightRefinement(ast.from) : ast; var handleForbidden = (effect, ast, actual, options) => { if (options?.isEffectAllowed === true) { return effect; } if (isEither3(effect)) { return effect; } const scheduler2 = new SyncScheduler(); const fiber = runFork2(effect, { scheduler: scheduler2 }); scheduler2.flush(); const exit3 = fiber.unsafePoll(); if (exit3) { if (isSuccess(exit3)) { return right2(exit3.value); } const cause = exit3.cause; if (isFailType2(cause)) { return left2(cause.error); } return left2(new Forbidden(ast, actual, pretty2(cause))); } return left2(new Forbidden(ast, actual, "cannot be be resolved synchronously, this is caused by using runSync on an effect that performs async work")); }; var compare = ([a], [b]) => a > b ? 1 : a < b ? -1 : 0; function sortByIndex(es) { return es.sort(compare).map((t) => t[1]); } var getFinalTransformation = (transformation, isDecoding) => { switch (transformation._tag) { case "FinalTransformation": return isDecoding ? transformation.decode : transformation.encode; case "ComposeTransformation": return right2; case "TypeLiteralTransformation": return (input) => { let out = right2(input); for (const pst of transformation.propertySignatureTransformations) { const [from, to] = isDecoding ? [pst.from, pst.to] : [pst.to, pst.from]; const transformation2 = isDecoding ? pst.decode : pst.encode; const f = (input2) => { const o = transformation2(Object.prototype.hasOwnProperty.call(input2, from) ? some2(input2[from]) : none2()); delete input2[from]; if (isSome2(o)) { input2[to] = o.value; } return input2; }; out = map13(out, f); } return out; }; } }; var makeTree = (value3, forest = []) => ({ value: value3, forest }); var TreeFormatter = { formatIssue: (issue) => map13(formatTree(issue), drawTree), formatIssueSync: (issue) => { const e = TreeFormatter.formatIssue(issue); return isEither3(e) ? getOrThrow(e) : runSync(e); }, formatError: (error) => TreeFormatter.formatIssue(error.issue), formatErrorSync: (error) => TreeFormatter.formatIssueSync(error.issue) }; var drawTree = (tree) => tree.value + draw("\n", tree.forest); var draw = (indentation, forest) => { let r = ""; const len = forest.length; let tree; for (let i = 0; i < len; i++) { tree = forest[i]; const isLast = i === len - 1; r += indentation + (isLast ? "\u2514" : "\u251C") + "\u2500 " + tree.value; r += draw(indentation + (len > 1 && !isLast ? "\u2502 " : " "), tree.forest); } return r; }; var formatTransformationKind = (kind) => { switch (kind) { case "Encoded": return "Encoded side transformation failure"; case "Transformation": return "Transformation process failure"; case "Type": return "Type side transformation failure"; } }; var formatRefinementKind = (kind) => { switch (kind) { case "From": return "From side refinement failure"; case "Predicate": return "Predicate refinement failure"; } }; var getAnnotated = (issue) => "ast" in issue ? some2(issue.ast) : none2(); var Either_void = /* @__PURE__ */ right2(void 0); var getCurrentMessage = (issue) => getAnnotated(issue).pipe(flatMap2(getMessageAnnotation), match2({ onNone: () => Either_void, onSome: (messageAnnotation) => { const union5 = messageAnnotation(issue); if (isString(union5)) { return right2({ message: union5, override: false }); } if (isEffect2(union5)) { return map11(union5, (message) => ({ message, override: false })); } if (isString(union5.message)) { return right2({ message: union5.message, override: union5.override }); } return map11(union5.message, (message) => ({ message, override: union5.override })); } })); var createParseIssueGuard = (tag2) => (issue) => issue._tag === tag2; var isComposite2 = /* @__PURE__ */ createParseIssueGuard("Composite"); var isRefinement2 = /* @__PURE__ */ createParseIssueGuard("Refinement"); var isTransformation = /* @__PURE__ */ createParseIssueGuard("Transformation"); var getMessage = (issue) => flatMap11(getCurrentMessage(issue), (currentMessage) => { if (currentMessage !== void 0) { const useInnerMessage = !currentMessage.override && (isComposite2(issue) || isRefinement2(issue) && issue.kind === "From" || isTransformation(issue) && issue.kind !== "Transformation"); return useInnerMessage ? isTransformation(issue) || isRefinement2(issue) ? getMessage(issue.issue) : Either_void : right2(currentMessage.message); } return Either_void; }); var getParseIssueTitleAnnotation2 = (issue) => getAnnotated(issue).pipe(flatMap2(getParseIssueTitleAnnotation), filterMap((annotation) => fromNullable2(annotation(issue))), getOrUndefined2); function getRefinementExpected(ast) { return getDescriptionAnnotation(ast).pipe(orElse2(() => getTitleAnnotation(ast)), orElse2(() => getAutoTitleAnnotation(ast)), orElse2(() => getIdentifierAnnotation(ast)), getOrElse2(() => `{ ${ast.from} | filter }`)); } function getDefaultTypeMessage(issue) { if (issue.message !== void 0) { return issue.message; } const expected = isRefinement(issue.ast) ? getRefinementExpected(issue.ast) : String(issue.ast); return `Expected ${expected}, actual ${formatUnknown(issue.actual)}`; } var formatTypeMessage = (issue) => map13(getMessage(issue), (message) => message ?? getParseIssueTitleAnnotation2(issue) ?? getDefaultTypeMessage(issue)); var getParseIssueTitle = (issue) => getParseIssueTitleAnnotation2(issue) ?? String(issue.ast); var formatForbiddenMessage = (issue) => issue.message ?? "is forbidden"; var formatUnexpectedMessage = (issue) => issue.message ?? "is unexpected"; var formatMissingMessage = (issue) => { const missingMessageAnnotation = getMissingMessageAnnotation(issue.ast); if (isSome2(missingMessageAnnotation)) { const annotation = missingMessageAnnotation.value(); return isString(annotation) ? right2(annotation) : annotation; } return right2(issue.message ?? "is missing"); }; var formatTree = (issue) => { switch (issue._tag) { case "Type": return map13(formatTypeMessage(issue), makeTree); case "Forbidden": return right2(makeTree(getParseIssueTitle(issue), [makeTree(formatForbiddenMessage(issue))])); case "Unexpected": return right2(makeTree(formatUnexpectedMessage(issue))); case "Missing": return map13(formatMissingMessage(issue), makeTree); case "Transformation": return flatMap11(getMessage(issue), (message) => { if (message !== void 0) { return right2(makeTree(message)); } return map13(formatTree(issue.issue), (tree) => makeTree(getParseIssueTitle(issue), [makeTree(formatTransformationKind(issue.kind), [tree])])); }); case "Refinement": return flatMap11(getMessage(issue), (message) => { if (message !== void 0) { return right2(makeTree(message)); } return map13(formatTree(issue.issue), (tree) => makeTree(getParseIssueTitle(issue), [makeTree(formatRefinementKind(issue.kind), [tree])])); }); case "Pointer": return map13(formatTree(issue.issue), (tree) => makeTree(formatPath(issue.path), [tree])); case "Composite": return flatMap11(getMessage(issue), (message) => { if (message !== void 0) { return right2(makeTree(message)); } const parseIssueTitle = getParseIssueTitle(issue); return isNonEmpty(issue.issues) ? map13(forEach7(issue.issues, formatTree), (forest) => makeTree(parseIssueTitle, forest)) : map13(formatTree(issue.issues), (tree) => makeTree(parseIssueTitle, [tree])); }); } }; // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Redacted.js var isRedacted2 = isRedacted; var make33 = make31; var value2 = value; var getEquivalence7 = (isEquivalent) => make((x, y) => isEquivalent(value2(x), value2(y))); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Schema.js var Schema_exports = {}; __export(Schema_exports, { Any: () => Any, Array: () => Array$, ArrayEnsure: () => ArrayEnsure, ArrayFormatterIssue: () => ArrayFormatterIssue, BetweenBigDecimalSchemaId: () => BetweenBigDecimalSchemaId, BetweenBigIntSchemaId: () => BetweenBigIntSchemaId, BetweenDateSchemaId: () => BetweenDateSchemaId, BetweenDurationSchemaId: () => BetweenDurationSchemaId, BetweenSchemaId: () => BetweenSchemaId2, BigDecimal: () => BigDecimal, BigDecimalFromNumber: () => BigDecimalFromNumber, BigDecimalFromSelf: () => BigDecimalFromSelf, BigInt: () => BigInt$, BigIntFromNumber: () => BigIntFromNumber, BigIntFromSelf: () => BigIntFromSelf, Boolean: () => Boolean$, BooleanFromString: () => BooleanFromString, BooleanFromUnknown: () => BooleanFromUnknown, BrandSchemaId: () => BrandSchemaId, Capitalize: () => Capitalize, Capitalized: () => Capitalized, CapitalizedSchemaId: () => CapitalizedSchemaId, Cause: () => Cause, CauseFromSelf: () => CauseFromSelf, Char: () => Char, Chunk: () => Chunk, ChunkFromSelf: () => ChunkFromSelf, Class: () => Class6, Config: () => Config, Data: () => Data, DataFromSelf: () => DataFromSelf, Date: () => Date$, DateFromNumber: () => DateFromNumber, DateFromSelf: () => DateFromSelf, DateFromSelfSchemaId: () => DateFromSelfSchemaId2, DateFromString: () => DateFromString, DateTimeUtc: () => DateTimeUtc, DateTimeUtcFromDate: () => DateTimeUtcFromDate, DateTimeUtcFromNumber: () => DateTimeUtcFromNumber, DateTimeUtcFromSelf: () => DateTimeUtcFromSelf, DateTimeZoned: () => DateTimeZoned, DateTimeZonedFromSelf: () => DateTimeZonedFromSelf, Defect: () => Defect, Duration: () => Duration, DurationFromMillis: () => DurationFromMillis, DurationFromNanos: () => DurationFromNanos, DurationFromSelf: () => DurationFromSelf, Either: () => Either, EitherFromSelf: () => EitherFromSelf, EitherFromUnion: () => EitherFromUnion, EndsWithSchemaId: () => EndsWithSchemaId, Enums: () => Enums2, Exit: () => Exit, ExitFromSelf: () => ExitFromSelf, FiberId: () => FiberId, FiberIdFromSelf: () => FiberIdFromSelf, Finite: () => Finite, FiniteSchemaId: () => FiniteSchemaId2, FromPropertySignature: () => FromPropertySignature, GreaterThanBigDecimalSchemaId: () => GreaterThanBigDecimalSchemaId, GreaterThanBigIntSchemaId: () => GreaterThanBigIntSchemaId, GreaterThanDateSchemaId: () => GreaterThanDateSchemaId, GreaterThanDurationSchemaId: () => GreaterThanDurationSchemaId, GreaterThanOrEqualToBigDecimalSchemaId: () => GreaterThanOrEqualToBigDecimalSchemaId, GreaterThanOrEqualToBigIntSchemaId: () => GreaterThanOrEqualToBigIntSchemaId2, GreaterThanOrEqualToDateSchemaId: () => GreaterThanOrEqualToDateSchemaId, GreaterThanOrEqualToDurationSchemaId: () => GreaterThanOrEqualToDurationSchemaId, GreaterThanOrEqualToSchemaId: () => GreaterThanOrEqualToSchemaId2, GreaterThanSchemaId: () => GreaterThanSchemaId2, HashMap: () => HashMap, HashMapFromSelf: () => HashMapFromSelf, HashSet: () => HashSet, HashSetFromSelf: () => HashSetFromSelf, IncludesSchemaId: () => IncludesSchemaId, InstanceOfSchemaId: () => InstanceOfSchemaId, Int: () => Int, IntSchemaId: () => IntSchemaId2, ItemsCountSchemaId: () => ItemsCountSchemaId2, JsonNumber: () => JsonNumber, JsonNumberSchemaId: () => JsonNumberSchemaId2, LengthSchemaId: () => LengthSchemaId2, LessThanBigDecimalSchemaId: () => LessThanBigDecimalSchemaId, LessThanBigIntSchemaId: () => LessThanBigIntSchemaId2, LessThanDateSchemaId: () => LessThanDateSchemaId, LessThanDurationSchemaId: () => LessThanDurationSchemaId, LessThanOrEqualToBigDecimalSchemaId: () => LessThanOrEqualToBigDecimalSchemaId, LessThanOrEqualToBigIntSchemaId: () => LessThanOrEqualToBigIntSchemaId2, LessThanOrEqualToDateSchemaId: () => LessThanOrEqualToDateSchemaId, LessThanOrEqualToDurationSchemaId: () => LessThanOrEqualToDurationSchemaId, LessThanOrEqualToSchemaId: () => LessThanOrEqualToSchemaId2, LessThanSchemaId: () => LessThanSchemaId2, List: () => List, ListFromSelf: () => ListFromSelf, Literal: () => Literal2, Lowercase: () => Lowercase, Lowercased: () => Lowercased, LowercasedSchemaId: () => LowercasedSchemaId, Map: () => map14, MapFromRecord: () => MapFromRecord, MapFromSelf: () => MapFromSelf, MaxItemsSchemaId: () => MaxItemsSchemaId2, MaxLengthSchemaId: () => MaxLengthSchemaId2, MinItemsSchemaId: () => MinItemsSchemaId2, MinLengthSchemaId: () => MinLengthSchemaId2, MultipleOfSchemaId: () => MultipleOfSchemaId, Negative: () => Negative, NegativeBigDecimalFromSelf: () => NegativeBigDecimalFromSelf, NegativeBigDecimalSchemaId: () => NegativeBigDecimalSchemaId, NegativeBigInt: () => NegativeBigInt, NegativeBigIntFromSelf: () => NegativeBigIntFromSelf, Never: () => Never, NonEmptyArray: () => NonEmptyArray, NonEmptyArrayEnsure: () => NonEmptyArrayEnsure, NonEmptyChunk: () => NonEmptyChunk, NonEmptyChunkFromSelf: () => NonEmptyChunkFromSelf, NonEmptyString: () => NonEmptyString, NonEmptyTrimmedString: () => NonEmptyTrimmedString, NonNaN: () => NonNaN, NonNaNSchemaId: () => NonNaNSchemaId2, NonNegative: () => NonNegative, NonNegativeBigDecimalFromSelf: () => NonNegativeBigDecimalFromSelf, NonNegativeBigDecimalSchemaId: () => NonNegativeBigDecimalSchemaId, NonNegativeBigInt: () => NonNegativeBigInt, NonNegativeBigIntFromSelf: () => NonNegativeBigIntFromSelf, NonNegativeInt: () => NonNegativeInt, NonPositive: () => NonPositive, NonPositiveBigDecimalFromSelf: () => NonPositiveBigDecimalFromSelf, NonPositiveBigDecimalSchemaId: () => NonPositiveBigDecimalSchemaId, NonPositiveBigInt: () => NonPositiveBigInt, NonPositiveBigIntFromSelf: () => NonPositiveBigIntFromSelf, Not: () => Not, Null: () => Null, NullOr: () => NullOr, NullishOr: () => NullishOr, Number: () => Number$, NumberFromString: () => NumberFromString, Object: () => Object$, Option: () => Option, OptionFromNonEmptyTrimmedString: () => OptionFromNonEmptyTrimmedString, OptionFromNullOr: () => OptionFromNullOr, OptionFromNullishOr: () => OptionFromNullishOr, OptionFromSelf: () => OptionFromSelf, OptionFromUndefinedOr: () => OptionFromUndefinedOr, PatternSchemaId: () => PatternSchemaId, Positive: () => Positive, PositiveBigDecimalFromSelf: () => PositiveBigDecimalFromSelf, PositiveBigDecimalSchemaId: () => PositiveBigDecimalSchemaId, PositiveBigInt: () => PositiveBigInt, PositiveBigIntFromSelf: () => PositiveBigIntFromSelf, PropertyKey: () => PropertyKey$, PropertySignatureDeclaration: () => PropertySignatureDeclaration, PropertySignatureTransformation: () => PropertySignatureTransformation2, PropertySignatureTypeId: () => PropertySignatureTypeId, ReadonlyMap: () => ReadonlyMap, ReadonlyMapFromRecord: () => ReadonlyMapFromRecord, ReadonlyMapFromSelf: () => ReadonlyMapFromSelf, ReadonlySet: () => ReadonlySet, ReadonlySetFromSelf: () => ReadonlySetFromSelf, Record: () => Record, Redacted: () => Redacted, RedactedFromSelf: () => RedactedFromSelf, RefineSchemaId: () => RefineSchemaId, Set: () => set5, SetFromSelf: () => SetFromSelf, SortedSet: () => SortedSet, SortedSetFromSelf: () => SortedSetFromSelf, StartsWithSchemaId: () => StartsWithSchemaId, String: () => String$, StringFromBase64: () => StringFromBase64, StringFromBase64Url: () => StringFromBase64Url, StringFromHex: () => StringFromHex, StringFromUriComponent: () => StringFromUriComponent, Struct: () => Struct, Symbol: () => Symbol$, SymbolFromSelf: () => SymbolFromSelf, TaggedClass: () => TaggedClass2, TaggedError: () => TaggedError2, TaggedRequest: () => TaggedRequest, TaggedStruct: () => TaggedStruct, TemplateLiteral: () => TemplateLiteral2, TemplateLiteralParser: () => TemplateLiteralParser, TimeZone: () => TimeZone, TimeZoneFromSelf: () => TimeZoneFromSelf, TimeZoneNamed: () => TimeZoneNamed, TimeZoneNamedFromSelf: () => TimeZoneNamedFromSelf, TimeZoneOffset: () => TimeZoneOffset, TimeZoneOffsetFromSelf: () => TimeZoneOffsetFromSelf, ToPropertySignature: () => ToPropertySignature, Trim: () => Trim, Trimmed: () => Trimmed, TrimmedSchemaId: () => TrimmedSchemaId, Tuple: () => Tuple, TypeId: () => TypeId15, ULID: () => ULID, ULIDSchemaId: () => ULIDSchemaId, URL: () => URL$, URLFromSelf: () => URLFromSelf, UUID: () => UUID, UUIDSchemaId: () => UUIDSchemaId, Uint8: () => Uint8, Uint8Array: () => Uint8Array$, Uint8ArrayFromBase64: () => Uint8ArrayFromBase64, Uint8ArrayFromBase64Url: () => Uint8ArrayFromBase64Url, Uint8ArrayFromHex: () => Uint8ArrayFromHex, Uint8ArrayFromSelf: () => Uint8ArrayFromSelf, Uncapitalize: () => Uncapitalize, Uncapitalized: () => Uncapitalized, UncapitalizedSchemaId: () => UncapitalizedSchemaId, Undefined: () => Undefined, UndefinedOr: () => UndefinedOr, Union: () => Union2, UniqueSymbolFromSelf: () => UniqueSymbolFromSelf, Unknown: () => Unknown, Uppercase: () => Uppercase, Uppercased: () => Uppercased, UppercasedSchemaId: () => UppercasedSchemaId, ValidDateFromSelf: () => ValidDateFromSelf, ValidDateSchemaId: () => ValidDateSchemaId, Void: () => Void, annotations: () => annotations2, asSchema: () => asSchema, asSerializable: () => asSerializable, asSerializableWithResult: () => asSerializableWithResult, asWithResult: () => asWithResult, asserts: () => asserts, attachPropertySignature: () => attachPropertySignature, between: () => between5, betweenBigDecimal: () => betweenBigDecimal, betweenBigInt: () => betweenBigInt, betweenDate: () => betweenDate, betweenDuration: () => betweenDuration, brand: () => brand, capitalized: () => capitalized, clamp: () => clamp8, clampBigDecimal: () => clampBigDecimal, clampBigInt: () => clampBigInt, clampDuration: () => clampDuration, compose: () => compose2, declare: () => declare, decode: () => decode5, decodeEither: () => decodeEither, decodeOption: () => decodeOption, decodePromise: () => decodePromise, decodeSync: () => decodeSync, decodeUnknown: () => decodeUnknown2, decodeUnknownEither: () => decodeUnknownEither2, decodeUnknownOption: () => decodeUnknownOption, decodeUnknownPromise: () => decodeUnknownPromise, decodeUnknownSync: () => decodeUnknownSync, deserialize: () => deserialize, deserializeExit: () => deserializeExit, deserializeFailure: () => deserializeFailure, deserializeSuccess: () => deserializeSuccess, element: () => element, encode: () => encode4, encodeEither: () => encodeEither, encodeOption: () => encodeOption, encodePromise: () => encodePromise, encodeSync: () => encodeSync, encodeUnknown: () => encodeUnknown2, encodeUnknownEither: () => encodeUnknownEither2, encodeUnknownOption: () => encodeUnknownOption, encodeUnknownPromise: () => encodeUnknownPromise, encodeUnknownSync: () => encodeUnknownSync, encodedBoundSchema: () => encodedBoundSchema, encodedSchema: () => encodedSchema, endsWith: () => endsWith, equivalence: () => equivalence2, exitSchema: () => exitSchema, extend: () => extend2, failureSchema: () => failureSchema, filter: () => filter7, filterEffect: () => filterEffect, finite: () => finite, format: () => format6, fromBrand: () => fromBrand, fromKey: () => fromKey, getClassTag: () => getClassTag, getNumberIndexedAccess: () => getNumberIndexedAccess2, greaterThan: () => greaterThan6, greaterThanBigDecimal: () => greaterThanBigDecimal, greaterThanBigInt: () => greaterThanBigInt, greaterThanDate: () => greaterThanDate, greaterThanDuration: () => greaterThanDuration, greaterThanOrEqualTo: () => greaterThanOrEqualTo5, greaterThanOrEqualToBigDecimal: () => greaterThanOrEqualToBigDecimal, greaterThanOrEqualToBigInt: () => greaterThanOrEqualToBigInt, greaterThanOrEqualToDate: () => greaterThanOrEqualToDate, greaterThanOrEqualToDuration: () => greaterThanOrEqualToDuration, head: () => head3, headNonEmpty: () => headNonEmpty3, headOrElse: () => headOrElse, includes: () => includes, instanceOf: () => instanceOf, int: () => int, is: () => is, isPropertySignature: () => isPropertySignature, isSchema: () => isSchema, itemsCount: () => itemsCount, keyof: () => keyof2, length: () => length, lessThan: () => lessThan5, lessThanBigDecimal: () => lessThanBigDecimal, lessThanBigInt: () => lessThanBigInt, lessThanDate: () => lessThanDate, lessThanDuration: () => lessThanDuration, lessThanOrEqualTo: () => lessThanOrEqualTo5, lessThanOrEqualToBigDecimal: () => lessThanOrEqualToBigDecimal, lessThanOrEqualToBigInt: () => lessThanOrEqualToBigInt, lessThanOrEqualToDate: () => lessThanOrEqualToDate, lessThanOrEqualToDuration: () => lessThanOrEqualToDuration, lowercased: () => lowercased, make: () => make34, makePropertySignature: () => makePropertySignature, maxItems: () => maxItems, maxLength: () => maxLength, minItems: () => minItems, minLength: () => minLength, multipleOf: () => multipleOf, mutable: () => mutable2, negative: () => negative, negativeBigDecimal: () => negativeBigDecimal, negativeBigInt: () => negativeBigInt, nonEmptyString: () => nonEmptyString2, nonNaN: () => nonNaN, nonNegative: () => nonNegative, nonNegativeBigDecimal: () => nonNegativeBigDecimal, nonNegativeBigInt: () => nonNegativeBigInt, nonPositive: () => nonPositive, nonPositiveBigDecimal: () => nonPositiveBigDecimal, nonPositiveBigInt: () => nonPositiveBigInt, omit: () => omit4, optional: () => optional, optionalElement: () => optionalElement, optionalToOptional: () => optionalToOptional, optionalToRequired: () => optionalToRequired, optionalWith: () => optionalWith, parseJson: () => parseJson, parseNumber: () => parseNumber, partial: () => partial2, partialWith: () => partialWith, pattern: () => pattern, pick: () => pick4, pickLiteral: () => pickLiteral, pluck: () => pluck, positive: () => positive, positiveBigDecimal: () => positiveBigDecimal, positiveBigInt: () => positiveBigInt, propertySignature: () => propertySignature, rename: () => rename2, required: () => required2, requiredToOptional: () => requiredToOptional, serializableSchema: () => serializableSchema, serialize: () => serialize, serializeExit: () => serializeExit, serializeFailure: () => serializeFailure, serializeSuccess: () => serializeSuccess, split: () => split2, startsWith: () => startsWith, successSchema: () => successSchema, suspend: () => suspend5, symbolSerializable: () => symbolSerializable, symbolWithResult: () => symbolWithResult, tag: () => tag, transform: () => transform2, transformLiteral: () => transformLiteral, transformLiterals: () => transformLiterals, transformOrFail: () => transformOrFail, trimmed: () => trimmed, typeSchema: () => typeSchema, uncapitalized: () => uncapitalized, uppercased: () => uppercased, validDate: () => validDate, validate: () => validate4, validateEither: () => validateEither2, validateOption: () => validateOption, validatePromise: () => validatePromise, validateSync: () => validateSync, withConstructorDefault: () => withConstructorDefault, withDecodingDefault: () => withDecodingDefault, withDefaults: () => withDefaults }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Struct.js var pick3 = /* @__PURE__ */ dual((args2) => isObject(args2[0]), (s, ...keys5) => { const out = {}; for (const k of keys5) { if (k in s) { out[k] = s[k]; } } return out; }); var omit3 = /* @__PURE__ */ dual((args2) => isObject(args2[0]), (s, ...keys5) => { const out = { ...s }; for (const k of keys5) { delete out[k]; } return out; }); // ../../node_modules/.pnpm/effect@3.12.10/node_modules/effect/dist/esm/Schema.js var TypeId15 = /* @__PURE__ */ Symbol.for("effect/Schema"); var make34 = (ast) => class SchemaClass { [TypeId15] = variance5; static ast = ast; static annotations(annotations3) { return make34(mergeSchemaAnnotations(this.ast, annotations3)); } static pipe() { return pipeArguments(this, arguments); } static toString() { return String(ast); } static Type; static Encoded; static Context; static [TypeId15] = variance5; }; var variance5 = { /* c8 ignore next */ _A: (_) => _, /* c8 ignore next */ _I: (_) => _, /* c8 ignore next */ _R: (_) => _ }; var builtInAnnotations = { schemaId: SchemaIdAnnotationId, message: MessageAnnotationId, missingMessage: MissingMessageAnnotationId, identifier: IdentifierAnnotationId, title: TitleAnnotationId, description: DescriptionAnnotationId, examples: ExamplesAnnotationId, default: DefaultAnnotationId, documentation: DocumentationAnnotationId, jsonSchema: JSONSchemaAnnotationId, arbitrary: ArbitraryAnnotationId, pretty: PrettyAnnotationId, equivalence: EquivalenceAnnotationId, concurrency: ConcurrencyAnnotationId, batching: BatchingAnnotationId, parseIssueTitle: ParseIssueTitleAnnotationId, parseOptions: ParseOptionsAnnotationId, decodingFallback: DecodingFallbackAnnotationId }; var toASTAnnotations = (annotations3) => { if (!annotations3) { return {}; } const out = { ...annotations3 }; for (const key in builtInAnnotations) { if (key in annotations3) { const id = builtInAnnotations[key]; out[id] = annotations3[key]; delete out[key]; } } return out; }; var mergeSchemaAnnotations = (ast, annotations3) => annotations(ast, toASTAnnotations(annotations3)); var asSchema = (schema) => schema; var format6 = (schema) => String(schema.ast); var encodedSchema = (schema) => make34(encodedAST(schema.ast)); var encodedBoundSchema = (schema) => make34(encodedBoundAST(schema.ast)); var typeSchema = (schema) => make34(typeAST(schema.ast)); var encodeUnknown2 = (schema, options) => { const encodeUnknown3 = encodeUnknown(schema, options); return (u, overrideOptions) => mapError3(encodeUnknown3(u, overrideOptions), parseError); }; var encodeUnknownEither2 = (schema, options) => { const encodeUnknownEither3 = encodeUnknownEither(schema, options); return (u, overrideOptions) => mapLeft(encodeUnknownEither3(u, overrideOptions), parseError); }; var encodeUnknownPromise = (schema, options) => { const parser = encodeUnknown2(schema, options); return (u, overrideOptions) => runPromise(parser(u, overrideOptions)); }; var encode4 = encodeUnknown2; var encodeEither = encodeUnknownEither2; var encodePromise = encodeUnknownPromise; var decodeUnknown2 = (schema, options) => { const decodeUnknown3 = decodeUnknown(schema, options); return (u, overrideOptions) => mapError3(decodeUnknown3(u, overrideOptions), parseError); }; var decodeUnknownEither2 = (schema, options) => { const decodeUnknownEither3 = decodeUnknownEither(schema, options); return (u, overrideOptions) => mapLeft(decodeUnknownEither3(u, overrideOptions), parseError); }; var decodeUnknownPromise = (schema, options) => { const parser = decodeUnknown2(schema, options); return (u, overrideOptions) => runPromise(parser(u, overrideOptions)); }; var decode5 = decodeUnknown2; var decodeEither = decodeUnknownEither2; var decodePromise = decodeUnknownPromise; var validate4 = (schema, options) => { const validate5 = validate3(schema, options); return (u, overrideOptions) => mapError3(validate5(u, overrideOptions), parseError); }; var validateEither2 = (schema, options) => { const validateEither3 = validateEither(schema, options); return (u, overrideOptions) => mapLeft(validateEither3(u, overrideOptions), parseError); }; var validatePromise = (schema, options) => { const parser = validate4(schema, options); return (u, overrideOptions) => runPromise(parser(u, overrideOptions)); }; var isSchema = (u) => hasProperty(u, TypeId15) && isObject(u[TypeId15]); var getDefaultLiteralAST = (literals) => isMembers(literals) ? Union.make(mapMembers(literals, (literal2) => new Literal(literal2))) : new Literal(literals[0]); var makeLiteralClass = (literals, ast = getDefaultLiteralAST(literals)) => class LiteralClass extends make34(ast) { static annotations(annotations3) { return makeLiteralClass(this.literals, mergeSchemaAnnotations(this.ast, annotations3)); } static literals = [...literals]; }; function Literal2(...literals) { return isNonEmptyReadonlyArray(literals) ? makeLiteralClass(literals) : Never; } var pickLiteral = (...literals) => (_schema) => Literal2(...literals); var UniqueSymbolFromSelf = (symbol3) => make34(new UniqueSymbol(symbol3)); var getDefaultEnumsAST = (enums) => new Enums(Object.keys(enums).filter((key) => typeof enums[enums[key]] !== "number").map((key) => [key, enums[key]])); var makeEnumsClass = (enums, ast = getDefaultEnumsAST(enums)) => class EnumsClass extends make34(ast) { static annotations(annotations3) { return makeEnumsClass(this.enums, mergeSchemaAnnotations(this.ast, annotations3)); } static enums = { ...enums }; }; var Enums2 = (enums) => makeEnumsClass(enums); var TemplateLiteral2 = (...[head4, ...tail]) => { const spans = []; let h = ""; let ts = tail; if (isSchema(head4)) { if (isLiteral(head4.ast)) { h = String(head4.ast.literal); } else { ts = [head4, ...ts]; } } else { h = String(head4); } for (let i = 0; i < ts.length; i++) { const item = ts[i]; if (isSchema(item)) { if (i < ts.length - 1) { const next = ts[i + 1]; if (isSchema(next)) { if (isLiteral(next.ast)) { spans.push(new TemplateLiteralSpan(item.ast, String(next.ast.literal))); i++; continue; } } else { spans.push(new TemplateLiteralSpan(item.ast, String(next))); i++; continue; } } spans.push(new TemplateLiteralSpan(item.ast, "")); } else { spans.push(new TemplateLiteralSpan(new Literal(item), "")); } } if (isNonEmptyArray2(spans)) { return make34(new TemplateLiteral(h, spans)); } else { return make34(new TemplateLiteral("", [new TemplateLiteralSpan(new Literal(h), "")])); } }; function getTemplateLiteralParserCoercedElement(encoded, schema) { const ast = encoded.ast; switch (ast._tag) { case "Literal": { const literal2 = ast.literal; if (!isString(literal2)) { const s = String(literal2); return transform2(Literal2(s), schema, { strict: true, decode: () => literal2, encode: () => s }); } break; } case "NumberKeyword": return compose2(NumberFromString, schema); case "Union": { const members = []; let hasCoercions = false; for (const member of ast.types) { const schema2 = make34(member); const encoded2 = encodedSchema(schema2); const coerced = getTemplateLiteralParserCoercedElement(encoded2, schema2); if (coerced) { hasCoercions = true; } members.push(coerced ?? schema2); } return hasCoercions ? compose2(Union2(...members), schema) : schema; } } } var TemplateLiteralParser = (...params) => { const encodedSchemas = []; const elements = []; const schemas = []; let coerced = false; for (let i = 0; i < params.length; i++) { const param = params[i]; const schema = isSchema(param) ? param : Literal2(param); schemas.push(schema); const encoded = encodedSchema(schema); encodedSchemas.push(encoded); const element2 = getTemplateLiteralParserCoercedElement(encoded, schema); if (element2) { elements.push(element2); coerced = true; } else { elements.push(schema); } } const from = TemplateLiteral2(...encodedSchemas); const re = getTemplateLiteralCapturingRegExp(from.ast); let to = Tuple(...elements); if (coerced) { to = to.annotations({ [AutoTitleAnnotationId]: format6(Tuple(...schemas)) }); } return class TemplateLiteralParserClass extends transformOrFail(from, to, { strict: false, decode: (s, _, ast) => { const match10 = re.exec(s); return match10 ? succeed6(match10.slice(1, params.length + 1)) : fail6(new Type2(ast, s, `${re.source}: no match for ${JSON.stringify(s)}`)); }, encode: (tuple2) => succeed6(tuple2.join("")) }) { static params = params.slice(); }; }; var declareConstructor = (typeParameters, options, annotations3) => make34(new Declaration(typeParameters.map((tp) => tp.ast), (...typeParameters2) => options.decode(...typeParameters2.map(make34)), (...typeParameters2) => options.encode(...typeParameters2.map(make34)), toASTAnnotations(annotations3))); var declarePrimitive = (is2, annotations3) => { const decodeUnknown3 = () => (input, _, ast) => is2(input) ? succeed6(input) : fail6(new Type2(ast, input)); const encodeUnknown3 = decodeUnknown3; return make34(new Declaration([], decodeUnknown3, encodeUnknown3, toASTAnnotations(annotations3))); }; var declare = function() { if (Array.isArray(arguments[0])) { const typeParameters = arguments[0]; const options = arguments[1]; const annotations4 = arguments[2]; return declareConstructor(typeParameters, options, annotations4); } const is2 = arguments[0]; const annotations3 = arguments[1]; return declarePrimitive(is2, annotations3); }; var BrandSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Brand"); var fromBrand = (constructor, annotations3) => (self) => makeBrandClass(new Refinement(self.ast, function predicate(a, _, ast) { const either4 = constructor.either(a); return isLeft2(either4) ? some2(new Type2(ast, a, either4.left.map((v) => v.message).join(", "))) : none2(); }, toASTAnnotations({ schemaId: BrandSchemaId, [BrandSchemaId]: { constructor }, ...annotations3 }))); var InstanceOfSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/InstanceOf"); var instanceOf = (constructor, annotations3) => declare((u) => u instanceof constructor, { title: constructor.name, description: `an instance of ${constructor.name}`, pretty: () => String, schemaId: InstanceOfSchemaId, [InstanceOfSchemaId]: { constructor }, ...annotations3 }); var Undefined = class extends (/* @__PURE__ */ make34(undefinedKeyword)) { }; var Void = class extends (/* @__PURE__ */ make34(voidKeyword)) { }; var Null = class extends (/* @__PURE__ */ make34($null)) { }; var Never = class extends (/* @__PURE__ */ make34(neverKeyword)) { }; var Unknown = class extends (/* @__PURE__ */ make34(unknownKeyword)) { }; var Any = class extends (/* @__PURE__ */ make34(anyKeyword)) { }; var BigIntFromSelf = class extends (/* @__PURE__ */ make34(bigIntKeyword)) { }; var SymbolFromSelf = class extends (/* @__PURE__ */ make34(symbolKeyword)) { }; var String$ = class extends (/* @__PURE__ */ make34(stringKeyword)) { }; var Number$ = class extends (/* @__PURE__ */ make34(numberKeyword)) { }; var Boolean$ = class extends (/* @__PURE__ */ make34(booleanKeyword)) { }; var Object$ = class extends (/* @__PURE__ */ make34(objectKeyword)) { }; var getDefaultUnionAST = (members) => Union.make(members.map((m) => m.ast)); var makeUnionClass = (members, ast = getDefaultUnionAST(members)) => class UnionClass extends make34(ast) { static annotations(annotations3) { return makeUnionClass(this.members, mergeSchemaAnnotations(this.ast, annotations3)); } static members = [...members]; }; function Union2(...members) { return isMembers(members) ? makeUnionClass(members) : isNonEmptyReadonlyArray(members) ? members[0] : Never; } var NullOr = (self) => Union2(self, Null); var UndefinedOr = (self) => Union2(self, Undefined); var NullishOr = (self) => Union2(self, Null, Undefined); var keyof2 = (self) => make34(keyof(self.ast)); var element = (self) => new ElementImpl(new OptionalType(self.ast, false), self); var optionalElement = (self) => new ElementImpl(new OptionalType(self.ast, true), self); var ElementImpl = class _ElementImpl { ast; from; [TypeId15]; _Token; constructor(ast, from) { this.ast = ast; this.from = from; } annotations(annotations3) { return new _ElementImpl(new OptionalType(this.ast.type, this.ast.isOptional, { ...this.ast.annotations, ...toASTAnnotations(annotations3) }), this.from); } toString() { return `${this.ast.type}${this.ast.isOptional ? "?" : ""}`; } }; var getDefaultTupleTypeAST = (elements, rest) => new TupleType(elements.map((el) => isSchema(el) ? new OptionalType(el.ast, false) : el.ast), rest.map((el) => isSchema(el) ? new Type(el.ast) : el.ast), true); var makeTupleTypeClass = (elements, rest, ast = getDefaultTupleTypeAST(elements, rest)) => class TupleTypeClass extends make34(ast) { static annotations(annotations3) { return makeTupleTypeClass(this.elements, this.rest, mergeSchemaAnnotations(this.ast, annotations3)); } static elements = [...elements]; static rest = [...rest]; }; function Tuple(...args2) { return Array.isArray(args2[0]) ? makeTupleTypeClass(args2[0], args2.slice(1)) : makeTupleTypeClass(args2, []); } var makeArrayClass = (value3, ast) => class ArrayClass extends makeTupleTypeClass([], [value3], ast) { static annotations(annotations3) { return makeArrayClass(this.value, mergeSchemaAnnotations(this.ast, annotations3)); } static value = value3; }; var Array$ = (value3) => makeArrayClass(value3); var makeNonEmptyArrayClass = (value3, ast) => class NonEmptyArrayClass extends makeTupleTypeClass([value3], [value3], ast) { static annotations(annotations3) { return makeNonEmptyArrayClass(this.value, mergeSchemaAnnotations(this.ast, annotations3)); } static value = value3; }; var NonEmptyArray = (value3) => makeNonEmptyArrayClass(value3); var ArrayEnsure = (value3) => { const value_ = asSchema(value3); return class ArrayEnsureClass extends transform2(Union2(value_, Array$(value_)), Array$(typeSchema(value_)), { strict: true, decode: ensure, encode: (arr) => arr.length === 1 ? arr[0] : arr }) { }; }; var NonEmptyArrayEnsure = (value3) => { const value_ = asSchema(value3); return class NonEmptyArrayEnsureClass extends transform2(Union2(value_, NonEmptyArray(value_)), NonEmptyArray(typeSchema(value_)), { strict: true, decode: ensure, encode: (arr) => arr.length === 1 ? arr[0] : arr }) { }; }; var formatPropertySignatureToken = (isOptional) => isOptional ? '"?:"' : '":"'; var PropertySignatureDeclaration = class extends OptionalType { isReadonly; defaultValue; /** * @since 3.10.0 */ _tag = "PropertySignatureDeclaration"; constructor(type, isOptional, isReadonly, annotations3, defaultValue) { super(type, isOptional, annotations3); this.isReadonly = isReadonly; this.defaultValue = defaultValue; } /** * @since 3.10.0 */ toString() { const token = formatPropertySignatureToken(this.isOptional); const type = String(this.type); return `PropertySignature<${token}, ${type}, never, ${token}, ${type}>`; } }; var FromPropertySignature = class extends OptionalType { isReadonly; fromKey; constructor(type, isOptional, isReadonly, annotations3, fromKey2) { super(type, isOptional, annotations3); this.isReadonly = isReadonly; this.fromKey = fromKey2; } }; var ToPropertySignature = class extends OptionalType { isReadonly; defaultValue; constructor(type, isOptional, isReadonly, annotations3, defaultValue) { super(type, isOptional, annotations3); this.isReadonly = isReadonly; this.defaultValue = defaultValue; } }; var formatPropertyKey2 = (p) => { if (p === void 0) { return "never"; } if (isString(p)) { return JSON.stringify(p); } return String(p); }; var PropertySignatureTransformation2 = class { from; to; decode; encode; /** * @since 3.10.0 */ _tag = "PropertySignatureTransformation"; constructor(from, to, decode6, encode5) { this.from = from; this.to = to; this.decode = decode6; this.encode = encode5; } /** * @since 3.10.0 */ toString() { return `PropertySignature<${formatPropertySignatureToken(this.to.isOptional)}, ${this.to.type}, ${formatPropertyKey2(this.from.fromKey)}, ${formatPropertySignatureToken(this.from.isOptional)}, ${this.from.type}>`; } }; var mergeSignatureAnnotations = (ast, annotations3) => { switch (ast._tag) { case "PropertySignatureDeclaration": { return new PropertySignatureDeclaration(ast.type, ast.isOptional, ast.isReadonly, { ...ast.annotations, ...annotations3 }, ast.defaultValue); } case "PropertySignatureTransformation": { return new PropertySignatureTransformation2(new FromPropertySignature(ast.from.type, ast.from.isOptional, ast.from.isReadonly, ast.from.annotations), new ToPropertySignature(ast.to.type, ast.to.isOptional, ast.to.isReadonly, { ...ast.to.annotations, ...annotations3 }, ast.to.defaultValue), ast.decode, ast.encode); } } }; var PropertySignatureTypeId = /* @__PURE__ */ Symbol.for("effect/PropertySignature"); var isPropertySignature = (u) => hasProperty(u, PropertySignatureTypeId); var PropertySignatureImpl = class _PropertySignatureImpl { ast; [TypeId15]; [PropertySignatureTypeId] = null; _TypeToken; _Key; _EncodedToken; _HasDefault; constructor(ast) { this.ast = ast; } pipe() { return pipeArguments(this, arguments); } annotations(annotations3) { return new _PropertySignatureImpl(mergeSignatureAnnotations(this.ast, toASTAnnotations(annotations3))); } toString() { return String(this.ast); } }; var makePropertySignature = (ast) => new PropertySignatureImpl(ast); var PropertySignatureWithFromImpl = class _PropertySignatureWithFromImpl extends PropertySignatureImpl { from; constructor(ast, from) { super(ast); this.from = from; } annotations(annotations3) { return new _PropertySignatureWithFromImpl(mergeSignatureAnnotations(this.ast, toASTAnnotations(annotations3)), this.from); } }; var propertySignature = (self) => new PropertySignatureWithFromImpl(new PropertySignatureDeclaration(self.ast, false, true, {}, void 0), self); var withConstructorDefault = /* @__PURE__ */ dual(2, (self, defaultValue) => { const ast = self.ast; switch (ast._tag) { case "PropertySignatureDeclaration": return makePropertySignature(new PropertySignatureDeclaration(ast.type, ast.isOptional, ast.isReadonly, ast.annotations, defaultValue)); case "PropertySignatureTransformation": return makePropertySignature(new PropertySignatureTransformation2(ast.from, new ToPropertySignature(ast.to.type, ast.to.isOptional, ast.to.isReadonly, ast.to.annotations, defaultValue), ast.decode, ast.encode)); } }); var applyDefaultValue = (o, defaultValue) => match2(o, { onNone: () => some2(defaultValue()), onSome: (value3) => some2(value3 === void 0 ? defaultValue() : value3) }); var pruneUndefined2 = (ast) => pruneUndefined(ast, pruneUndefined2, (ast2) => { const pruned = pruneUndefined2(ast2.to); if (pruned) { return new Transformation(ast2.from, pruned, ast2.transformation); } }); var withDecodingDefault = /* @__PURE__ */ dual(2, (self, defaultValue) => { const ast = self.ast; switch (ast._tag) { case "PropertySignatureDeclaration": { const to = typeAST(ast.type); return makePropertySignature(new PropertySignatureTransformation2(new FromPropertySignature(ast.type, ast.isOptional, ast.isReadonly, ast.annotations), new ToPropertySignature(pruneUndefined2(to) ?? to, false, true, {}, ast.defaultValue), (o) => applyDefaultValue(o, defaultValue), identity)); } case "PropertySignatureTransformation": { const to = ast.to.type; return makePropertySignature(new PropertySignatureTransformation2(ast.from, new ToPropertySignature(pruneUndefined2(to) ?? to, false, ast.to.isReadonly, ast.to.annotations, ast.to.defaultValue), (o) => applyDefaultValue(ast.decode(o), defaultValue), ast.encode)); } } }); var withDefaults = /* @__PURE__ */ dual(2, (self, defaults) => self.pipe(withDecodingDefault(defaults.decoding), withConstructorDefault(defaults.constructor))); var fromKey = /* @__PURE__ */ dual(2, (self, key) => { const ast = self.ast; switch (ast._tag) { case "PropertySignatureDeclaration": { return makePropertySignature(new PropertySignatureTransformation2(new FromPropertySignature(ast.type, ast.isOptional, ast.isReadonly, ast.annotations, key), new ToPropertySignature(typeAST(ast.type), ast.isOptional, ast.isReadonly, {}, ast.defaultValue), identity, identity)); } case "PropertySignatureTransformation": return makePropertySignature(new PropertySignatureTransformation2(new FromPropertySignature(ast.from.type, ast.from.isOptional, ast.from.isReadonly, ast.from.annotations, key), ast.to, ast.decode, ast.encode)); } }); var optionalToRequired = (from, to, options) => makePropertySignature(new PropertySignatureTransformation2(new FromPropertySignature(from.ast, true, true, {}, void 0), new ToPropertySignature(to.ast, false, true, {}, void 0), (o) => some2(options.decode(o)), flatMap2(options.encode))); var requiredToOptional = (from, to, options) => makePropertySignature(new PropertySignatureTransformation2(new FromPropertySignature(from.ast, false, true, {}, void 0), new ToPropertySignature(to.ast, true, true, {}, void 0), flatMap2(options.decode), (o) => some2(options.encode(o)))); var optionalToOptional = (from, to, options) => makePropertySignature(new PropertySignatureTransformation2(new FromPropertySignature(from.ast, true, true, {}, void 0), new ToPropertySignature(to.ast, true, true, {}, void 0), options.decode, options.encode)); var optionalPropertySignatureAST = (self, options) => { const isExact = options?.exact; const defaultValue = options?.default; const isNullable2 = options?.nullable; const asOption = options?.as == "Option"; const asOptionEncode = options?.onNoneEncoding ? orElse2(options.onNoneEncoding) : identity; if (isExact) { if (defaultValue) { if (isNullable2) { return withConstructorDefault(optionalToRequired(NullOr(self), typeSchema(self), { decode: match2({ onNone: defaultValue, onSome: (a) => a === null ? defaultValue() : a }), encode: some2 }), defaultValue).ast; } else { return withConstructorDefault(optionalToRequired(self, typeSchema(self), { decode: match2({ onNone: defaultValue, onSome: identity }), encode: some2 }), defaultValue).ast; } } else if (asOption) { if (isNullable2) { return optionalToRequired(NullOr(self), OptionFromSelf(typeSchema(self)), { decode: filter(isNotNull), encode: asOptionEncode }).ast; } else { return optionalToRequired(self, OptionFromSelf(typeSchema(self)), { decode: identity, encode: identity }).ast; } } else { if (isNullable2) { return optionalToOptional(NullOr(self), typeSchema(self), { decode: filter(isNotNull), encode: identity }).ast; } else { return new PropertySignatureDeclaration(self.ast, true, true, {}, void 0); } } } else { if (defaultValue) { if (isNullable2) { return withConstructorDefault(optionalToRequired(NullishOr(self), typeSchema(self), { decode: match2({ onNone: defaultValue, onSome: (a) => a == null ? defaultValue() : a }), encode: some2 }), defaultValue).ast; } else { return withConstructorDefault(optionalToRequired(UndefinedOr(self), typeSchema(self), { decode: match2({ onNone: defaultValue, onSome: (a) => a === void 0 ? defaultValue() : a }), encode: some2 }), defaultValue).ast; } } else if (asOption) { if (isNullable2) { return optionalToRequired(NullishOr(self), OptionFromSelf(typeSchema(self)), { decode: filter((a) => a != null), encode: asOptionEncode }).ast; } else { return optionalToRequired(UndefinedOr(self), OptionFromSelf(typeSchema(self)), { decode: filter(isNotUndefined), encode: asOptionEncode }).ast; } } else { if (isNullable2) { return optionalToOptional(NullishOr(self), UndefinedOr(typeSchema(self)), { decode: filter(isNotNull), encode: identity }).ast; } else { return new PropertySignatureDeclaration(UndefinedOr(self).ast, true, true, {}, void 0); } } } }; var optional = (self) => { const ast = self.ast === undefinedKeyword || self.ast === neverKeyword ? undefinedKeyword : UndefinedOr(self).ast; return new PropertySignatureWithFromImpl(new PropertySignatureDeclaration(ast, true, true, {}, void 0), self); }; var optionalWith = /* @__PURE__ */ dual((args2) => isSchema(args2[0]), (self, options) => { return new PropertySignatureWithFromImpl(optionalPropertySignatureAST(self, options), self); }); var preserveMissingMessageAnnotation = /* @__PURE__ */ whiteListAnnotations([MissingMessageAnnotationId]); var getDefaultTypeLiteralAST = (fields, records) => { const ownKeys2 = ownKeys(fields); const pss = []; if (ownKeys2.length > 0) { const from = []; const to = []; const transformations = []; for (let i = 0; i < ownKeys2.length; i++) { const key = ownKeys2[i]; const field = fields[key]; if (isPropertySignature(field)) { const ast = field.ast; switch (ast._tag) { case "PropertySignatureDeclaration": { const type = ast.type; const isOptional = ast.isOptional; const toAnnotations = ast.annotations; from.push(new PropertySignature(key, type, isOptional, true, preserveMissingMessageAnnotation(ast))); to.push(new PropertySignature(key, typeAST(type), isOptional, true, toAnnotations)); pss.push(new PropertySignature(key, type, isOptional, true, toAnnotations)); break; } case "PropertySignatureTransformation": { const fromKey2 = ast.from.fromKey ?? key; from.push(new PropertySignature(fromKey2, ast.from.type, ast.from.isOptional, true, ast.from.annotations)); to.push(new PropertySignature(key, ast.to.type, ast.to.isOptional, true, ast.to.annotations)); transformations.push(new PropertySignatureTransformation(fromKey2, key, ast.decode, ast.encode)); break; } } } else { from.push(new PropertySignature(key, field.ast, false, true)); to.push(new PropertySignature(key, typeAST(field.ast), false, true)); pss.push(new PropertySignature(key, field.ast, false, true)); } } if (isNonEmptyReadonlyArray(transformations)) { const issFrom = []; const issTo = []; for (const r of records) { const { indexSignatures, propertySignatures } = record2(r.key.ast, r.value.ast); propertySignatures.forEach((ps) => { from.push(ps); to.push(new PropertySignature(ps.name, typeAST(ps.type), ps.isOptional, ps.isReadonly, ps.annotations)); }); indexSignatures.forEach((is2) => { issFrom.push(is2); issTo.push(new IndexSignature(is2.parameter, typeAST(is2.type), is2.isReadonly)); }); } return new Transformation(new TypeLiteral(from, issFrom, { [AutoTitleAnnotationId]: "Struct (Encoded side)" }), new TypeLiteral(to, issTo, { [AutoTitleAnnotationId]: "Struct (Type side)" }), new TypeLiteralTransformation(transformations)); } } const iss = []; for (const r of records) { const { indexSignatures, propertySignatures } = record2(r.key.ast, r.value.ast); propertySignatures.forEach((ps) => pss.push(ps)); indexSignatures.forEach((is2) => iss.push(is2)); } return new TypeLiteral(pss, iss); }; var lazilyMergeDefaults = (fields, out) => { const ownKeys2 = ownKeys(fields); for (const key of ownKeys2) { const field = fields[key]; if (out[key] === void 0 && isPropertySignature(field)) { const ast = field.ast; const defaultValue = ast._tag === "PropertySignatureDeclaration" ? ast.defaultValue : ast.to.defaultValue; if (defaultValue !== void 0) { out[key] = defaultValue(); } } } return out; }; var makeTypeLiteralClass = (fields, records, ast = getDefaultTypeLiteralAST(fields, records)) => { return class TypeLiteralClass extends make34(ast) { static annotations(annotations3) { return makeTypeLiteralClass(this.fields, this.records, mergeSchemaAnnotations(this.ast, annotations3)); } static fields = { ...fields }; static records = [...records]; static make = (props, options) => { const propsWithDefaults = lazilyMergeDefaults(fields, { ...props }); return getDisableValidationMakeOption(options) ? propsWithDefaults : validateSync(this)(propsWithDefaults); }; static pick(...keys5) { return Struct(pick3(fields, ...keys5)); } static omit(...keys5) { return Struct(omit3(fields, ...keys5)); } }; }; function Struct(fields, ...records) { return makeTypeLiteralClass(fields, records); } var tag = (tag2) => Literal2(tag2).pipe(propertySignature, withConstructorDefault(() => tag2)); var TaggedStruct = (value3, fields) => Struct({ _tag: tag(value3), ...fields }); var makeRecordClass = (key, value3, ast) => class RecordClass extends makeTypeLiteralClass({}, [{ key, value: value3 }], ast) { static annotations(annotations3) { return makeRecordClass(key, value3, mergeSchemaAnnotations(this.ast, annotations3)); } static key = key; static value = value3; }; var Record = (options) => makeRecordClass(options.key, options.value); var pick4 = (...keys5) => (self) => make34(pick(self.ast, keys5)); var omit4 = (...keys5) => (self) => make34(omit(self.ast, keys5)); var pluck = /* @__PURE__ */ dual(2, (schema, key) => { const ps = getPropertyKeyIndexedAccess(typeAST(schema.ast), key); const value3 = make34(ps.isOptional ? orUndefined(ps.type) : ps.type); return transform2(schema.pipe(pick4(key)), value3, { strict: true, decode: (a) => a[key], encode: (ak) => ps.isOptional && ak === void 0 ? {} : { [key]: ak } }); }); var makeBrandClass = (ast) => class BrandClass extends make34(ast) { static annotations(annotations3) { return makeBrandClass(mergeSchemaAnnotations(this.ast, annotations3)); } static make = (a, options) => { return getDisableValidationMakeOption(options) ? a : validateSync(this)(a); }; }; var brand = (brand2, annotations3) => (self) => { const annotation = match2(getBrandAnnotation(self.ast), { onNone: () => [brand2], onSome: (brands) => [...brands, brand2] }); const ast = annotations(self.ast, toASTAnnotations({ [BrandAnnotationId]: annotation, ...annotations3 })); return makeBrandClass(ast); }; var partial2 = (self) => make34(partial(self.ast)); var partialWith = /* @__PURE__ */ dual((args2) => isSchema(args2[0]), (self, options) => make34(partial(self.ast, options))); var required2 = (self) => make34(required(self.ast)); var mutable2 = (schema) => make34(mutable(schema.ast)); var intersectTypeLiterals = (x, y, path2) => { if (isTypeLiteral(x) && isTypeLiteral(y)) { const propertySignatures = [...x.propertySignatures]; for (const ps of y.propertySignatures) { const name = ps.name; const i = propertySignatures.findIndex((ps2) => ps2.name === name); if (i === -1) { propertySignatures.push(ps); } else { const { isOptional, type } = propertySignatures[i]; propertySignatures[i] = new PropertySignature(name, extendAST(type, ps.type, path2.concat(name)), isOptional, true); } } return new TypeLiteral(propertySignatures, x.indexSignatures.concat(y.indexSignatures)); } throw new Error(getSchemaExtendErrorMessage(x, y, path2)); }; var preserveRefinementAnnotations = /* @__PURE__ */ blackListAnnotations([IdentifierAnnotationId]); var addRefinementToMembers = (refinement, asts) => asts.map((ast) => new Refinement(ast, refinement.filter, preserveRefinementAnnotations(refinement))); var extendAST = (x, y, path2) => Union.make(intersectUnionMembers([x], [y], path2)); var getTypes = (ast) => isUnion(ast) ? ast.types : [ast]; var intersectUnionMembers = (xs, ys, path2) => flatMap3(xs, (x) => flatMap3(ys, (y) => { switch (y._tag) { case "Literal": { if (isString(y.literal) && isStringKeyword(x) || isNumber(y.literal) && isNumberKeyword(x) || isBoolean(y.literal) && isBooleanKeyword(x)) { return [y]; } break; } case "StringKeyword": { if (y === stringKeyword) { if (isStringKeyword(x) || isLiteral(x) && isString(x.literal)) { return [x]; } else if (isRefinement(x)) { return addRefinementToMembers(x, intersectUnionMembers(getTypes(x.from), [y], path2)); } } else if (x === stringKeyword) { return [y]; } break; } case "NumberKeyword": { if (y === numberKeyword) { if (isNumberKeyword(x) || isLiteral(x) && isNumber(x.literal)) { return [x]; } else if (isRefinement(x)) { return addRefinementToMembers(x, intersectUnionMembers(getTypes(x.from), [y], path2)); } } else if (x === numberKeyword) { return [y]; } break; } case "BooleanKeyword": { if (y === booleanKeyword) { if (isBooleanKeyword(x) || isLiteral(x) && isBoolean(x.literal)) { return [x]; } else if (isRefinement(x)) { return addRefinementToMembers(x, intersectUnionMembers(getTypes(x.from), [y], path2)); } } else if (x === booleanKeyword) { return [y]; } break; } case "Union": return intersectUnionMembers(getTypes(x), y.types, path2); case "Suspend": return [new Suspend(() => extendAST(x, y.f(), path2))]; case "Refinement": return addRefinementToMembers(y, intersectUnionMembers(getTypes(x), getTypes(y.from), path2)); case "TypeLiteral": { switch (x._tag) { case "Union": return intersectUnionMembers(x.types, [y], path2); case "Suspend": return [new Suspend(() => extendAST(x.f(), y, path2))]; case "Refinement": return addRefinementToMembers(x, intersectUnionMembers(getTypes(x.from), [y], path2)); case "TypeLiteral": return [intersectTypeLiterals(x, y, path2)]; case "Transformation": { if (isTypeLiteralTransformation(x.transformation)) { return [new Transformation(intersectTypeLiterals(x.from, y, path2), intersectTypeLiterals(x.to, typeAST(y), path2), new TypeLiteralTransformation(x.transformation.propertySignatureTransformations))]; } break; } } break; } case "Transformation": { if (isTypeLiteralTransformation(y.transformation)) { switch (x._tag) { case "Union": return intersectUnionMembers(x.types, [y], path2); case "Suspend": return [new Suspend(() => extendAST(x.f(), y, path2))]; case "Refinement": return addRefinementToMembers(x, intersectUnionMembers(getTypes(x.from), [y], path2)); case "TypeLiteral": return [new Transformation(intersectTypeLiterals(x, y.from, path2), intersectTypeLiterals(typeAST(x), y.to, path2), new TypeLiteralTransformation(y.transformation.propertySignatureTransformations))]; case "Transformation": { if (isTypeLiteralTransformation(x.transformation)) { return [new Transformation(intersectTypeLiterals(x.from, y.from, path2), intersectTypeLiterals(x.to, y.to, path2), new TypeLiteralTransformation(y.transformation.propertySignatureTransformations.concat(x.transformation.propertySignatureTransformations)))]; } } break; } } break; } } throw new Error(getSchemaExtendErrorMessage(x, y, path2)); })); var extend2 = /* @__PURE__ */ dual(2, (self, that) => make34(extendAST(self.ast, that.ast, []))); var compose2 = /* @__PURE__ */ dual((args2) => isSchema(args2[1]), (from, to) => make34(compose(from.ast, to.ast))); var suspend5 = (f) => make34(new Suspend(() => f().ast)); var RefineSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Refine"); var makeRefineClass = (from, filter8, ast) => class RefineClass extends make34(ast) { static annotations(annotations3) { return makeRefineClass(this.from, this.filter, mergeSchemaAnnotations(this.ast, annotations3)); } static [RefineSchemaId] = from; static from = from; static filter = filter8; static make = (a, options) => { return getDisableValidationMakeOption(options) ? a : validateSync(this)(a); }; }; var fromFilterPredicateReturnTypeItem = (item, ast, input) => { if (isBoolean(item)) { return item ? none2() : some2(new Type2(ast, input)); } if (isString(item)) { return some2(new Type2(ast, input, item)); } if (item !== void 0) { if ("_tag" in item) { return some2(item); } const issue = new Type2(ast, input, item.message); return some2(isNonEmptyReadonlyArray(item.path) ? new Pointer(item.path, input, issue) : issue); } return none2(); }; var toFilterParseIssue = (out, ast, input) => { if (isSingle(out)) { return fromFilterPredicateReturnTypeItem(out, ast, input); } if (isNonEmptyReadonlyArray(out)) { const issues = filterMap2(out, (issue) => fromFilterPredicateReturnTypeItem(issue, ast, input)); if (isNonEmptyReadonlyArray(issues)) { return some2(issues.length === 1 ? issues[0] : new Composite2(ast, input, issues)); } } return none2(); }; function filter7(predicate, annotations3) { return (self) => { function filter8(input, options, ast2) { return toFilterParseIssue(predicate(input, options, ast2), ast2, input); } const ast = new Refinement(self.ast, filter8, toASTAnnotations(annotations3)); return makeRefineClass(self, filter8, ast); }; } var filterEffect = /* @__PURE__ */ dual(2, (self, f) => transformOrFail(self, typeSchema(self), { strict: true, decode: (a, options, ast) => flatMap11(f(a, options, ast), (filterReturnType) => match2(toFilterParseIssue(filterReturnType, ast, a), { onNone: () => succeed6(a), onSome: fail6 })), encode: succeed6 })); var makeTransformationClass = (from, to, ast) => class TransformationClass extends make34(ast) { static annotations(annotations3) { return makeTransformationClass(this.from, this.to, mergeSchemaAnnotations(this.ast, annotations3)); } static from = from; static to = to; }; var transformOrFail = /* @__PURE__ */ dual((args2) => isSchema(args2[0]) && isSchema(args2[1]), (from, to, options) => makeTransformationClass(from, to, new Transformation(from.ast, to.ast, new FinalTransformation(options.decode, options.encode)))); var transform2 = /* @__PURE__ */ dual((args2) => isSchema(args2[0]) && isSchema(args2[1]), (from, to, options) => transformOrFail(from, to, { strict: true, decode: (fromA, _options, _ast, toA) => succeed6(options.decode(fromA, toA)), encode: (toI, _options, _ast, toA) => succeed6(options.encode(toI, toA)) })); var transformLiteral = (from, to) => transform2(Literal2(from), Literal2(to), { strict: true, decode: () => to, encode: () => from }); function transformLiterals(...pairs) { return Union2(...pairs.map(([from, to]) => transformLiteral(from, to))); } var attachPropertySignature = /* @__PURE__ */ dual((args2) => isSchema(args2[0]), (schema, key, value3, annotations3) => { const ast = extend2(typeSchema(schema), Struct({ [key]: isSymbol(value3) ? UniqueSymbolFromSelf(value3) : Literal2(value3) })).ast; return make34(new Transformation(schema.ast, annotations3 ? mergeSchemaAnnotations(ast, annotations3) : ast, new TypeLiteralTransformation([new PropertySignatureTransformation(key, key, () => some2(value3), () => none2())]))); }); var annotations2 = /* @__PURE__ */ dual(2, (self, annotations3) => self.annotations(annotations3)); var rename2 = /* @__PURE__ */ dual(2, (self, mapping) => make34(rename(self.ast, mapping))); var TrimmedSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Trimmed"); var trimmed = (annotations3) => (self) => self.pipe(filter7((a) => a === a.trim(), { schemaId: TrimmedSchemaId, title: "trimmed", description: "a string with no leading or trailing whitespace", jsonSchema: { pattern: "^\\S[\\s\\S]*\\S$|^\\S$|^$" }, ...annotations3 })); var MaxLengthSchemaId2 = MaxLengthSchemaId; var maxLength = (maxLength2, annotations3) => (self) => self.pipe(filter7((a) => a.length <= maxLength2, { schemaId: MaxLengthSchemaId2, title: `maxLength(${maxLength2})`, description: `a string at most ${maxLength2} character(s) long`, jsonSchema: { maxLength: maxLength2 }, ...annotations3 })); var MinLengthSchemaId2 = MinLengthSchemaId; var minLength = (minLength2, annotations3) => (self) => self.pipe(filter7((a) => a.length >= minLength2, { schemaId: MinLengthSchemaId2, title: `minLength(${minLength2})`, description: `a string at least ${minLength2} character(s) long`, jsonSchema: { minLength: minLength2 }, ...annotations3 })); var PatternSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Pattern"); var pattern = (regex, annotations3) => (self) => { const source = regex.source; return self.pipe(filter7((a) => { regex.lastIndex = 0; return regex.test(a); }, { schemaId: PatternSchemaId, [PatternSchemaId]: { regex }, // title: `pattern(/${source}/)`, // avoiding this because it can be very long description: `a string matching the pattern ${source}`, jsonSchema: { pattern: source }, ...annotations3 })); }; var StartsWithSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/StartsWith"); var startsWith = (startsWith2, annotations3) => (self) => { const formatted = JSON.stringify(startsWith2); return self.pipe(filter7((a) => a.startsWith(startsWith2), { schemaId: StartsWithSchemaId, [StartsWithSchemaId]: { startsWith: startsWith2 }, title: `startsWith(${formatted})`, description: `a string starting with ${formatted}`, jsonSchema: { pattern: `^${startsWith2}` }, ...annotations3 })); }; var EndsWithSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/EndsWith"); var endsWith = (endsWith2, annotations3) => (self) => { const formatted = JSON.stringify(endsWith2); return self.pipe(filter7((a) => a.endsWith(endsWith2), { schemaId: EndsWithSchemaId, [EndsWithSchemaId]: { endsWith: endsWith2 }, title: `endsWith(${formatted})`, description: `a string ending with ${formatted}`, jsonSchema: { pattern: `^.*${endsWith2}$` }, ...annotations3 })); }; var IncludesSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Includes"); var includes = (searchString, annotations3) => (self) => { const formatted = JSON.stringify(searchString); return self.pipe(filter7((a) => a.includes(searchString), { schemaId: IncludesSchemaId, [IncludesSchemaId]: { includes: searchString }, title: `includes(${formatted})`, description: `a string including ${formatted}`, jsonSchema: { pattern: `.*${searchString}.*` }, ...annotations3 })); }; var LowercasedSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Lowercased"); var lowercased = (annotations3) => (self) => self.pipe(filter7((a) => a === a.toLowerCase(), { schemaId: LowercasedSchemaId, title: "lowercased", description: "a lowercase string", jsonSchema: { pattern: "^[^A-Z]*$" }, ...annotations3 })); var Lowercased = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ lowercased({ identifier: "Lowercased" }))) { }; var CapitalizedSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Capitalized"); var capitalized = (annotations3) => (self) => self.pipe(filter7((a) => a[0]?.toUpperCase() === a[0], { schemaId: CapitalizedSchemaId, title: "capitalized", description: "a capitalized string", jsonSchema: { pattern: "^[^a-z]?.*$" }, ...annotations3 })); var Capitalized = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ capitalized({ identifier: "Capitalized" }))) { }; var UncapitalizedSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Uncapitalized"); var uncapitalized = (annotations3) => (self) => self.pipe(filter7((a) => a[0]?.toLowerCase() === a[0], { schemaId: UncapitalizedSchemaId, title: "uncapitalized", description: "a uncapitalized string", jsonSchema: { pattern: "^[^A-Z]?.*$" }, ...annotations3 })); var Uncapitalized = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ uncapitalized({ identifier: "Uncapitalized" }))) { }; var UppercasedSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/Uppercased"); var uppercased = (annotations3) => (self) => self.pipe(filter7((a) => a === a.toUpperCase(), { schemaId: UppercasedSchemaId, title: "uppercased", description: "an uppercase string", jsonSchema: { pattern: "^[^a-z]*$" }, ...annotations3 })); var Uppercased = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ uppercased({ identifier: "Uppercased" }))) { }; var LengthSchemaId2 = LengthSchemaId; var length = (length2, annotations3) => (self) => { const minLength2 = isObject(length2) ? Math.max(0, Math.floor(length2.min)) : Math.max(0, Math.floor(length2)); const maxLength2 = isObject(length2) ? Math.max(minLength2, Math.floor(length2.max)) : minLength2; if (minLength2 !== maxLength2) { return self.pipe(filter7((a) => a.length >= minLength2 && a.length <= maxLength2, { schemaId: LengthSchemaId2, title: `length({ min: ${minLength2}, max: ${maxLength2})`, description: `a string at least ${minLength2} character(s) and at most ${maxLength2} character(s) long`, jsonSchema: { minLength: minLength2, maxLength: maxLength2 }, ...annotations3 })); } return self.pipe(filter7((a) => a.length === minLength2, { schemaId: LengthSchemaId2, title: `length(${minLength2})`, description: minLength2 === 1 ? `a single character` : `a string ${minLength2} character(s) long`, jsonSchema: { minLength: minLength2, maxLength: minLength2 }, ...annotations3 })); }; var Char = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ length(1, { identifier: "Char" }))) { }; var nonEmptyString2 = (annotations3) => minLength(1, { title: "nonEmptyString", description: "a non empty string", ...annotations3 }); var Lowercase = class extends (/* @__PURE__ */ transform2(String$.annotations({ description: "a string that will be converted to lowercase" }), Lowercased, { strict: true, decode: (s) => s.toLowerCase(), encode: identity }).annotations({ identifier: "Lowercase" })) { }; var Uppercase = class extends (/* @__PURE__ */ transform2(String$.annotations({ description: "a string that will be converted to uppercase" }), Uppercased, { strict: true, decode: (s) => s.toUpperCase(), encode: identity }).annotations({ identifier: "Uppercase" })) { }; var Capitalize = class extends (/* @__PURE__ */ transform2(String$.annotations({ description: "a string that will be converted to a capitalized format" }), Capitalized, { strict: true, decode: (s) => capitalize(s), encode: identity }).annotations({ identifier: "Capitalize" })) { }; var Uncapitalize = class extends (/* @__PURE__ */ transform2(String$.annotations({ description: "a string that will be converted to an uncapitalized format" }), Uncapitalized, { strict: true, decode: (s) => uncapitalize(s), encode: identity }).annotations({ identifier: "Uncapitalize" })) { }; var Trimmed = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ trimmed({ identifier: "Trimmed" }))) { }; var NonEmptyTrimmedString = class extends (/* @__PURE__ */ Trimmed.pipe(/* @__PURE__ */ nonEmptyString2({ identifier: "NonEmptyTrimmedString" }))) { }; var Trim = class extends (/* @__PURE__ */ transform2(String$.annotations({ description: "a string that will be trimmed" }), Trimmed, { strict: true, decode: (s) => s.trim(), encode: identity }).annotations({ identifier: "Trim" })) { }; var split2 = (separator) => transform2(String$.annotations({ description: "a string that will be split" }), Array$(String$), { strict: true, decode: split(separator), encode: join(separator) }); var getErrorMessage2 = (e) => e instanceof Error ? e.message : String(e); var getParseJsonTransformation = (options) => transformOrFail(String$.annotations({ [DescriptionAnnotationId]: "a string to be decoded into JSON" }), Unknown, { strict: true, decode: (s, _, ast) => _try({ try: () => JSON.parse(s, options?.reviver), catch: (e) => new Type2(ast, s, getErrorMessage2(e)) }), encode: (u, _, ast) => _try({ try: () => JSON.stringify(u, options?.replacer, options?.space), catch: (e) => new Type2(ast, u, getErrorMessage2(e)) }) }).annotations({ title: "parseJson", schemaId: ParseJsonSchemaId }); var parseJson = (schemaOrOptions, o) => isSchema(schemaOrOptions) ? compose2(parseJson(o), schemaOrOptions) : getParseJsonTransformation(schemaOrOptions); var NonEmptyString = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ nonEmptyString2({ identifier: "NonEmptyString" }))) { }; var UUIDSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/UUID"); var uuidRegexp = /^[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}$/i; var UUID = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ pattern(uuidRegexp, { schemaId: UUIDSchemaId, identifier: "UUID", jsonSchema: { format: "uuid", pattern: uuidRegexp.source }, description: "a Universally Unique Identifier", arbitrary: () => (fc) => fc.uuid() }))) { }; var ULIDSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/ULID"); var ulidRegexp = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/i; var ULID = class extends (/* @__PURE__ */ String$.pipe(/* @__PURE__ */ pattern(ulidRegexp, { schemaId: ULIDSchemaId, identifier: "ULID", description: "a Universally Unique Lexicographically Sortable Identifier", arbitrary: () => (fc) => fc.ulid() }))) { }; var URLFromSelf = class extends (/* @__PURE__ */ instanceOf(URL, { identifier: "URLFromSelf", arbitrary: () => (fc) => fc.webUrl().map((s) => new URL(s)), pretty: () => (url2) => url2.toString() })) { }; var URL$ = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a URL" }), URLFromSelf, { strict: true, decode: (s, _, ast) => _try({ try: () => new URL(s), catch: (e) => new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a URL. ${getErrorMessage2(e)}`) }), encode: (url2) => succeed6(url2.toString()) }).annotations({ identifier: "URL", pretty: () => (url2) => url2.toString() })) { }; var FiniteSchemaId2 = FiniteSchemaId; var finite = (annotations3) => (self) => self.pipe(filter7(Number.isFinite, { schemaId: FiniteSchemaId2, title: "finite", description: "a finite number", jsonSchema: { "type": "number" }, ...annotations3 })); var GreaterThanSchemaId2 = GreaterThanSchemaId; var greaterThan6 = (exclusiveMinimum, annotations3) => (self) => self.pipe(filter7((a) => a > exclusiveMinimum, { schemaId: GreaterThanSchemaId2, title: `greaterThan(${exclusiveMinimum})`, description: exclusiveMinimum === 0 ? "a positive number" : `a number greater than ${exclusiveMinimum}`, jsonSchema: { exclusiveMinimum }, ...annotations3 })); var GreaterThanOrEqualToSchemaId2 = GreaterThanOrEqualToSchemaId; var greaterThanOrEqualTo5 = (minimum, annotations3) => (self) => self.pipe(filter7((a) => a >= minimum, { schemaId: GreaterThanOrEqualToSchemaId2, title: `greaterThanOrEqualTo(${minimum})`, description: minimum === 0 ? "a non-negative number" : `a number greater than or equal to ${minimum}`, jsonSchema: { minimum }, ...annotations3 })); var MultipleOfSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/MultipleOf"); var multipleOf = (divisor, annotations3) => (self) => { const positiveDivisor = Math.abs(divisor); return self.pipe(filter7((a) => remainder(a, divisor) === 0, { schemaId: MultipleOfSchemaId, title: `multipleOf(${positiveDivisor})`, description: `a number divisible by ${positiveDivisor}`, jsonSchema: { multipleOf: positiveDivisor }, ...annotations3 })); }; var IntSchemaId2 = IntSchemaId; var int = (annotations3) => (self) => self.pipe(filter7((a) => Number.isSafeInteger(a), { schemaId: IntSchemaId2, title: "int", description: "an integer", jsonSchema: { type: "integer" }, ...annotations3 })); var LessThanSchemaId2 = LessThanSchemaId; var lessThan5 = (exclusiveMaximum, annotations3) => (self) => self.pipe(filter7((a) => a < exclusiveMaximum, { schemaId: LessThanSchemaId2, title: `lessThan(${exclusiveMaximum})`, description: exclusiveMaximum === 0 ? "a negative number" : `a number less than ${exclusiveMaximum}`, jsonSchema: { exclusiveMaximum }, ...annotations3 })); var LessThanOrEqualToSchemaId2 = LessThanOrEqualToSchemaId; var lessThanOrEqualTo5 = (maximum, annotations3) => (self) => self.pipe(filter7((a) => a <= maximum, { schemaId: LessThanOrEqualToSchemaId2, title: `lessThanOrEqualTo(${maximum})`, description: maximum === 0 ? "a non-positive number" : `a number less than or equal to ${maximum}`, jsonSchema: { maximum }, ...annotations3 })); var BetweenSchemaId2 = BetweenSchemaId; var between5 = (minimum, maximum, annotations3) => (self) => self.pipe(filter7((a) => a >= minimum && a <= maximum, { schemaId: BetweenSchemaId2, title: `between(${minimum}, ${maximum})`, description: `a number between ${minimum} and ${maximum}`, jsonSchema: { minimum, maximum }, ...annotations3 })); var NonNaNSchemaId2 = NonNaNSchemaId; var nonNaN = (annotations3) => (self) => self.pipe(filter7((a) => !Number.isNaN(a), { schemaId: NonNaNSchemaId2, title: "nonNaN", description: "a number excluding NaN", ...annotations3 })); var positive = (annotations3) => greaterThan6(0, { title: "positive", ...annotations3 }); var negative = (annotations3) => lessThan5(0, { title: "negative", ...annotations3 }); var nonPositive = (annotations3) => lessThanOrEqualTo5(0, { title: "nonPositive", ...annotations3 }); var nonNegative = (annotations3) => greaterThanOrEqualTo5(0, { title: "nonNegative", ...annotations3 }); var clamp8 = (minimum, maximum) => (self) => transform2(self, self.pipe(typeSchema, between5(minimum, maximum)), { strict: false, decode: (self2) => clamp3(self2, { minimum, maximum }), encode: identity }); var parseNumber = (self) => transformOrFail(self, Number$, { strict: false, decode: (s, _, ast) => fromOption3(parse(s), () => new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a number`)), encode: (n) => succeed6(String(n)) }); var NumberFromString = class extends (/* @__PURE__ */ parseNumber(String$.annotations({ description: "a string to be decoded into a number" })).annotations({ identifier: "NumberFromString" })) { }; var Finite = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ finite({ identifier: "Finite" }))) { }; var Int = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ int({ identifier: "Int" }))) { }; var NonNaN = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ nonNaN({ identifier: "NonNaN" }))) { }; var Positive = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ positive({ identifier: "Positive" }))) { }; var Negative = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ negative({ identifier: "Negative" }))) { }; var NonPositive = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ nonPositive({ identifier: "NonPositive" }))) { }; var NonNegative = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ nonNegative({ identifier: "NonNegative" }))) { }; var JsonNumberSchemaId2 = JsonNumberSchemaId; var JsonNumber = class extends (/* @__PURE__ */ Number$.pipe(/* @__PURE__ */ finite({ schemaId: JsonNumberSchemaId2, identifier: "JsonNumber" }))) { }; var Not = class extends (/* @__PURE__ */ transform2(/* @__PURE__ */ Boolean$.annotations({ description: "a boolean that will be negated" }), Boolean$, { strict: true, decode: not, encode: not })) { }; var encodeSymbol2 = (sym, _, ast) => { const key = Symbol.keyFor(sym); return key === void 0 ? fail6(new Type2(ast, sym, `Unable to encode a unique symbol ${String(sym)} into a string`)) : succeed6(key); }; var decodeSymbol = (s) => succeed6(Symbol.for(s)); var Symbol$ = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a globally shared symbol" }), SymbolFromSelf, { strict: false, decode: decodeSymbol, encode: encodeSymbol2 }).annotations({ identifier: "Symbol" })) { }; var SymbolStruct = /* @__PURE__ */ TaggedStruct("symbol", { key: String$ }).annotations({ description: "an object to be decoded into a globally shared symbol" }); var SymbolFromStruct = /* @__PURE__ */ transformOrFail(SymbolStruct, SymbolFromSelf, { strict: true, decode: ({ key }) => decodeSymbol(key), encode: (sym, _, ast) => map13(encodeSymbol2(sym, _, ast), (key) => SymbolStruct.make({ key })) }); var GreaterThanBigIntSchemaId = GreaterThanBigintSchemaId; var greaterThanBigInt = (min3, annotations3) => (self) => self.pipe(filter7((a) => a > min3, { schemaId: GreaterThanBigIntSchemaId, [GreaterThanBigIntSchemaId]: { min: min3 }, title: `greaterThanBigInt(${min3})`, description: min3 === 0n ? "a positive bigint" : `a bigint greater than ${min3}n`, ...annotations3 })); var GreaterThanOrEqualToBigIntSchemaId2 = GreaterThanOrEqualToBigIntSchemaId; var greaterThanOrEqualToBigInt = (min3, annotations3) => (self) => self.pipe(filter7((a) => a >= min3, { schemaId: GreaterThanOrEqualToBigIntSchemaId2, [GreaterThanOrEqualToBigIntSchemaId2]: { min: min3 }, title: `greaterThanOrEqualToBigInt(${min3})`, description: min3 === 0n ? "a non-negative bigint" : `a bigint greater than or equal to ${min3}n`, ...annotations3 })); var LessThanBigIntSchemaId2 = LessThanBigIntSchemaId; var lessThanBigInt = (max3, annotations3) => (self) => self.pipe(filter7((a) => a < max3, { schemaId: LessThanBigIntSchemaId2, [LessThanBigIntSchemaId2]: { max: max3 }, title: `lessThanBigInt(${max3})`, description: max3 === 0n ? "a negative bigint" : `a bigint less than ${max3}n`, ...annotations3 })); var LessThanOrEqualToBigIntSchemaId2 = LessThanOrEqualToBigIntSchemaId; var lessThanOrEqualToBigInt = (max3, annotations3) => (self) => self.pipe(filter7((a) => a <= max3, { schemaId: LessThanOrEqualToBigIntSchemaId2, [LessThanOrEqualToBigIntSchemaId2]: { max: max3 }, title: `lessThanOrEqualToBigInt(${max3})`, description: max3 === 0n ? "a non-positive bigint" : `a bigint less than or equal to ${max3}n`, ...annotations3 })); var BetweenBigIntSchemaId = BetweenBigintSchemaId; var betweenBigInt = (min3, max3, annotations3) => (self) => self.pipe(filter7((a) => a >= min3 && a <= max3, { schemaId: BetweenBigIntSchemaId, [BetweenBigIntSchemaId]: { min: min3, max: max3 }, title: `betweenBigInt(${min3}, ${max3})`, description: `a bigint between ${min3}n and ${max3}n`, ...annotations3 })); var positiveBigInt = (annotations3) => greaterThanBigInt(0n, { title: "positiveBigInt", ...annotations3 }); var negativeBigInt = (annotations3) => lessThanBigInt(0n, { title: "negativeBigInt", ...annotations3 }); var nonNegativeBigInt = (annotations3) => greaterThanOrEqualToBigInt(0n, { title: "nonNegativeBigInt", ...annotations3 }); var nonPositiveBigInt = (annotations3) => lessThanOrEqualToBigInt(0n, { title: "nonPositiveBigInt", ...annotations3 }); var clampBigInt = (minimum, maximum) => (self) => transform2(self, self.pipe(typeSchema, betweenBigInt(minimum, maximum)), { strict: false, decode: (self2) => clamp5(self2, { minimum, maximum }), encode: identity }); var BigInt$ = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a bigint" }), BigIntFromSelf, { strict: true, decode: (s, _, ast) => fromOption3(fromString2(s), () => new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a bigint`)), encode: (n) => succeed6(String(n)) }).annotations({ identifier: "BigInt" })) { }; var PositiveBigIntFromSelf = /* @__PURE__ */ BigIntFromSelf.pipe(/* @__PURE__ */ positiveBigInt({ identifier: "PositiveBigintFromSelf" })); var PositiveBigInt = /* @__PURE__ */ BigInt$.pipe(/* @__PURE__ */ positiveBigInt({ identifier: "PositiveBigint" })); var NegativeBigIntFromSelf = /* @__PURE__ */ BigIntFromSelf.pipe(/* @__PURE__ */ negativeBigInt({ identifier: "NegativeBigintFromSelf" })); var NegativeBigInt = /* @__PURE__ */ BigInt$.pipe(/* @__PURE__ */ negativeBigInt({ identifier: "NegativeBigint" })); var NonPositiveBigIntFromSelf = /* @__PURE__ */ BigIntFromSelf.pipe(/* @__PURE__ */ nonPositiveBigInt({ identifier: "NonPositiveBigintFromSelf" })); var NonPositiveBigInt = /* @__PURE__ */ BigInt$.pipe(/* @__PURE__ */ nonPositiveBigInt({ identifier: "NonPositiveBigint" })); var NonNegativeBigIntFromSelf = /* @__PURE__ */ BigIntFromSelf.pipe(/* @__PURE__ */ nonNegativeBigInt({ identifier: "NonNegativeBigintFromSelf" })); var NonNegativeBigInt = /* @__PURE__ */ BigInt$.pipe(/* @__PURE__ */ nonNegativeBigInt({ identifier: "NonNegativeBigint" })); var BigIntFromNumber = class extends (/* @__PURE__ */ transformOrFail(Number$.annotations({ description: "a number to be decoded into a bigint" }), BigIntFromSelf.pipe(betweenBigInt(BigInt(Number.MIN_SAFE_INTEGER), BigInt(Number.MAX_SAFE_INTEGER))), { strict: true, decode: (n, _, ast) => fromOption3(fromNumber(n), () => new Type2(ast, n, `Unable to decode ${n} into a bigint`)), encode: (b, _, ast) => fromOption3(toNumber(b), () => new Type2(ast, b, `Unable to encode ${b}n into a number`)) }).annotations({ identifier: "BigIntFromNumber" })) { }; var redactedArbitrary = (value3) => (fc) => value3(fc).map(make33); var toComposite = (eff, onSuccess, ast, actual) => mapBoth4(eff, { onFailure: (e) => new Composite2(ast, actual, e), onSuccess }); var redactedParse = (decodeUnknown3) => (u, options, ast) => isRedacted2(u) ? toComposite(decodeUnknown3(value2(u), options), make33, ast, u) : fail6(new Type2(ast, u)); var RedactedFromSelf = (value3) => declare([value3], { decode: (value4) => redactedParse(decodeUnknown(value4)), encode: (value4) => redactedParse(encodeUnknown(value4)) }, { description: "Redacted()", pretty: () => () => "Redacted()", arbitrary: redactedArbitrary, equivalence: getEquivalence7 }); var Redacted = (value3) => { return transform2(value3, RedactedFromSelf(typeSchema(value3)), { strict: true, decode: (value4) => make33(value4), encode: (value4) => value2(value4) }); }; var DurationFromSelf = class extends (/* @__PURE__ */ declare(isDuration, { identifier: "DurationFromSelf", pretty: () => String, arbitrary: () => (fc) => fc.oneof(fc.constant(infinity), fc.bigInt({ min: 0n }).map((_) => nanos(_)), fc.maxSafeNat().map((_) => millis(_))), equivalence: () => Equivalence2 })) { }; var DurationFromNanos = class extends (/* @__PURE__ */ transformOrFail(NonNegativeBigIntFromSelf.annotations({ description: "a bigint to be decoded into a Duration" }), DurationFromSelf.pipe(filter7((duration2) => isFinite(duration2), { description: "a finite duration" })), { strict: true, decode: (nanos2) => succeed6(nanos(nanos2)), encode: (duration2, _, ast) => match2(toNanos(duration2), { onNone: () => fail6(new Type2(ast, duration2, `Unable to encode ${duration2} into a bigint`)), onSome: (nanos2) => succeed6(nanos2) }) }).annotations({ identifier: "DurationFromNanos" })) { }; var NonNegativeInt = /* @__PURE__ */ NonNegative.pipe(int()).annotations({ identifier: "NonNegativeInt" }); var DurationFromMillis = class extends (/* @__PURE__ */ transform2(NonNegative.annotations({ description: "a non-negative number to be decoded into a Duration" }), DurationFromSelf, { strict: true, decode: (ms) => millis(ms), encode: (duration2) => toMillis(duration2) }).annotations({ identifier: "DurationFromMillis" })) { }; var DurationValueMillis = /* @__PURE__ */ TaggedStruct("Millis", { millis: NonNegativeInt }); var DurationValueNanos = /* @__PURE__ */ TaggedStruct("Nanos", { nanos: BigInt$ }); var DurationValueInfinity = /* @__PURE__ */ TaggedStruct("Infinity", {}); var durationValueInfinity = /* @__PURE__ */ DurationValueInfinity.make({}); var DurationValue = /* @__PURE__ */ Union2(DurationValueMillis, DurationValueNanos, DurationValueInfinity).annotations({ identifier: "DurationValue", description: "an JSON-compatible tagged union to be decoded into a Duration" }); var FiniteHRTime = /* @__PURE__ */ Tuple(element(NonNegativeInt).annotations({ title: "seconds" }), element(NonNegativeInt).annotations({ title: "nanos" })).annotations({ identifier: "FiniteHRTime" }); var InfiniteHRTime = /* @__PURE__ */ Tuple(Literal2(-1), Literal2(0)).annotations({ identifier: "InfiniteHRTime" }); var HRTime = /* @__PURE__ */ Union2(FiniteHRTime, InfiniteHRTime).annotations({ identifier: "HRTime", description: "a tuple of seconds and nanos to be decoded into a Duration" }); var isDurationValue = (u) => typeof u === "object"; var Duration = class extends (/* @__PURE__ */ transform2(Union2(DurationValue, HRTime), DurationFromSelf, { strict: true, decode: (input) => { if (isDurationValue(input)) { switch (input._tag) { case "Millis": return millis(input.millis); case "Nanos": return nanos(input.nanos); case "Infinity": return infinity; } } const [seconds2, nanos2] = input; return seconds2 === -1 ? infinity : nanos(BigInt(seconds2) * BigInt(1e9) + BigInt(nanos2)); }, encode: (duration2) => { switch (duration2.value._tag) { case "Millis": return DurationValueMillis.make({ millis: duration2.value.millis }); case "Nanos": return DurationValueNanos.make({ nanos: duration2.value.nanos }); case "Infinity": return durationValueInfinity; } } }).annotations({ identifier: "Duration" })) { }; var clampDuration = (minimum, maximum) => (self) => transform2(self, self.pipe(typeSchema, betweenDuration(minimum, maximum)), { strict: false, decode: (self2) => clamp6(self2, { minimum, maximum }), encode: identity }); var LessThanDurationSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThanDuration"); var lessThanDuration = (max3, annotations3) => (self) => self.pipe(filter7((a) => lessThan3(a, max3), { schemaId: LessThanDurationSchemaId, [LessThanDurationSchemaId]: { max: max3 }, title: `lessThanDuration(${max3})`, description: `a Duration less than ${decode(max3)}`, ...annotations3 })); var LessThanOrEqualToDurationSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/LessThanOrEqualToDuration"); var lessThanOrEqualToDuration = (max3, annotations3) => (self) => self.pipe(filter7((a) => lessThanOrEqualTo3(a, max3), { schemaId: LessThanDurationSchemaId, [LessThanDurationSchemaId]: { max: max3 }, title: `lessThanOrEqualToDuration(${max3})`, description: `a Duration less than or equal to ${decode(max3)}`, ...annotations3 })); var GreaterThanDurationSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThanDuration"); var greaterThanDuration = (min3, annotations3) => (self) => self.pipe(filter7((a) => greaterThan3(a, min3), { schemaId: GreaterThanDurationSchemaId, [GreaterThanDurationSchemaId]: { min: min3 }, title: `greaterThanDuration(${min3})`, description: `a Duration greater than ${decode(min3)}`, ...annotations3 })); var GreaterThanOrEqualToDurationSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/GreaterThanOrEqualToDuration"); var greaterThanOrEqualToDuration = (min3, annotations3) => (self) => self.pipe(filter7((a) => greaterThanOrEqualTo3(a, min3), { schemaId: GreaterThanOrEqualToDurationSchemaId, [GreaterThanOrEqualToDurationSchemaId]: { min: min3 }, title: `greaterThanOrEqualToDuration(${min3})`, description: `a Duration greater than or equal to ${decode(min3)}`, ...annotations3 })); var BetweenDurationSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/BetweenDuration"); var betweenDuration = (minimum, maximum, annotations3) => (self) => self.pipe(filter7((a) => between3(a, { minimum, maximum }), { schemaId: BetweenDurationSchemaId, [BetweenDurationSchemaId]: { maximum, minimum }, title: `betweenDuration(${minimum}, ${maximum})`, description: `a Duration between ${decode(minimum)} and ${decode(maximum)}`, ...annotations3 })); var Uint8ArrayFromSelf = /* @__PURE__ */ declare(isUint8Array, { identifier: "Uint8ArrayFromSelf", pretty: () => (u8arr) => `new Uint8Array(${JSON.stringify(Array.from(u8arr))})`, arbitrary: () => (fc) => fc.uint8Array(), equivalence: () => getEquivalence3(equals) }); var Uint8 = /* @__PURE__ */ Number$.pipe(/* @__PURE__ */ between5(0, 255, { identifier: "Uint8", description: "a 8-bit unsigned integer" })); var Uint8Array$ = /* @__PURE__ */ transform2(Array$(Uint8).annotations({ description: "an array of 8-bit unsigned integers to be decoded into a Uint8Array" }), Uint8ArrayFromSelf, { strict: true, decode: (numbers) => Uint8Array.from(numbers), encode: (uint8Array2) => Array.from(uint8Array2) }).annotations({ identifier: "Uint8Array" }); var makeUint8ArrayTransformation = (id, decode6, encode5) => transformOrFail(String$.annotations({ description: "a string to be decoded into a Uint8Array" }), Uint8ArrayFromSelf, { strict: true, decode: (s, _, ast) => mapLeft(decode6(s), (decodeException) => new Type2(ast, s, decodeException.message)), encode: (u) => succeed6(encode5(u)) }).annotations({ identifier: id }); var Uint8ArrayFromBase64 = /* @__PURE__ */ makeUint8ArrayTransformation("Uint8ArrayFromBase64", decodeBase64, encodeBase64); var Uint8ArrayFromBase64Url = /* @__PURE__ */ makeUint8ArrayTransformation("Uint8ArrayFromBase64Url", decodeBase64Url, encodeBase64Url); var Uint8ArrayFromHex = /* @__PURE__ */ makeUint8ArrayTransformation("Uint8ArrayFromHex", decodeHex, encodeHex); var makeEncodingTransformation = (id, decode6, encode5) => transformOrFail(String$.annotations({ description: `A string that is interpreted as being ${id}-encoded and will be decoded into a UTF-8 string` }), String$, { strict: true, decode: (s, _, ast) => mapLeft(decode6(s), (decodeException) => new Type2(ast, s, decodeException.message)), encode: (u) => succeed6(encode5(u)) }).annotations({ identifier: `StringFrom${id}` }); var StringFromBase64 = /* @__PURE__ */ makeEncodingTransformation("Base64", decodeBase64String, encodeBase64); var StringFromBase64Url = /* @__PURE__ */ makeEncodingTransformation("Base64Url", decodeBase64UrlString, encodeBase64Url); var StringFromHex = /* @__PURE__ */ makeEncodingTransformation("Hex", decodeHexString, encodeHex); var StringFromUriComponent = /* @__PURE__ */ transformOrFail(String$.annotations({ description: `A string that is interpreted as being UriComponent-encoded and will be decoded into a UTF-8 string` }), String$, { strict: true, decode: (s, _, ast) => mapLeft(decodeUriComponent(s), (decodeException) => new Type2(ast, s, decodeException.message)), encode: (u, _, ast) => mapLeft(encodeUriComponent(u), (encodeException) => new Type2(ast, u, encodeException.message)) }).annotations({ identifier: `StringFromUriComponent` }); var MinItemsSchemaId2 = MinItemsSchemaId; var minItems = (n, annotations3) => (self) => { const minItems2 = Math.floor(n); if (minItems2 < 1) { throw new Error(getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 1, actual ${n}`)); } return self.pipe(filter7((a) => a.length >= minItems2, { schemaId: MinItemsSchemaId2, title: `minItems(${minItems2})`, description: `an array of at least ${minItems2} item(s)`, jsonSchema: { minItems: minItems2 }, [StableFilterAnnotationId]: true, ...annotations3 })); }; var MaxItemsSchemaId2 = MaxItemsSchemaId; var maxItems = (n, annotations3) => (self) => { const maxItems2 = Math.floor(n); if (maxItems2 < 1) { throw new Error(getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 1, actual ${n}`)); } return self.pipe(filter7((a) => a.length <= maxItems2, { schemaId: MaxItemsSchemaId2, title: `maxItems(${maxItems2})`, description: `an array of at most ${maxItems2} item(s)`, jsonSchema: { maxItems: maxItems2 }, [StableFilterAnnotationId]: true, ...annotations3 })); }; var ItemsCountSchemaId2 = ItemsCountSchemaId; var itemsCount = (n, annotations3) => (self) => { const itemsCount2 = Math.floor(n); if (itemsCount2 < 0) { throw new Error(getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 0, actual ${n}`)); } return self.pipe(filter7((a) => a.length === itemsCount2, { schemaId: ItemsCountSchemaId2, title: `itemsCount(${itemsCount2})`, description: `an array of exactly ${itemsCount2} item(s)`, jsonSchema: { minItems: itemsCount2, maxItems: itemsCount2 }, [StableFilterAnnotationId]: true, ...annotations3 })); }; var getNumberIndexedAccess2 = (self) => make34(getNumberIndexedAccess(self.ast)); var head3 = (self) => transform2(self, OptionFromSelf(getNumberIndexedAccess2(typeSchema(self))), { strict: true, decode: head, encode: match2({ onNone: () => [], onSome: of }) }); var headNonEmpty3 = (self) => transform2(self, getNumberIndexedAccess2(typeSchema(self)), { strict: true, decode: headNonEmpty, encode: of }); var headOrElse = /* @__PURE__ */ dual((args2) => isSchema(args2[0]), (self, fallback) => transformOrFail(self, getNumberIndexedAccess2(typeSchema(self)), { strict: true, decode: (as4, _, ast) => as4.length > 0 ? succeed6(as4[0]) : fallback ? succeed6(fallback()) : fail6(new Type2(ast, as4, "Unable to retrieve the first element of an empty array")), encode: (a) => succeed6(of(a)) })); var ValidDateSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/ValidDate"); var validDate = (annotations3) => (self) => self.pipe(filter7((a) => !Number.isNaN(a.getTime()), { schemaId: ValidDateSchemaId, [ValidDateSchemaId]: { noInvalidDate: true }, title: "validDate", description: "a valid Date", ...annotations3 })); var LessThanDateSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThanDate"); var lessThanDate = (max3, annotations3) => (self) => self.pipe(filter7((a) => a < max3, { schemaId: LessThanDateSchemaId, [LessThanDateSchemaId]: { max: max3 }, title: `lessThanDate(${formatDate(max3)})`, description: `a date before ${formatDate(max3)}`, ...annotations3 })); var LessThanOrEqualToDateSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/LessThanOrEqualToDate"); var lessThanOrEqualToDate = (max3, annotations3) => (self) => self.pipe(filter7((a) => a <= max3, { schemaId: LessThanDateSchemaId, [LessThanDateSchemaId]: { max: max3 }, title: `lessThanOrEqualToDate(${formatDate(max3)})`, description: `a date before or equal to ${formatDate(max3)}`, ...annotations3 })); var GreaterThanDateSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThanDate"); var greaterThanDate = (min3, annotations3) => (self) => self.pipe(filter7((a) => a > min3, { schemaId: GreaterThanDateSchemaId, [GreaterThanDateSchemaId]: { min: min3 }, title: `greaterThanDate(${formatDate(min3)})`, description: `a date after ${formatDate(min3)}`, ...annotations3 })); var GreaterThanOrEqualToDateSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/GreaterThanOrEqualToDate"); var greaterThanOrEqualToDate = (min3, annotations3) => (self) => self.pipe(filter7((a) => a >= min3, { schemaId: GreaterThanOrEqualToDateSchemaId, [GreaterThanOrEqualToDateSchemaId]: { min: min3 }, title: `greaterThanOrEqualToDate(${formatDate(min3)})`, description: `a date after or equal to ${formatDate(min3)}`, ...annotations3 })); var BetweenDateSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/BetweenDate"); var betweenDate = (min3, max3, annotations3) => (self) => self.pipe(filter7((a) => a <= max3 && a >= min3, { schemaId: BetweenDateSchemaId, [BetweenDateSchemaId]: { max: max3, min: min3 }, title: `betweenDate(${formatDate(min3)}, ${formatDate(max3)})`, description: `a date between ${formatDate(min3)} and ${formatDate(max3)}`, ...annotations3 })); var DateFromSelfSchemaId2 = DateFromSelfSchemaId; var DateFromSelf = class extends (/* @__PURE__ */ declare(isDate, { identifier: "DateFromSelf", schemaId: DateFromSelfSchemaId2, [DateFromSelfSchemaId2]: { noInvalidDate: false }, description: "a potentially invalid Date instance", pretty: () => (date3) => `new Date(${JSON.stringify(date3)})`, arbitrary: () => (fc) => fc.date({ noInvalidDate: false }), equivalence: () => Date2 })) { }; var ValidDateFromSelf = class extends (/* @__PURE__ */ DateFromSelf.pipe(/* @__PURE__ */ validDate({ identifier: "ValidDateFromSelf", description: "a valid Date instance" }))) { }; var DateFromString = class extends (/* @__PURE__ */ transform2(String$.annotations({ description: "a string to be decoded into a Date" }), DateFromSelf, { strict: true, decode: (s) => new Date(s), encode: (d) => formatDate(d) }).annotations({ identifier: "DateFromString" })) { }; var Date$ = class extends (/* @__PURE__ */ DateFromString.pipe(/* @__PURE__ */ validDate({ identifier: "Date" }))) { }; var DateFromNumber = class extends (/* @__PURE__ */ transform2(Number$.annotations({ description: "a number to be decoded into a Date" }), DateFromSelf, { strict: true, decode: (n) => new Date(n), encode: (d) => d.getTime() }).annotations({ identifier: "DateFromNumber" })) { }; var DateTimeUtcFromSelf = class extends (/* @__PURE__ */ declare((u) => isDateTime2(u) && isUtc2(u), { identifier: "DateTimeUtcFromSelf", description: "a DateTime.Utc instance", pretty: () => (dateTime) => dateTime.toString(), arbitrary: () => (fc) => fc.date({ noInvalidDate: true }).map((date3) => unsafeFromDate2(date3)), equivalence: () => Equivalence4 })) { }; var decodeDateTimeUtc = (input, _, ast) => _try({ try: () => unsafeMake7(input), catch: () => new Type2(ast, input, `Unable to decode ${formatUnknown(input)} into a DateTime.Utc`) }); var DateTimeUtcFromNumber = class extends (/* @__PURE__ */ transformOrFail(Number$.annotations({ description: "a number to be decoded into a DateTime.Utc" }), DateTimeUtcFromSelf, { strict: true, decode: decodeDateTimeUtc, encode: (dt) => succeed6(toEpochMillis2(dt)) }).annotations({ identifier: "DateTimeUtcFromNumber" })) { }; var DateTimeUtcFromDate = class extends (/* @__PURE__ */ transformOrFail(DateFromSelf.annotations({ description: "a Date to be decoded into a DateTime.Utc" }), DateTimeUtcFromSelf, { strict: true, decode: decodeDateTimeUtc, encode: (dt) => succeed6(toDateUtc2(dt)) }).annotations({ identifier: "DateTimeUtcFromDate" })) { }; var DateTimeUtc = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a DateTime.Utc" }), DateTimeUtcFromSelf, { strict: true, decode: decodeDateTimeUtc, encode: (dt) => succeed6(formatIso2(dt)) }).annotations({ identifier: "DateTimeUtc" })) { }; var timeZoneOffsetArbitrary = () => (fc) => fc.integer({ min: -12 * 60 * 60 * 1e3, max: 14 * 60 * 60 * 1e3 }).map(zoneMakeOffset2); var TimeZoneOffsetFromSelf = class extends (/* @__PURE__ */ declare(isTimeZoneOffset2, { identifier: "TimeZoneOffsetFromSelf", description: "a TimeZone.Offset instance", pretty: () => (zone) => zone.toString(), arbitrary: timeZoneOffsetArbitrary })) { }; var TimeZoneOffset = class extends (/* @__PURE__ */ transform2(Number$.annotations({ description: "a number to be decoded into a TimeZone.Offset" }), TimeZoneOffsetFromSelf, { strict: true, decode: zoneMakeOffset2, encode: (tz) => tz.offset }).annotations({ identifier: "TimeZoneOffset" })) { }; var timeZoneNamedArbitrary = () => (fc) => fc.constantFrom(...Intl.supportedValuesOf("timeZone")).map(zoneUnsafeMakeNamed2); var TimeZoneNamedFromSelf = class extends (/* @__PURE__ */ declare(isTimeZoneNamed2, { identifier: "TimeZoneNamedFromSelf", description: "a TimeZone.Named instance", pretty: () => (zone) => zone.toString(), arbitrary: timeZoneNamedArbitrary })) { }; var TimeZoneNamed = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a TimeZone.Named" }), TimeZoneNamedFromSelf, { strict: true, decode: (s, _, ast) => _try({ try: () => zoneUnsafeMakeNamed2(s), catch: () => new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a TimeZone.Named`) }), encode: (tz) => succeed6(tz.id) }).annotations({ identifier: "TimeZoneNamed" })) { }; var TimeZoneFromSelf = class extends (/* @__PURE__ */ Union2(TimeZoneOffsetFromSelf, TimeZoneNamedFromSelf)) { }; var TimeZone = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a TimeZone" }), TimeZoneFromSelf, { strict: true, decode: (s, _, ast) => match2(zoneFromString2(s), { onNone: () => fail6(new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a TimeZone`)), onSome: succeed6 }), encode: (tz) => succeed6(zoneToString2(tz)) }).annotations({ identifier: "TimeZone" })) { }; var timeZoneArbitrary = (fc) => fc.oneof(timeZoneOffsetArbitrary()(fc), timeZoneNamedArbitrary()(fc)); var DateTimeZonedFromSelf = class extends (/* @__PURE__ */ declare((u) => isDateTime2(u) && isZoned2(u), { identifier: "DateTimeZonedFromSelf", description: "a DateTime.Zoned instance", pretty: () => (dateTime) => dateTime.toString(), arbitrary: () => (fc) => fc.tuple(fc.integer({ // time zone db supports +/- 1000 years or so min: -31536e9, max: 31536e9 }), timeZoneArbitrary(fc)).map(([millis2, timeZone]) => unsafeMakeZoned2(millis2, { timeZone })), equivalence: () => Equivalence4 })) { }; var DateTimeZoned = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a DateTime.Zoned" }), DateTimeZonedFromSelf, { strict: true, decode: (s, _, ast) => match2(makeZonedFromString2(s), { onNone: () => fail6(new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a DateTime.Zoned`)), onSome: succeed6 }), encode: (dt) => succeed6(formatIsoZoned2(dt)) }).annotations({ identifier: "DateTimeZoned" })) { }; var OptionNoneEncoded = /* @__PURE__ */ Struct({ _tag: Literal2("None") }).annotations({ description: "NoneEncoded" }); var optionSomeEncoded = (value3) => Struct({ _tag: Literal2("Some"), value: value3 }).annotations({ description: `SomeEncoded<${format6(value3)}>` }); var optionEncoded = (value3) => Union2(OptionNoneEncoded, optionSomeEncoded(value3)).annotations({ description: `OptionEncoded<${format6(value3)}>` }); var optionDecode = (input) => input._tag === "None" ? none2() : some2(input.value); var optionArbitrary = (value3, ctx) => (fc) => fc.oneof(ctx, fc.record({ _tag: fc.constant("None") }), fc.record({ _tag: fc.constant("Some"), value: value3(fc) })).map(optionDecode); var optionPretty = (value3) => match2({ onNone: () => "none()", onSome: (a) => `some(${value3(a)})` }); var optionParse = (decodeUnknown3) => (u, options, ast) => isOption2(u) ? isNone2(u) ? succeed6(none2()) : toComposite(decodeUnknown3(u.value, options), some2, ast, u) : fail6(new Type2(ast, u)); var OptionFromSelf = (value3) => { return declare([value3], { decode: (value4) => optionParse(decodeUnknown(value4)), encode: (value4) => optionParse(encodeUnknown(value4)) }, { description: `Option<${format6(value3)}>`, pretty: optionPretty, arbitrary: optionArbitrary, equivalence: getEquivalence2 }); }; var makeNoneEncoded = { _tag: "None" }; var makeSomeEncoded = (value3) => ({ _tag: "Some", value: value3 }); var Option = (value3) => { const value_ = asSchema(value3); return transform2(optionEncoded(value_), OptionFromSelf(typeSchema(value_)), { strict: true, decode: optionDecode, encode: match2({ onNone: () => makeNoneEncoded, onSome: makeSomeEncoded }) }); }; var OptionFromNullOr = (value3) => { const value_ = asSchema(value3); return transform2(NullOr(value_), OptionFromSelf(typeSchema(value_)), { strict: true, decode: fromNullable2, encode: getOrNull2 }); }; var OptionFromNullishOr = (value3, onNoneEncoding) => { const value_ = asSchema(value3); return transform2(NullishOr(value_), OptionFromSelf(typeSchema(value_)), { strict: true, decode: fromNullable2, encode: onNoneEncoding === null ? getOrNull2 : getOrUndefined2 }); }; var OptionFromUndefinedOr = (value3) => { const value_ = asSchema(value3); return transform2(UndefinedOr(value_), OptionFromSelf(typeSchema(value_)), { strict: true, decode: fromNullable2, encode: getOrUndefined2 }); }; var OptionFromNonEmptyTrimmedString = /* @__PURE__ */ transform2(String$, /* @__PURE__ */ OptionFromSelf(NonEmptyTrimmedString), { strict: true, decode: (s) => filter(some2(s.trim()), isNonEmpty3), encode: /* @__PURE__ */ getOrElse2(() => "") }); var rightEncoded = (right3) => Struct({ _tag: Literal2("Right"), right: right3 }).annotations({ description: `RightEncoded<${format6(right3)}>` }); var leftEncoded = (left3) => Struct({ _tag: Literal2("Left"), left: left3 }).annotations({ description: `LeftEncoded<${format6(left3)}>` }); var eitherEncoded = (right3, left3) => Union2(rightEncoded(right3), leftEncoded(left3)).annotations({ description: `EitherEncoded<${format6(left3)}, ${format6(right3)}>` }); var eitherDecode = (input) => input._tag === "Left" ? left2(input.left) : right2(input.right); var eitherArbitrary = (right3, left3) => (fc) => fc.oneof(fc.record({ _tag: fc.constant("Left"), left: left3(fc) }), fc.record({ _tag: fc.constant("Right"), right: right3(fc) })).map(eitherDecode); var eitherPretty = (right3, left3) => match({ onLeft: (e) => `left(${left3(e)})`, onRight: (a) => `right(${right3(a)})` }); var eitherParse = (parseRight, decodeUnknownLeft) => (u, options, ast) => isEither2(u) ? match(u, { onLeft: (left3) => toComposite(decodeUnknownLeft(left3, options), left2, ast, u), onRight: (right3) => toComposite(parseRight(right3, options), right2, ast, u) }) : fail6(new Type2(ast, u)); var EitherFromSelf = ({ left: left3, right: right3 }) => { return declare([right3, left3], { decode: (right4, left4) => eitherParse(decodeUnknown(right4), decodeUnknown(left4)), encode: (right4, left4) => eitherParse(encodeUnknown(right4), encodeUnknown(left4)) }, { description: `Either<${format6(right3)}, ${format6(left3)}>`, pretty: eitherPretty, arbitrary: eitherArbitrary, equivalence: (right4, left4) => getEquivalence({ left: left4, right: right4 }) }); }; var makeLeftEncoded = (left3) => ({ _tag: "Left", left: left3 }); var makeRightEncoded = (right3) => ({ _tag: "Right", right: right3 }); var Either = ({ left: left3, right: right3 }) => { const right_ = asSchema(right3); const left_ = asSchema(left3); return transform2(eitherEncoded(right_, left_), EitherFromSelf({ left: typeSchema(left_), right: typeSchema(right_) }), { strict: true, decode: eitherDecode, encode: match({ onLeft: makeLeftEncoded, onRight: makeRightEncoded }) }); }; var EitherFromUnion = ({ left: left3, right: right3 }) => { const right_ = asSchema(right3); const left_ = asSchema(left3); const toright = typeSchema(right_); const toleft = typeSchema(left_); const fromRight = transform2(right_, rightEncoded(toright), { strict: true, decode: makeRightEncoded, encode: (r) => r.right }); const fromLeft = transform2(left_, leftEncoded(toleft), { strict: true, decode: makeLeftEncoded, encode: (l) => l.left }); return transform2(Union2(fromRight, fromLeft), EitherFromSelf({ left: toleft, right: toright }), { strict: true, decode: (from) => from._tag === "Left" ? left2(from.left) : right2(from.right), encode: match({ onLeft: makeLeftEncoded, onRight: makeRightEncoded }) }); }; var mapArbitrary = (key, value3, ctx) => { return (fc) => { const items = fc.array(fc.tuple(key(fc), value3(fc))); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map((as4) => new Map(as4)); }; }; var readonlyMapPretty = (key, value3) => (map15) => `new Map([${Array.from(map15.entries()).map(([k, v]) => `[${key(k)}, ${value3(v)}]`).join(", ")}])`; var readonlyMapEquivalence = (key, value3) => { const arrayEquivalence = getEquivalence3(make(([ka, va], [kb, vb]) => key(ka, kb) && value3(va, vb))); return make((a, b) => arrayEquivalence(Array.from(a.entries()), Array.from(b.entries()))); }; var readonlyMapParse = (decodeUnknown3) => (u, options, ast) => isMap(u) ? toComposite(decodeUnknown3(Array.from(u.entries()), options), (as4) => new Map(as4), ast, u) : fail6(new Type2(ast, u)); var mapFromSelf_ = (key, value3, description) => declare([key, value3], { decode: (Key, Value2) => readonlyMapParse(decodeUnknown(Array$(Tuple(Key, Value2)))), encode: (Key, Value2) => readonlyMapParse(encodeUnknown(Array$(Tuple(Key, Value2)))) }, { description, pretty: readonlyMapPretty, arbitrary: mapArbitrary, equivalence: readonlyMapEquivalence }); var ReadonlyMapFromSelf = ({ key, value: value3 }) => mapFromSelf_(key, value3, `ReadonlyMap<${format6(key)}, ${format6(value3)}>`); var MapFromSelf = ({ key, value: value3 }) => mapFromSelf_(key, value3, `Map<${format6(key)}, ${format6(value3)}>`); var ReadonlyMap = ({ key, value: value3 }) => { const key_ = asSchema(key); const value_ = asSchema(value3); return transform2(Array$(Tuple(key_, value_)), ReadonlyMapFromSelf({ key: typeSchema(key_), value: typeSchema(value_) }), { strict: true, decode: (as4) => new Map(as4), encode: (map15) => Array.from(map15.entries()) }); }; var map14 = ({ key, value: value3 }) => { const key_ = asSchema(key); const value_ = asSchema(value3); return transform2(Array$(Tuple(key_, value_)), MapFromSelf({ key: typeSchema(key_), value: typeSchema(value_) }), { strict: true, decode: (as4) => new Map(as4), encode: (map15) => Array.from(map15.entries()) }); }; var ReadonlyMapFromRecord = ({ key, value: value3 }) => transform2(Record({ key: encodedBoundSchema(key), value: value3 }).annotations({ description: "a record to be decoded into a ReadonlyMap" }), ReadonlyMapFromSelf({ key, value: typeSchema(value3) }), { strict: true, decode: (record3) => new Map(Object.entries(record3)), encode: fromEntries }); var MapFromRecord = ({ key, value: value3 }) => transform2(Record({ key: encodedBoundSchema(key), value: value3 }).annotations({ description: "a record to be decoded into a Map" }), MapFromSelf({ key, value: typeSchema(value3) }), { strict: true, decode: (record3) => new Map(Object.entries(record3)), encode: fromEntries }); var setArbitrary = (item, ctx) => (fc) => { const items = fc.array(item(fc)); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map((as4) => new Set(as4)); }; var readonlySetPretty = (item) => (set6) => `new Set([${Array.from(set6.values()).map((a) => item(a)).join(", ")}])`; var readonlySetEquivalence = (item) => { const arrayEquivalence = getEquivalence3(item); return make((a, b) => arrayEquivalence(Array.from(a.values()), Array.from(b.values()))); }; var readonlySetParse = (decodeUnknown3) => (u, options, ast) => isSet(u) ? toComposite(decodeUnknown3(Array.from(u.values()), options), (as4) => new Set(as4), ast, u) : fail6(new Type2(ast, u)); var setFromSelf_ = (value3, description) => declare([value3], { decode: (item) => readonlySetParse(decodeUnknown(Array$(item))), encode: (item) => readonlySetParse(encodeUnknown(Array$(item))) }, { description, pretty: readonlySetPretty, arbitrary: setArbitrary, equivalence: readonlySetEquivalence }); var ReadonlySetFromSelf = (value3) => setFromSelf_(value3, `ReadonlySet<${format6(value3)}>`); var SetFromSelf = (value3) => setFromSelf_(value3, `Set<${format6(value3)}>`); var ReadonlySet = (value3) => { const value_ = asSchema(value3); return transform2(Array$(value_), ReadonlySetFromSelf(typeSchema(value_)), { strict: true, decode: (as4) => new Set(as4), encode: (set6) => Array.from(set6) }); }; var set5 = (value3) => { const value_ = asSchema(value3); return transform2(Array$(value_), SetFromSelf(typeSchema(value_)), { strict: true, decode: (as4) => new Set(as4), encode: (set6) => Array.from(set6) }); }; var bigDecimalPretty = () => (val) => `BigDecimal(${format2(normalize(val))})`; var bigDecimalArbitrary = () => (fc) => fc.tuple(fc.bigInt(), fc.integer({ min: 0, max: 18 })).map(([value3, scale2]) => make4(value3, scale2)); var BigDecimalFromSelf = class extends (/* @__PURE__ */ declare(isBigDecimal, { identifier: "BigDecimalFromSelf", pretty: bigDecimalPretty, arbitrary: bigDecimalArbitrary, equivalence: () => Equivalence })) { }; var BigDecimal = class extends (/* @__PURE__ */ transformOrFail(String$.annotations({ description: "a string to be decoded into a BigDecimal" }), BigDecimalFromSelf, { strict: true, decode: (s, _, ast) => fromString(s).pipe(match2({ onNone: () => fail6(new Type2(ast, s, `Unable to decode ${JSON.stringify(s)} into a BigDecimal`)), onSome: (val) => succeed6(normalize(val)) })), encode: (val) => succeed6(format2(normalize(val))) }).annotations({ identifier: "BigDecimal" })) { }; var BigDecimalFromNumber = class extends (/* @__PURE__ */ transform2(Number$.annotations({ description: "a number to be decoded into a BigDecimal" }), BigDecimalFromSelf, { strict: true, decode: unsafeFromNumber, encode: unsafeToNumber }).annotations({ identifier: "BigDecimalFromNumber" })) { }; var GreaterThanBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/GreaterThanBigDecimal"); var greaterThanBigDecimal = (min3, annotations3) => (self) => { const formatted = format2(min3); return self.pipe(filter7((a) => greaterThan2(a, min3), { schemaId: GreaterThanBigDecimalSchemaId, [GreaterThanBigDecimalSchemaId]: { min: min3 }, title: `greaterThanBigDecimal(${formatted})`, description: `a BigDecimal greater than ${formatted}`, ...annotations3 })); }; var GreaterThanOrEqualToBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/GreaterThanOrEqualToBigDecimal"); var greaterThanOrEqualToBigDecimal = (min3, annotations3) => (self) => { const formatted = format2(min3); return self.pipe(filter7((a) => greaterThanOrEqualTo2(a, min3), { schemaId: GreaterThanOrEqualToBigDecimalSchemaId, [GreaterThanOrEqualToBigDecimalSchemaId]: { min: min3 }, title: `greaterThanOrEqualToBigDecimal(${formatted})`, description: `a BigDecimal greater than or equal to ${formatted}`, ...annotations3 })); }; var LessThanBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/LessThanBigDecimal"); var lessThanBigDecimal = (max3, annotations3) => (self) => { const formatted = format2(max3); return self.pipe(filter7((a) => lessThan2(a, max3), { schemaId: LessThanBigDecimalSchemaId, [LessThanBigDecimalSchemaId]: { max: max3 }, title: `lessThanBigDecimal(${formatted})`, description: `a BigDecimal less than ${formatted}`, ...annotations3 })); }; var LessThanOrEqualToBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/LessThanOrEqualToBigDecimal"); var lessThanOrEqualToBigDecimal = (max3, annotations3) => (self) => { const formatted = format2(max3); return self.pipe(filter7((a) => lessThanOrEqualTo2(a, max3), { schemaId: LessThanOrEqualToBigDecimalSchemaId, [LessThanOrEqualToBigDecimalSchemaId]: { max: max3 }, title: `lessThanOrEqualToBigDecimal(${formatted})`, description: `a BigDecimal less than or equal to ${formatted}`, ...annotations3 })); }; var PositiveBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/PositiveBigDecimal"); var positiveBigDecimal = (annotations3) => (self) => self.pipe(filter7((a) => isPositive(a), { schemaId: PositiveBigDecimalSchemaId, title: "positiveBigDecimal", description: `a positive BigDecimal`, ...annotations3 })); var PositiveBigDecimalFromSelf = /* @__PURE__ */ BigDecimalFromSelf.pipe(/* @__PURE__ */ positiveBigDecimal({ identifier: "PositiveBigDecimalFromSelf" })); var NonNegativeBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/NonNegativeBigDecimal"); var nonNegativeBigDecimal = (annotations3) => (self) => self.pipe(filter7((a) => a.value >= 0n, { schemaId: NonNegativeBigDecimalSchemaId, title: "nonNegativeBigDecimal", description: `a non-negative BigDecimal`, ...annotations3 })); var NonNegativeBigDecimalFromSelf = /* @__PURE__ */ BigDecimalFromSelf.pipe(/* @__PURE__ */ nonNegativeBigDecimal({ identifier: "NonNegativeBigDecimalFromSelf" })); var NegativeBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/NegativeBigDecimal"); var negativeBigDecimal = (annotations3) => (self) => self.pipe(filter7((a) => isNegative(a), { schemaId: NegativeBigDecimalSchemaId, title: "negativeBigDecimal", description: `a negative BigDecimal`, ...annotations3 })); var NegativeBigDecimalFromSelf = /* @__PURE__ */ BigDecimalFromSelf.pipe(/* @__PURE__ */ negativeBigDecimal({ identifier: "NegativeBigDecimalFromSelf" })); var NonPositiveBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/schema/NonPositiveBigDecimal"); var nonPositiveBigDecimal = (annotations3) => (self) => self.pipe(filter7((a) => a.value <= 0n, { schemaId: NonPositiveBigDecimalSchemaId, title: "nonPositiveBigDecimal", description: `a non-positive BigDecimal`, ...annotations3 })); var NonPositiveBigDecimalFromSelf = /* @__PURE__ */ BigDecimalFromSelf.pipe(/* @__PURE__ */ nonPositiveBigDecimal({ identifier: "NonPositiveBigDecimalFromSelf" })); var BetweenBigDecimalSchemaId = /* @__PURE__ */ Symbol.for("effect/SchemaId/BetweenBigDecimal"); var betweenBigDecimal = (minimum, maximum, annotations3) => (self) => { const formattedMinimum = format2(minimum); const formattedMaximum = format2(maximum); return self.pipe(filter7((a) => between2(a, { minimum, maximum }), { schemaId: BetweenBigDecimalSchemaId, [BetweenBigDecimalSchemaId]: { maximum, minimum }, title: `betweenBigDecimal(${formattedMinimum}, ${formattedMaximum})`, description: `a BigDecimal between ${formattedMinimum} and ${formattedMaximum}`, ...annotations3 })); }; var clampBigDecimal = (minimum, maximum) => (self) => transform2(self, self.pipe(typeSchema, betweenBigDecimal(minimum, maximum)), { strict: false, decode: (self2) => clamp4(self2, { minimum, maximum }), encode: identity }); var chunkArbitrary = (item, ctx) => (fc) => { const items = fc.array(item(fc)); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map(fromIterable2); }; var chunkPretty = (item) => (c) => `Chunk(${toReadonlyArray(c).map(item).join(", ")})`; var chunkParse = (decodeUnknown3) => (u, options, ast) => isChunk(u) ? isEmpty(u) ? succeed6(empty4()) : toComposite(decodeUnknown3(toReadonlyArray(u), options), fromIterable2, ast, u) : fail6(new Type2(ast, u)); var ChunkFromSelf = (value3) => { return declare([value3], { decode: (item) => chunkParse(decodeUnknown(Array$(item))), encode: (item) => chunkParse(encodeUnknown(Array$(item))) }, { description: `Chunk<${format6(value3)}>`, pretty: chunkPretty, arbitrary: chunkArbitrary, equivalence: getEquivalence4 }); }; var Chunk = (value3) => { const value_ = asSchema(value3); return transform2(Array$(value_), ChunkFromSelf(typeSchema(value_)), { strict: true, decode: (as4) => as4.length === 0 ? empty4() : fromIterable2(as4), encode: toReadonlyArray }); }; var nonEmptyChunkArbitrary = (item) => (fc) => array3(item(fc), { minLength: 1 }).map((as4) => unsafeFromNonEmptyArray(as4)); var nonEmptyChunkPretty = (item) => (c) => `NonEmptyChunk(${toReadonlyArray(c).map(item).join(", ")})`; var nonEmptyChunkParse = (decodeUnknown3) => (u, options, ast) => isChunk(u) && isNonEmpty2(u) ? toComposite(decodeUnknown3(toReadonlyArray(u), options), unsafeFromNonEmptyArray, ast, u) : fail6(new Type2(ast, u)); var NonEmptyChunkFromSelf = (value3) => { return declare([value3], { decode: (item) => nonEmptyChunkParse(decodeUnknown(NonEmptyArray(item))), encode: (item) => nonEmptyChunkParse(encodeUnknown(NonEmptyArray(item))) }, { description: `NonEmptyChunk<${format6(value3)}>`, pretty: nonEmptyChunkPretty, arbitrary: nonEmptyChunkArbitrary, equivalence: getEquivalence4 }); }; var NonEmptyChunk = (value3) => { const value_ = asSchema(value3); return transform2(NonEmptyArray(value_), NonEmptyChunkFromSelf(typeSchema(value_)), { strict: true, decode: unsafeFromNonEmptyArray, encode: toReadonlyArray }); }; var toData = (a) => Array.isArray(a) ? array4(a) : struct2(a); var dataArbitrary = (item) => (fc) => item(fc).map(toData); var dataPretty = (item) => (d) => `Data(${item(d)})`; var dataParse = (decodeUnknown3) => (u, options, ast) => isEqual(u) ? toComposite(decodeUnknown3(u, options), toData, ast, u) : fail6(new Type2(ast, u)); var DataFromSelf = (item) => declare([item], { decode: (item2) => dataParse(decodeUnknown(item2)), encode: (item2) => dataParse(encodeUnknown(item2)) }, { description: `Data<${format6(item)}>`, pretty: dataPretty, arbitrary: dataArbitrary }); var Data = (item) => transform2(item, DataFromSelf(typeSchema(item)), { strict: false, decode: toData, encode: (a) => Array.isArray(a) ? Array.from(a) : Object.assign({}, a) }); var isField = (u) => isSchema(u) || isPropertySignature(u); var isFields = (fields) => ownKeys(fields).every((key) => isField(fields[key])); var getFields = (hasFields) => "fields" in hasFields ? hasFields.fields : getFields(hasFields[RefineSchemaId]); var getSchemaFromFieldsOr = (fieldsOr) => isFields(fieldsOr) ? Struct(fieldsOr) : isSchema(fieldsOr) ? fieldsOr : Struct(getFields(fieldsOr)); var getFieldsFromFieldsOr = (fieldsOr) => isFields(fieldsOr) ? fieldsOr : getFields(fieldsOr); var Class6 = (identifier2) => (fieldsOr, annotations3) => makeClass({ kind: "Class", identifier: identifier2, schema: getSchemaFromFieldsOr(fieldsOr), fields: getFieldsFromFieldsOr(fieldsOr), Base: Class4, annotations: annotations3 }); var getClassTag = (tag2) => withConstructorDefault(propertySignature(Literal2(tag2)), () => tag2); var TaggedClass2 = (identifier2) => (tag2, fieldsOr, annotations3) => { const fields = getFieldsFromFieldsOr(fieldsOr); const schema = getSchemaFromFieldsOr(fieldsOr); const newFields = { _tag: getClassTag(tag2) }; const taggedFields = extendFields(newFields, fields); return class TaggedClass extends makeClass({ kind: "TaggedClass", identifier: identifier2 ?? tag2, schema: extend2(schema, Struct(newFields)), fields: taggedFields, Base: Class4, annotations: annotations3 }) { static _tag = tag2; }; }; var TaggedError2 = (identifier2) => (tag2, fieldsOr, annotations3) => { class Base3 extends Error3 { } ; Base3.prototype.name = tag2; const fields = getFieldsFromFieldsOr(fieldsOr); const schema = getSchemaFromFieldsOr(fieldsOr); const newFields = { _tag: getClassTag(tag2) }; const taggedFields = extendFields(newFields, fields); return class TaggedErrorClass extends makeClass({ kind: "TaggedError", identifier: identifier2 ?? tag2, schema: extend2(schema, Struct(newFields)), fields: taggedFields, Base: Base3, annotations: annotations3, disableToString: true }) { static _tag = tag2; get message() { return `{ ${ownKeys(fields).map((p) => `${formatPropertyKey(p)}: ${formatUnknown(this[p])}`).join(", ")} }`; } }; }; var extendFields = (a, b) => { const out = { ...a }; for (const key of ownKeys(b)) { if (key in a) { throw new Error(getASTDuplicatePropertySignatureErrorMessage(key)); } out[key] = b[key]; } return out; }; function getDisableValidationMakeOption(options) { return isBoolean(options) ? options : options?.disableValidation ?? false; } var astCache = /* @__PURE__ */ globalValue("effect/Schema/astCache", () => /* @__PURE__ */ new WeakMap()); var getClassAnnotations = (annotations3) => { if (annotations3 === void 0) { return []; } else if (Array.isArray(annotations3)) { return annotations3; } else { return [annotations3]; } }; var makeClass = ({ Base: Base3, annotations: annotations3, disableToString, fields, identifier: identifier2, kind, schema }) => { const classSymbol = Symbol.for(`effect/Schema/${kind}/${identifier2}`); const [typeAnnotations, transformationAnnotations, encodedAnnotations] = getClassAnnotations(annotations3); const typeSchema_ = typeSchema(schema); const declarationSurrogate = typeSchema_.annotations({ identifier: identifier2, ...typeAnnotations }); const typeSide = typeSchema_.annotations({ [AutoTitleAnnotationId]: `${identifier2} (Type side)`, ...typeAnnotations }); const constructorSchema = schema.annotations({ [AutoTitleAnnotationId]: `${identifier2} (Constructor)`, ...typeAnnotations }); const encodedSide = schema.annotations({ [AutoTitleAnnotationId]: `${identifier2} (Encoded side)`, ...encodedAnnotations }); const transformationSurrogate = schema.annotations({ [JSONIdentifierAnnotationId]: identifier2, ...encodedAnnotations, ...typeAnnotations, ...transformationAnnotations }); const fallbackInstanceOf = (u) => hasProperty(u, classSymbol) && is(typeSide)(u); const klass = class extends Base3 { constructor(props = {}, options = false) { props = { ...props }; if (kind !== "Class") { delete props["_tag"]; } props = lazilyMergeDefaults(fields, props); if (!getDisableValidationMakeOption(options)) { props = validateSync(constructorSchema)(props); } super(props, true); } // ---------------- // Schema interface // ---------------- static [TypeId15] = variance5; static get ast() { let out = astCache.get(this); if (out) { return out; } const declaration = declare([typeSide], { decode: () => (input, _, ast) => input instanceof this || fallbackInstanceOf(input) ? succeed6(input) : fail6(new Type2(ast, input)), encode: () => (input, options) => input instanceof this ? succeed6(input) : map13(encodeUnknown(typeSide)(input, options), (props) => new this(props, true)) }, { identifier: identifier2, pretty: (pretty3) => (self) => `${identifier2}(${pretty3(self)})`, // @ts-expect-error arbitrary: (arb) => (fc) => arb(fc).map((props) => new this(props)), equivalence: identity, [SurrogateAnnotationId]: declarationSurrogate.ast, ...typeAnnotations }); out = transform2(encodedSide, declaration, { strict: true, decode: (input) => new this(input, true), encode: identity }).annotations({ [SurrogateAnnotationId]: transformationSurrogate.ast, ...transformationAnnotations }).ast; astCache.set(this, out); return out; } static pipe() { return pipeArguments(this, arguments); } static annotations(annotations4) { return make34(this.ast).annotations(annotations4); } static toString() { return `(${String(encodedSide)} <-> ${identifier2})`; } // ---------------- // Class interface // ---------------- static make(...args2) { return new this(...args2); } static fields = { ...fields }; static identifier = identifier2; static extend(identifier3) { return (newFieldsOr, annotations4) => { const newFields = getFieldsFromFieldsOr(newFieldsOr); const newSchema = getSchemaFromFieldsOr(newFieldsOr); const extendedFields = extendFields(fields, newFields); return makeClass({ kind, identifier: identifier3, schema: extend2(schema, newSchema), fields: extendedFields, Base: this, annotations: annotations4 }); }; } static transformOrFail(identifier3) { return (newFieldsOr, options, annotations4) => { const transformedFields = extendFields(fields, newFieldsOr); return makeClass({ kind, identifier: identifier3, schema: transformOrFail(schema, typeSchema(Struct(transformedFields)), options), fields: transformedFields, Base: this, annotations: annotations4 }); }; } static transformOrFailFrom(identifier3) { return (newFields, options, annotations4) => { const transformedFields = extendFields(fields, newFields); return makeClass({ kind, identifier: identifier3, schema: transformOrFail(encodedSchema(schema), Struct(transformedFields), options), fields: transformedFields, Base: this, annotations: annotations4 }); }; } // ---------------- // other // ---------------- get [classSymbol]() { return classSymbol; } }; if (disableToString !== true) { Object.defineProperty(klass.prototype, "toString", { value() { return `${identifier2}({ ${ownKeys(fields).map((p) => `${formatPropertyKey(p)}: ${formatUnknown(this[p])}`).join(", ")} })`; }, configurable: true }); } return klass; }; var FiberIdNoneEncoded = /* @__PURE__ */ Struct({ _tag: Literal2("None") }).annotations({ identifier: "FiberIdNoneEncoded" }); var FiberIdRuntimeEncoded = /* @__PURE__ */ Struct({ _tag: Literal2("Runtime"), id: Int, startTimeMillis: Int }).annotations({ identifier: "FiberIdRuntimeEncoded" }); var FiberIdCompositeEncoded = /* @__PURE__ */ Struct({ _tag: Literal2("Composite"), left: suspend5(() => FiberIdEncoded), right: suspend5(() => FiberIdEncoded) }).annotations({ identifier: "FiberIdCompositeEncoded" }); var FiberIdEncoded = /* @__PURE__ */ Union2(FiberIdNoneEncoded, FiberIdRuntimeEncoded, FiberIdCompositeEncoded).annotations({ identifier: "FiberIdEncoded" }); var fiberIdArbitrary = (fc) => fc.letrec((tie) => ({ None: fc.record({ _tag: fc.constant("None") }), Runtime: fc.record({ _tag: fc.constant("Runtime"), id: fc.integer(), startTimeMillis: fc.integer() }), Composite: fc.record({ _tag: fc.constant("Composite"), left: tie("FiberId"), right: tie("FiberId") }), FiberId: fc.oneof(tie("None"), tie("Runtime"), tie("Composite")) })).FiberId.map(fiberIdDecode); var fiberIdPretty = (fiberId2) => { switch (fiberId2._tag) { case "None": return "FiberId.none"; case "Runtime": return `FiberId.runtime(${fiberId2.id}, ${fiberId2.startTimeMillis})`; case "Composite": return `FiberId.composite(${fiberIdPretty(fiberId2.right)}, ${fiberIdPretty(fiberId2.left)})`; } }; var FiberIdFromSelf = class extends (/* @__PURE__ */ declare(isFiberId2, { identifier: "FiberIdFromSelf", pretty: () => fiberIdPretty, arbitrary: () => fiberIdArbitrary })) { }; var fiberIdDecode = (input) => { switch (input._tag) { case "None": return none4; case "Runtime": return runtime2(input.id, input.startTimeMillis); case "Composite": return composite2(fiberIdDecode(input.left), fiberIdDecode(input.right)); } }; var fiberIdEncode = (input) => { switch (input._tag) { case "None": return { _tag: "None" }; case "Runtime": return { _tag: "Runtime", id: input.id, startTimeMillis: input.startTimeMillis }; case "Composite": return { _tag: "Composite", left: fiberIdEncode(input.left), right: fiberIdEncode(input.right) }; } }; var FiberId = class extends (/* @__PURE__ */ transform2(FiberIdEncoded, FiberIdFromSelf, { strict: true, decode: fiberIdDecode, encode: fiberIdEncode }).annotations({ identifier: "FiberId" })) { }; var causeDieEncoded = (defect) => Struct({ _tag: Literal2("Die"), defect }); var CauseEmptyEncoded = /* @__PURE__ */ Struct({ _tag: /* @__PURE__ */ Literal2("Empty") }); var causeFailEncoded = (error) => Struct({ _tag: Literal2("Fail"), error }); var CauseInterruptEncoded = /* @__PURE__ */ Struct({ _tag: /* @__PURE__ */ Literal2("Interrupt"), fiberId: FiberIdEncoded }); var causeParallelEncoded = (causeEncoded2) => Struct({ _tag: Literal2("Parallel"), left: causeEncoded2, right: causeEncoded2 }); var causeSequentialEncoded = (causeEncoded2) => Struct({ _tag: Literal2("Sequential"), left: causeEncoded2, right: causeEncoded2 }); var causeEncoded = (error, defect) => { const recur = suspend5(() => out); const out = Union2(CauseEmptyEncoded, causeFailEncoded(error), causeDieEncoded(defect), CauseInterruptEncoded, causeSequentialEncoded(recur), causeParallelEncoded(recur)).annotations({ title: `CauseEncoded<${format6(error)}>` }); return out; }; var causeArbitrary = (error, defect) => (fc) => fc.letrec((tie) => ({ Empty: fc.record({ _tag: fc.constant("Empty") }), Fail: fc.record({ _tag: fc.constant("Fail"), error: error(fc) }), Die: fc.record({ _tag: fc.constant("Die"), defect: defect(fc) }), Interrupt: fc.record({ _tag: fc.constant("Interrupt"), fiberId: fiberIdArbitrary(fc) }), Sequential: fc.record({ _tag: fc.constant("Sequential"), left: tie("Cause"), right: tie("Cause") }), Parallel: fc.record({ _tag: fc.constant("Parallel"), left: tie("Cause"), right: tie("Cause") }), Cause: fc.oneof(tie("Empty"), tie("Fail"), tie("Die"), tie("Interrupt"), tie("Sequential"), tie("Parallel")) })).Cause.map(causeDecode); var causePretty = (error) => (cause) => { const f = (cause2) => { switch (cause2._tag) { case "Empty": return "Cause.empty"; case "Fail": return `Cause.fail(${error(cause2.error)})`; case "Die": return `Cause.die(${pretty2(cause2)})`; case "Interrupt": return `Cause.interrupt(${fiberIdPretty(cause2.fiberId)})`; case "Sequential": return `Cause.sequential(${f(cause2.left)}, ${f(cause2.right)})`; case "Parallel": return `Cause.parallel(${f(cause2.left)}, ${f(cause2.right)})`; } }; return f(cause); }; var causeParse = (decodeUnknown3) => (u, options, ast) => isCause2(u) ? toComposite(decodeUnknown3(causeEncode(u), options), causeDecode, ast, u) : fail6(new Type2(ast, u)); var CauseFromSelf = ({ defect, error }) => { return declare([error, defect], { decode: (error2, defect2) => causeParse(decodeUnknown(causeEncoded(error2, defect2))), encode: (error2, defect2) => causeParse(encodeUnknown(causeEncoded(error2, defect2))) }, { title: `Cause<${error.ast}>`, pretty: causePretty, arbitrary: causeArbitrary }); }; function causeDecode(cause) { switch (cause._tag) { case "Empty": return empty24; case "Fail": return fail3(cause.error); case "Die": return die3(cause.defect); case "Interrupt": return interrupt2(fiberIdDecode(cause.fiberId)); case "Sequential": return sequential4(causeDecode(cause.left), causeDecode(cause.right)); case "Parallel": return parallel4(causeDecode(cause.left), causeDecode(cause.right)); } } function causeEncode(cause) { switch (cause._tag) { case "Empty": return { _tag: "Empty" }; case "Fail": return { _tag: "Fail", error: cause.error }; case "Die": return { _tag: "Die", defect: cause.defect }; case "Interrupt": return { _tag: "Interrupt", fiberId: cause.fiberId }; case "Sequential": return { _tag: "Sequential", left: causeEncode(cause.left), right: causeEncode(cause.right) }; case "Parallel": return { _tag: "Parallel", left: causeEncode(cause.left), right: causeEncode(cause.right) }; } } var Cause = ({ defect, error }) => { const error_ = asSchema(error); const defect_ = asSchema(defect); return transform2(causeEncoded(error_, defect_), CauseFromSelf({ error: typeSchema(error_), defect: Unknown }), { strict: false, decode: causeDecode, encode: causeEncode }); }; var Defect = /* @__PURE__ */ transform2(Unknown, Unknown, { strict: true, decode: (u) => { if (isObject(u) && "message" in u && typeof u.message === "string") { const err2 = new Error(u.message, { cause: u }); if ("name" in u && typeof u.name === "string") { err2.name = u.name; } err2.stack = "stack" in u && typeof u.stack === "string" ? u.stack : ""; return err2; } return String(u); }, encode: (defect) => { if (defect instanceof Error) { return { name: defect.name, message: defect.message // no stack because of security reasons }; } return prettyErrorMessage(defect); } }).annotations({ identifier: "Defect" }); var exitFailureEncoded = (error, defect) => Struct({ _tag: Literal2("Failure"), cause: causeEncoded(error, defect) }); var exitSuccessEncoded = (value3) => Struct({ _tag: Literal2("Success"), value: value3 }); var exitEncoded = (value3, error, defect) => Union2(exitFailureEncoded(error, defect), exitSuccessEncoded(value3)).annotations({ title: `ExitEncoded<${format6(value3)}, ${format6(error)}, ${format6(defect)}>` }); var exitDecode = (input) => { switch (input._tag) { case "Failure": return failCause2(causeDecode(input.cause)); case "Success": return succeed2(input.value); } }; var exitArbitrary = (value3, error, defect) => (fc) => fc.oneof(fc.record({ _tag: fc.constant("Failure"), cause: causeArbitrary(error, defect)(fc) }), fc.record({ _tag: fc.constant("Success"), value: value3(fc) })).map(exitDecode); var exitPretty = (value3, error) => (exit3) => exit3._tag === "Failure" ? `Exit.failCause(${causePretty(error)(exit3.cause)})` : `Exit.succeed(${value3(exit3.value)})`; var exitParse = (decodeUnknownValue, decodeUnknownCause) => (u, options, ast) => isExit(u) ? match6(u, { onFailure: (cause) => toComposite(decodeUnknownCause(cause, options), failCause2, ast, u), onSuccess: (value3) => toComposite(decodeUnknownValue(value3, options), succeed2, ast, u) }) : fail6(new Type2(ast, u)); var ExitFromSelf = ({ defect, failure, success }) => declare([success, failure, defect], { decode: (success2, failure2, defect2) => exitParse(decodeUnknown(success2), decodeUnknown(CauseFromSelf({ error: failure2, defect: defect2 }))), encode: (success2, failure2, defect2) => exitParse(encodeUnknown(success2), encodeUnknown(CauseFromSelf({ error: failure2, defect: defect2 }))) }, { title: `Exit<${success.ast}, ${failure.ast}>`, pretty: exitPretty, arbitrary: exitArbitrary }); var Exit = ({ defect, failure, success }) => { const success_ = asSchema(success); const failure_ = asSchema(failure); const defect_ = asSchema(defect); return transform2(exitEncoded(success_, failure_, defect_), ExitFromSelf({ failure: typeSchema(failure_), success: typeSchema(success_), defect: Unknown }), { strict: false, decode: exitDecode, encode: (exit3) => exit3._tag === "Failure" ? { _tag: "Failure", cause: exit3.cause } : { _tag: "Success", value: exit3.value } }); }; var hashSetArbitrary = (item, ctx) => (fc) => { const items = fc.array(item(fc)); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map(fromIterable5); }; var hashSetPretty = (item) => (set6) => `HashSet(${Array.from(set6).map((a) => item(a)).join(", ")})`; var hashSetEquivalence = (item) => { const arrayEquivalence = getEquivalence3(item); return make((a, b) => arrayEquivalence(Array.from(a), Array.from(b))); }; var hashSetParse = (decodeUnknown3) => (u, options, ast) => isHashSet2(u) ? toComposite(decodeUnknown3(Array.from(u), options), fromIterable5, ast, u) : fail6(new Type2(ast, u)); var HashSetFromSelf = (value3) => { return declare([value3], { decode: (item) => hashSetParse(decodeUnknown(Array$(item))), encode: (item) => hashSetParse(encodeUnknown(Array$(item))) }, { description: `HashSet<${format6(value3)}>`, pretty: hashSetPretty, arbitrary: hashSetArbitrary, equivalence: hashSetEquivalence }); }; var HashSet = (value3) => { const value_ = asSchema(value3); return transform2(Array$(value_), HashSetFromSelf(typeSchema(value_)), { strict: true, decode: (as4) => fromIterable5(as4), encode: (set6) => Array.from(set6) }); }; var hashMapArbitrary = (key, value3, ctx) => (fc) => { const items = fc.array(fc.tuple(key(fc), value3(fc))); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map(fromIterable6); }; var hashMapPretty = (key, value3) => (map15) => `HashMap([${Array.from(map15).map(([k, v]) => `[${key(k)}, ${value3(v)}]`).join(", ")}])`; var hashMapEquivalence = (key, value3) => { const arrayEquivalence = getEquivalence3(make(([ka, va], [kb, vb]) => key(ka, kb) && value3(va, vb))); return make((a, b) => arrayEquivalence(Array.from(a), Array.from(b))); }; var hashMapParse = (decodeUnknown3) => (u, options, ast) => isHashMap2(u) ? toComposite(decodeUnknown3(Array.from(u), options), fromIterable6, ast, u) : fail6(new Type2(ast, u)); var HashMapFromSelf = ({ key, value: value3 }) => { return declare([key, value3], { decode: (key2, value4) => hashMapParse(decodeUnknown(Array$(Tuple(key2, value4)))), encode: (key2, value4) => hashMapParse(encodeUnknown(Array$(Tuple(key2, value4)))) }, { description: `HashMap<${format6(key)}, ${format6(value3)}>`, pretty: hashMapPretty, arbitrary: hashMapArbitrary, equivalence: hashMapEquivalence }); }; var HashMap = ({ key, value: value3 }) => { const key_ = asSchema(key); const value_ = asSchema(value3); return transform2(Array$(Tuple(key_, value_)), HashMapFromSelf({ key: typeSchema(key_), value: typeSchema(value_) }), { strict: true, decode: (as4) => fromIterable6(as4), encode: (map15) => Array.from(map15) }); }; var listArbitrary = (item, ctx) => (fc) => { const items = fc.array(item(fc)); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map(fromIterable7); }; var listPretty = (item) => (set6) => `List(${Array.from(set6).map((a) => item(a)).join(", ")})`; var listEquivalence = (item) => { const arrayEquivalence = getEquivalence3(item); return make((a, b) => arrayEquivalence(Array.from(a), Array.from(b))); }; var listParse = (decodeUnknown3) => (u, options, ast) => isList(u) ? toComposite(decodeUnknown3(Array.from(u), options), fromIterable7, ast, u) : fail6(new Type2(ast, u)); var ListFromSelf = (value3) => { return declare([value3], { decode: (item) => listParse(decodeUnknown(Array$(item))), encode: (item) => listParse(encodeUnknown(Array$(item))) }, { description: `List<${format6(value3)}>`, pretty: listPretty, arbitrary: listArbitrary, equivalence: listEquivalence }); }; var List = (value3) => { const value_ = asSchema(value3); return transform2(Array$(value_), ListFromSelf(typeSchema(value_)), { strict: true, decode: (as4) => fromIterable7(as4), encode: (set6) => Array.from(set6) }); }; var sortedSetArbitrary = (item, ord, ctx) => (fc) => { const items = fc.array(item(fc)); return (ctx.depthIdentifier !== void 0 ? fc.oneof(ctx, fc.constant([]), items) : items).map((as4) => fromIterable11(as4, ord)); }; var sortedSetPretty = (item) => (set6) => `new SortedSet([${Array.from(values3(set6)).map((a) => item(a)).join(", ")}])`; var sortedSetParse = (decodeUnknown3, ord) => (u, options, ast) => isSortedSet(u) ? toComposite(decodeUnknown3(Array.from(values3(u)), options), (as4) => fromIterable11(as4, ord), ast, u) : fail6(new Type2(ast, u)); var SortedSetFromSelf = (value3, ordA, ordI) => { return declare([value3], { decode: (item) => sortedSetParse(decodeUnknown(Array$(item)), ordA), encode: (item) => sortedSetParse(encodeUnknown(Array$(item)), ordI) }, { description: `SortedSet<${format6(value3)}>`, pretty: sortedSetPretty, arbitrary: (arb, ctx) => sortedSetArbitrary(arb, ordA, ctx), equivalence: () => getEquivalence6() }); }; var SortedSet = (value3, ordA) => { const value_ = asSchema(value3); const to = typeSchema(value_); return transform2(Array$(value_), SortedSetFromSelf(to, ordA, ordA), { strict: true, decode: (as4) => fromIterable11(as4, ordA), encode: (set6) => Array.from(values3(set6)) }); }; var BooleanFromUnknown = class extends (/* @__PURE__ */ transform2(Unknown, Boolean$, { strict: true, decode: isTruthy, encode: identity }).annotations({ identifier: "BooleanFromUnknown" })) { }; var BooleanFromString = class extends (/* @__PURE__ */ transform2(Literal2("true", "false"), Boolean$, { strict: true, decode: (value3) => value3 === "true", encode: (value3) => value3 ? "true" : "false" }).annotations({ identifier: "BooleanFromString" })) { }; var Config = (name, schema) => { const decodeUnknownEither3 = decodeUnknownEither(schema); return string4(name).pipe(mapOrFail2((s) => decodeUnknownEither3(s).pipe(mapLeft((error) => InvalidData2([], TreeFormatter.formatIssueSync(error)))))); }; var symbolSerializable = /* @__PURE__ */ Symbol.for("effect/Schema/Serializable/symbol"); var asSerializable = (serializable) => serializable; var serializableSchema = (self) => self[symbolSerializable]; var serialize = (self) => encodeUnknown2(self[symbolSerializable])(self); var deserialize = /* @__PURE__ */ dual(2, (self, value3) => decodeUnknown2(self[symbolSerializable])(value3)); var symbolWithResult = /* @__PURE__ */ Symbol.for("effect/Schema/Serializable/symbolResult"); var asWithResult = (withExit) => withExit; var failureSchema = (self) => self[symbolWithResult].failure; var successSchema = (self) => self[symbolWithResult].success; var exitSchemaCache = /* @__PURE__ */ globalValue("effect/Schema/Serializable/exitSchemaCache", () => /* @__PURE__ */ new WeakMap()); var exitSchema = (self) => { const proto5 = Object.getPrototypeOf(self); if (!(symbolWithResult in proto5)) { return Exit({ failure: failureSchema(self), success: successSchema(self), defect: Defect }); } let schema = exitSchemaCache.get(proto5); if (schema === void 0) { schema = Exit({ failure: failureSchema(self), success: successSchema(self), defect: Defect }); exitSchemaCache.set(proto5, schema); } return schema; }; var serializeFailure = /* @__PURE__ */ dual(2, (self, value3) => encode4(self[symbolWithResult].failure)(value3)); var deserializeFailure = /* @__PURE__ */ dual(2, (self, value3) => decodeUnknown2(self[symbolWithResult].failure)(value3)); var serializeSuccess = /* @__PURE__ */ dual(2, (self, value3) => encode4(self[symbolWithResult].success)(value3)); var deserializeSuccess = /* @__PURE__ */ dual(2, (self, value3) => decodeUnknown2(self[symbolWithResult].success)(value3)); var serializeExit = /* @__PURE__ */ dual(2, (self, value3) => encode4(exitSchema(self))(value3)); var deserializeExit = /* @__PURE__ */ dual(2, (self, value3) => decodeUnknown2(exitSchema(self))(value3)); var asSerializableWithResult = (procedure) => procedure; var TaggedRequest = (identifier2) => (tag2, options, annotations3) => { const taggedFields = extendFields({ _tag: getClassTag(tag2) }, options.payload); return class TaggedRequestClass extends makeClass({ kind: "TaggedRequest", identifier: identifier2 ?? tag2, schema: Struct(taggedFields), fields: taggedFields, Base: Class5, annotations: annotations3 }) { static _tag = tag2; static success = options.success; static failure = options.failure; get [symbolSerializable]() { return this.constructor; } get [symbolWithResult]() { return { failure: options.failure, success: options.success }; } }; }; var equivalence2 = (schema) => go2(schema.ast, []); var getEquivalenceAnnotation = /* @__PURE__ */ getAnnotation(EquivalenceAnnotationId); var go2 = (ast, path2) => { const hook = getEquivalenceAnnotation(ast); if (isSome2(hook)) { switch (ast._tag) { case "Declaration": return hook.value(...ast.typeParameters.map((tp) => go2(tp, path2))); case "Refinement": return hook.value(go2(ast.from, path2)); default: return hook.value(); } } switch (ast._tag) { case "NeverKeyword": throw new Error(getEquivalenceUnsupportedErrorMessage(ast, path2)); case "Transformation": return go2(ast.to, path2); case "Declaration": case "Literal": case "StringKeyword": case "TemplateLiteral": case "UniqueSymbol": case "SymbolKeyword": case "UnknownKeyword": case "AnyKeyword": case "NumberKeyword": case "BooleanKeyword": case "BigIntKeyword": case "UndefinedKeyword": case "VoidKeyword": case "Enums": case "ObjectKeyword": return equals; case "Refinement": return go2(ast.from, path2); case "Suspend": { const get9 = memoizeThunk(() => go2(ast.f(), path2)); return (a, b) => get9()(a, b); } case "TupleType": { const elements = ast.elements.map((element2, i) => go2(element2.type, path2.concat(i))); const rest = ast.rest.map((annotatedAST) => go2(annotatedAST.type, path2)); return make((a, b) => { const len = a.length; if (len !== b.length) { return false; } let i = 0; for (; i < Math.min(len, ast.elements.length); i++) { if (!elements[i](a[i], b[i])) { return false; } } if (isNonEmptyReadonlyArray(rest)) { const [head4, ...tail] = rest; for (; i < len - tail.length; i++) { if (!head4(a[i], b[i])) { return false; } } for (let j = 0; j < tail.length; j++) { i += j; if (!tail[j](a[i], b[i])) { return false; } } } return true; }); } case "TypeLiteral": { if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) { return equals; } const propertySignatures = ast.propertySignatures.map((ps) => go2(ps.type, path2.concat(ps.name))); const indexSignatures = ast.indexSignatures.map((is2) => go2(is2.type, path2)); return make((a, b) => { const aStringKeys = Object.keys(a); const aSymbolKeys = Object.getOwnPropertySymbols(a); for (let i = 0; i < propertySignatures.length; i++) { const ps = ast.propertySignatures[i]; const name = ps.name; const aHas = Object.prototype.hasOwnProperty.call(a, name); const bHas = Object.prototype.hasOwnProperty.call(b, name); if (ps.isOptional) { if (aHas !== bHas) { return false; } } if (aHas && bHas && !propertySignatures[i](a[name], b[name])) { return false; } } let bSymbolKeys; let bStringKeys; for (let i = 0; i < indexSignatures.length; i++) { const is2 = ast.indexSignatures[i]; const base = getParameterBase(is2.parameter); const isSymbol2 = isSymbolKeyword(base); if (isSymbol2) { bSymbolKeys = bSymbolKeys || Object.getOwnPropertySymbols(b); if (aSymbolKeys.length !== bSymbolKeys.length) { return false; } } else { bStringKeys = bStringKeys || Object.keys(b); if (aStringKeys.length !== bStringKeys.length) { return false; } } const aKeys = isSymbol2 ? aSymbolKeys : aStringKeys; for (let j = 0; j < aKeys.length; j++) { const key = aKeys[j]; if (!Object.prototype.hasOwnProperty.call(b, key) || !indexSignatures[i](a[key], b[key])) { return false; } } } return true; }); } case "Union": { const searchTree = getSearchTree(ast.types, true); const ownKeys2 = ownKeys(searchTree.keys); const len = ownKeys2.length; return make((a, b) => { let candidates = []; if (len > 0 && isRecordOrArray(a)) { for (let i = 0; i < len; i++) { const name = ownKeys2[i]; const buckets = searchTree.keys[name].buckets; if (Object.prototype.hasOwnProperty.call(a, name)) { const literal2 = String(a[name]); if (Object.prototype.hasOwnProperty.call(buckets, literal2)) { candidates = candidates.concat(buckets[literal2]); } } } } if (searchTree.otherwise.length > 0) { candidates = candidates.concat(searchTree.otherwise); } const tuples = candidates.map((ast2) => [go2(ast2, path2), is({ ast: ast2 })]); for (let i = 0; i < tuples.length; i++) { const [equivalence3, is2] = tuples[i]; if (is2(a) && is2(b)) { if (equivalence3(a, b)) { return true; } } } return false; }); } } }; var PropertyKey$ = class extends (/* @__PURE__ */ Union2(String$, Number$, SymbolFromStruct).annotations({ identifier: "PropertyKey" })) { }; var ArrayFormatterIssue = class extends (/* @__PURE__ */ Struct({ _tag: propertySignature(Literal2("Pointer", "Unexpected", "Missing", "Composite", "Refinement", "Transformation", "Type", "Forbidden")).annotations({ description: "The tag identifying the type of parse issue" }), path: propertySignature(Array$(PropertyKey$)).annotations({ description: "The path to the property where the issue occurred" }), message: propertySignature(String$).annotations({ description: "A descriptive message explaining the issue" }) }).annotations({ identifier: "ArrayFormatterIssue", description: "Represents an issue returned by the ArrayFormatter formatter" })) { }; // src/defaultConfig.ts function defaultConfig() { return makePrismaConfigInternal({ earlyAccess: true, loadedFromFile: null }); } // src/defineConfig.ts var debug2 = Debug("prisma:config:defineConfig"); function defineConfig(configInput) { const config2 = defaultConfig(); debug2("[default]: %o", config2); defineSchemaConfig(config2, configInput); defineStudioConfig(config2, configInput); defineMigrateConfig(config2, configInput); return config2; } function defineSchemaConfig(config2, configInput) { if (!configInput.schema) { return; } config2.schema = configInput.schema; debug2("[config.schema]: %o", config2.schema); } function defineStudioConfig(config2, configInput) { if (!configInput.studio) { return; } const { adapter: getAdapterFactory } = configInput.studio; config2.studio = { adapter: async (env) => { const adapterFactory = await getAdapterFactory(env); debug2("[config.studio.adapter]: %o", adapterFactory.adapterName); return adapterFactory; } }; debug2("[config.studio]: %o", config2.studio); } function defineMigrateConfig(config2, configInput) { if (!configInput.migrate) { return; } const { adapter: getAdapterFactory } = configInput.migrate; config2.migrate = { adapter: async (env) => { const adapterFactory = await getAdapterFactory(env); debug2("[config.migrate.adapter]: %o", adapterFactory.adapterName); return bindMigrationAwareSqlAdapterFactory(adapterFactory); } }; debug2("[config.schema]: %o", config2.migrate); } // src/PrismaConfig.ts var debug3 = Debug("prisma:config:PrismaConfig"); var sqlMigrationAwareDriverAdapterFactoryShape = () => Schema_exports.declare( (input) => { return typeof input === "function"; }, { identifier: "SqlMigrationAwareDriverAdapterFactory", encode: identity, decode: identity } ); var errorCapturingSqlMigrationAwareDriverAdapterFactoryShape = () => Schema_exports.declare( (input) => { return typeof input === "function"; }, { identifier: "ErrorCapturingSqlMigrationAwareDriverAdapterFactory", encode: identity, decode: identity } ); var createPrismaStudioConfigShape = () => Schema_exports.Struct({ /** * Instantiates the Prisma driver adapter to use for Prisma Studio. */ adapter: sqlMigrationAwareDriverAdapterFactoryShape() }); var createPrismaMigrateConfigShape = () => Schema_exports.Struct({ /** * Instantiates the Prisma driver adapter to use for Prisma Migrate + Introspect. */ adapter: sqlMigrationAwareDriverAdapterFactoryShape() }); var createPrismaMigrateConfigInternalShape = () => Schema_exports.Struct({ /** * Instantiates the Prisma driver adapter to use for Prisma Migrate + Introspect. */ adapter: errorCapturingSqlMigrationAwareDriverAdapterFactoryShape() }); if (false) { __testPrismaStudioConfigShapeValueA; __testPrismaStudioConfigShapeValueB; __testPrismaMigrateConfigShapeValueA; __testPrismaMigrateConfigShapeValueB; } if (false) { __testPrismaConfig; __testPrismaConfigInternal; } var createPrismaConfigShape = () => Schema_exports.Struct({ earlyAccess: Schema_exports.Literal(true), schema: Schema_exports.optional(Schema_exports.String), studio: Schema_exports.optional(createPrismaStudioConfigShape()), migrate: Schema_exports.optional(createPrismaMigrateConfigShape()) }); if (false) { __testPrismaConfigValueA; __testPrismaConfigValueB; } function parsePrismaConfigShape(input) { return Schema_exports.decodeUnknownEither(createPrismaConfigShape(), {})(input, { onExcessProperty: "error" }); } var PRISMA_CONFIG_INTERNAL_BRAND = Symbol.for("PrismaConfigInternal"); var createPrismaConfigInternalShape = () => Schema_exports.Struct({ earlyAccess: Schema_exports.Literal(true), schema: Schema_exports.optional(Schema_exports.String), studio: Schema_exports.optional(createPrismaStudioConfigShape()), migrate: Schema_exports.optional(createPrismaMigrateConfigInternalShape()), loadedFromFile: Schema_exports.NullOr(Schema_exports.String) }); if (false) { __testPrismaConfigInternalValueA; __testPrismaConfigInternalValueB; } function brandPrismaConfigInternal(config2) { Object.defineProperty(config2, "__brand", { value: PRISMA_CONFIG_INTERNAL_BRAND, writable: true, configurable: true, enumerable: false }); return config2; } function parsePrismaConfigInternalShape(input) { debug3("Parsing PrismaConfigInternal: %o", input); if (typeof input === "object" && input !== null && input["__brand"] === PRISMA_CONFIG_INTERNAL_BRAND) { debug3("Short-circuit: input is already a PrismaConfigInternal object"); return Either_exports.right(input); } return pipe( Schema_exports.decodeUnknownEither(createPrismaConfigInternalShape(), {})(input, { onExcessProperty: "error" }), // Brand the output type to make `PrismaConfigInternal` opaque, without exposing the `Effect/Brand` type // to the public API. // This is done to work around the following issues: // - https://github.com/microsoft/rushstack/issues/1308 // - https://github.com/microsoft/rushstack/issues/4034 // - https://github.com/microsoft/TypeScript/issues/58914 Either_exports.map(brandPrismaConfigInternal) ); } function makePrismaConfigInternal(makeArgs) { return pipe(createPrismaConfigInternalShape().make(makeArgs), brandPrismaConfigInternal); } function parseDefaultExport(defaultExport) { const parseResultEither = pipe( // If the given config conforms to the `PrismaConfig` shape, feed it to `defineConfig`. parsePrismaConfigShape(defaultExport), Either_exports.map((config2) => { debug3("Parsed `PrismaConfig` shape: %o", config2); return defineConfig(config2); }), // Otherwise, try to parse it as a `PrismaConfigInternal` shape. Either_exports.orElse(() => parsePrismaConfigInternalShape(defaultExport)) ); if (Either_exports.isLeft(parseResultEither)) { throw parseResultEither.left; } return parseResultEither.right; } // src/defaultTestConfig.ts function defaultTestConfig() { return makePrismaConfigInternal({ earlyAccess: true, loadedFromFile: null }); } // src/loadConfigFromFile.ts var import_node_fs = __toESM(require("node:fs")); var import_node_path = __toESM(require("node:path")); var import_node_process = __toESM(require("node:process")); var import_jiti = require("jiti"); var debug4 = Debug("prisma:config:loadConfigFromFile"); async function loadConfigFromFile({ configFile, configRoot = import_node_process.default.cwd() }) { const start = performance.now(); const getTime = () => `${(performance.now() - start).toFixed(2)}ms`; let resolvedPath; if (configFile) { resolvedPath = import_node_path.default.resolve(configRoot, configFile); if (!import_node_fs.default.existsSync(resolvedPath)) { debug4(`The given config file was not found at %s`, resolvedPath); return { resolvedPath, error: { _tag: "ConfigFileNotFound" } }; } } else { resolvedPath = ["prisma.config.ts"].map((file) => import_node_path.default.resolve(configRoot, file)).find((file) => import_node_fs.default.existsSync(file)) ?? null; if (resolvedPath === null) { debug4(`No config file found in the current working directory %s`, configRoot); return { resolvedPath, config: defaultConfig() }; } } try { const { required: required3, error } = await requireTypeScriptFile(resolvedPath); if (error) { return { resolvedPath, error }; } debug4(`Config file loaded in %s`, getTime()); let defaultExport; try { defaultExport = parseDefaultExport(required3["default"]); } catch (e) { const error2 = e; return { resolvedPath, error: { _tag: "ConfigFileParseError", error: error2 } }; } import_node_process.default.stdout.write(`Loaded Prisma config from "${resolvedPath}". `); const prismaConfig = transformPathsInConfigToAbsolute(defaultExport, resolvedPath); return { config: { ...prismaConfig, loadedFromFile: resolvedPath }, resolvedPath }; } catch (e) { const error = e; return { resolvedPath, error: { _tag: "UnknownError", error } }; } } async function requireTypeScriptFile(resolvedPath) { try { const jiti = (0, import_jiti.createJiti)(__filename, { interopDefault: true, moduleCache: false }); const configExport = await jiti.import(resolvedPath); return { required: configExport, error: null }; } catch (e) { const error = e; debug4("jiti import failed: %s", error.message); return { error: { _tag: "TypeScriptImportFailed", error } }; } } function transformPathsInConfigToAbsolute(prismaConfig, resolvedPath) { if (prismaConfig.schema) { return { ...prismaConfig, schema: import_node_path.default.resolve(import_node_path.default.dirname(resolvedPath), prismaConfig.schema) }; } else { return prismaConfig; } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { defaultTestConfig, defineConfig, loadConfigFromFile });