@jixo/cli 0.26.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-replacer-C3H2FqOL.js","names":["map","omit","b","a","r","off","r","e","error","errorParser","promise","promises","path","node_path","process","parse","#whitespace","#text","#length","#tokenized","#tokenize","#getNext","#parseJsonValue","i","#numberEndToken","#parseObject","#parseArray","#parseNullOrTrueOrFalseOrNumber","#parseString","JSONC.parse","path","e","object","pattern","isString","path","p","stream","PassThroughStream","#streams","#onFinished","#ended","#aborted","aborted","error","noop","error","DirentFromStats","createDirentFromStats","os","path","pattern","isExtglob","n","isGlob","check","slash","globby","globParent","node","n","i","utils","stringify","isNumber","toRegexRange","a","b","zeros","pattern","i","max","intersection","string","integer","util","isObject","transform","stringify","a","b","v","fill","fill","utils","compile","walk","stringify","utils","expand","walk","p","i","stringify","parse","MAX_LENGTH","depth","CHAR_RIGHT_SQUARE_BRACKET","CHAR_LEFT_SQUARE_BRACKET","CHAR_LEFT_PARENTHESES","CHAR_RIGHT_PARENTHESES","CHAR_LEFT_CURLY_BRACE","CHAR_RIGHT_CURLY_BRACE","CHAR_COMMA","CHAR_DOT","index","parse","braces","pattern","path","POSIX_REGEX_SOURCE","chars","win32","path","append","utils","scan","isGlob","isExtglob","finished","braces","n","i","constants","utils","v","parse","win32","START_ANCHOR","opts","DOTS_SLASH","DOT_LITERAL","NO_DOT","QMARK","QMARK_NO_DOT","STAR","braces","n","value","append","isExtglob","ONE_CHAR","m","esc","chars","rest","escaped","i","t","SLASH_LITERAL","PLUS_LITERAL","NO_DOT_SLASH","NO_DOTS_SLASH","NO_DOTS","source","path","parse","utils","isObject","picomatch","state","pattern","p","append","util","utils","v","micromatch","omit","i","p","pattern","path","isDynamicPattern","pattern","isNegativePattern","getPositivePatterns","a","b","PassThrough","merge2","i","endStream","pipe","stream","merge","error","stream","array","fs","path","string","utils","pattern","read","path","stat","callFailureCallback","error","callSuccessCallback","read","path","stat","error","fs","createFileSystemAdapter","fs","Settings","async","sync","settings_1","path","getSettings","statSync","promise","queueMicrotask","i","fs","joinPathSegments","a","b","fsStat","constants_1","utils","common","read","readdirWithFileTypes","readdir","path","error","callFailureCallback","callSuccessCallback","fsStat","utils","common","error","fs","path","fsStat","fs","Settings","settings_1","path","getSettings","reusify","error","p","error","a","b","common","Reader","fsScandir","common","reader_1","error","async_1","error","stream_1","async_1","error","fsScandir","reader_1","error","sync_1","path","Settings","async_1","stream_1","sync_1","settings_1","path","fsStat","utils","pattern","error","stream_1","fsStat","fsWalk","reader_1","stream","i","pattern","error","fsWalk","reader_1","stream_1","error","stream","utils","pattern","pattern","utils","utils","isDirectory","utils","error","utils","path","async_1","provider_1","stream_1","provider_1","error","pattern","error","sync_1","fs","os","FastGlob","sync","stream","generateTasks","isDynamicPattern","convertPathToPattern","escapePath","assertPatternsInput","fsPromises","error","execFileCallback","path","pattern","pattern","file","normalizeOptions","process","fsPromises","fastGlob","pattern","path","nodePath","file","process","stat","patterns","options","fastGlob","s","m","h","d","w","y","parse","n","env","hash","i","debug","extend","v","formatArgs","save","load","useColors","m","c","error","r","v","tty","version","stream","supportsColor","error","k","useColors","c","i","v","t","e","n","r","i","s","c","a","o","u","encode","stringify","decode","decode","stringify","encode","debug","a","b","dirname","a","b","v","i","once","a","b","file","i","init","k","_","v","k","_","array","nullish","object","path","promises","i","chars","o","t","a","b","Class","aborted","x","config","base64","base64url","hex","initializer","util.jsonStringifyReplacer","issue","error","i","path","a","b","core.$ZodAsyncError","e","util.finalizeIssue","core.config","parse","errors.$ZodRealError","parseAsync","errors.$ZodError","safeParse","safeParseAsync","encode","decode","encodeAsync","decodeAsync","safeEncode","safeDecode","safeEncodeAsync","safeDecodeAsync","cuid","cuid2","ulid","xid","ksuid","nanoid","duration","guid","uuid","version","email","_emoji","emoji","ipv4","ipv6","cidrv4","cidrv6","base64","base64url","hostname","e164","date","time","datetime","string","bigint","number","boolean","_null","_undefined","hex","inst","util.floatSafeRemainder","util.NUMBER_FORMAT_RANGES","regexes.integer","util.BIGINT_FORMAT_RANGES","util.nullish","util.getSizableOrigin","util.getLengthableOrigin","regexes.lowercase","regexes.uppercase","util.escapeRegex","pattern","util.prefixIssues","result","x","util.aborted","checks","_","core.$ZodAsyncError","checkResult","canary","result","r","safeParse","safeParseAsync","regexes.string","regexes.guid","v","regexes.uuid","regexes.email","url","regexes.emoji","regexes.nanoid","regexes.cuid","regexes.cuid2","regexes.ulid","regexes.xid","regexes.ksuid","regexes.datetime","regexes.date","regexes.time","regexes.duration","regexes.ipv4","inst","regexes.ipv6","regexes.cidrv4","regexes.cidrv6","regexes.base64","base64","c","regexes.base64url","regexes.e164","regexes.number","regexes.boolean","regexes.bigint","regexes.undefined","regexes.null","util.prefixIssues","i","k","util.optionalKeys","t","util.cached","isObject","util.isObject","util.esc","allowsEval","util.allowsEval","util.finalizeIssue","core.config","o","util.cleanRegex","p","async","results","map","left","right","a","b","util.isPlainObject","keyResult","valueResult","util.getEnumValues","util.escapeRegex","core.$ZodEncodeError","pattern","x","parse","parseAsync","util.issue","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","parsedType","t","error","issue","util.stringifyPrimitive","util.joinValues","parsedType","t","error","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","parsedType","t","error","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","t","error","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","error","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","parsedType","t","issue","util.stringifyPrimitive","util.joinValues","p","f","Class","util.normalizeParams","_undefined","_null","_void","checks.$ZodCheckLessThan","checks.$ZodCheckGreaterThan","checks.$ZodCheckMultipleOf","checks.$ZodCheckMaxSize","checks.$ZodCheckMinSize","checks.$ZodCheckSizeEquals","checks.$ZodCheckMaxLength","checks.$ZodCheckMinLength","checks.$ZodCheckLengthEquals","checks.$ZodCheckRegex","checks.$ZodCheckLowerCase","checks.$ZodCheckUpperCase","checks.$ZodCheckIncludes","checks.$ZodCheckStartsWith","checks.$ZodCheckEndsWith","checks.$ZodCheckProperty","checks.$ZodCheckMimeType","checks.$ZodCheckOverwrite","schemas.$ZodType","_enum","v","_default","util.shallowClone","_catch","issue","util.issue","checks.$ZodCheck","schemas.$ZodCodec","schemas.$ZodBoolean","schemas.$ZodString","codec","json","v","x","i","a","b","file","m","pattern","id","schema","params","gen","_","core._isoDateTime","date","core._isoDate","core._isoTime","core._isoDuration","core.formatError","core.flattenError","issue","util.jsonStringifyReplacer","issues","core.$constructor","core.clone","def","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","parse.encode","parse.decode","parse.encodeAsync","parse.decodeAsync","parse.safeEncode","parse.safeDecode","parse.safeEncodeAsync","parse.safeDecodeAsync","check","checks.overwrite","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","core._email","core._url","core._jwt","core._emoji","core._guid","core._uuid","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","core._cuid","core._cuid2","core._ulid","core._base64","core._base64url","core._xid","core._ksuid","core._ipv4","core._ipv6","core._cidrv4","core._cidrv6","core._e164","iso.datetime","iso.date","iso.time","iso.duration","string","core._string","core.regexes.domain","util.normalizeParams","core._stringFormat","core.regexes.hostname","core.regexes.hex","core.regexes","checks.gt","checks.gte","checks.lt","checks.lte","checks.multipleOf","number","core._number","core._int","core._float32","core._float64","core._int32","core._uint32","boolean","core._boolean","bigint","core._bigint","core._int64","core._uint64","core._symbol","core._undefined","core._null","core._any","core._unknown","core._never","core._void","c","date","core._date","core._array","util.extend","util.safeExtend","util.merge","util.pick","util.omit","util.partial","util.required","util.objectClone","core.$ZodType","k","core._minSize","core._maxSize","core._size","v","core._mime","core._file","core.$ZodEncodeError","issue","util.issue","output","util.shallowClone","core._nan","core.$ZodCheck","core._custom","core._refine","core._superRefine","core._stringbool","map","core.config","core._coercedString","schemas.ZodString","core._coercedNumber","schemas.ZodNumber","core._coercedBoolean","schemas.ZodBoolean","core._coercedBigint","schemas.ZodBigInt","core._coercedDate","schemas.ZodDate","en","z","localFileReplacement","z","useFileOrInject","match","P","v","match","P","isGlob","url"],"sources":["../../../node_modules/.pnpm/@gaubee+node@0.4.0_@gaubee+util@0.35.1/node_modules/@gaubee/node/esm/acontext/async-context.js","../../../node_modules/.pnpm/@gaubee+node@0.4.0_@gaubee+util@0.35.1/node_modules/@gaubee/node/esm/acontext/acontext.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/map.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/event_target.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/object.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/promise-helper.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/array.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/iterable.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/pure_event.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/func.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/promise.js","../../../node_modules/.pnpm/@gaubee+util@0.35.1/node_modules/@gaubee/util/esm/abort.js","../../../node_modules/.pnpm/@gaubee+node@0.4.0_@gaubee+util@0.35.1/node_modules/@gaubee/node/esm/path.js","../../../node_modules/.pnpm/@gaubee+nodekit@0.12.0_@gaubee+node@0.4.0_@gaubee+util@0.35.1__@gaubee+util@0.35.1_@types+node@24.1.0/node_modules/@gaubee/nodekit/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.js","../../../node_modules/.pnpm/@gaubee+nodekit@0.12.0_@gaubee+node@0.4.0_@gaubee+util@0.35.1__@gaubee+util@0.35.1_@types+node@24.1.0/node_modules/@gaubee/nodekit/esm/config_file.js","../../../node_modules/.pnpm/ignore@7.0.5/node_modules/ignore/index.js","../../../node_modules/.pnpm/@sindresorhus+merge-streams@2.3.0/node_modules/@sindresorhus/merge-streams/index.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/array.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/errno.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/fs.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/path.js","../../../node_modules/.pnpm/is-extglob@2.1.1/node_modules/is-extglob/index.js","../../../node_modules/.pnpm/is-glob@4.0.3/node_modules/is-glob/index.js","../../../node_modules/.pnpm/glob-parent@5.1.2/node_modules/glob-parent/index.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/utils.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/stringify.js","../../../node_modules/.pnpm/is-number@7.0.0/node_modules/is-number/index.js","../../../node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.js","../../../node_modules/.pnpm/fill-range@7.1.1/node_modules/fill-range/index.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/compile.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/expand.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/constants.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/parse.js","../../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/index.js","../../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js","../../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js","../../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js","../../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js","../../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js","../../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/index.js","../../../node_modules/.pnpm/micromatch@4.0.8/node_modules/micromatch/index.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/pattern.js","../../../node_modules/.pnpm/merge2@1.4.1/node_modules/merge2/index.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/stream.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/string.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/utils/index.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/managers/tasks.js","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.js","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.js","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.js","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.js","../../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.js","../../../node_modules/.pnpm/queue-microtask@1.2.3/node_modules/queue-microtask/index.js","../../../node_modules/.pnpm/run-parallel@1.2.0/node_modules/run-parallel/index.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.js","../../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.js","../../../node_modules/.pnpm/reusify@1.1.0/node_modules/reusify/reusify.js","../../../node_modules/.pnpm/fastq@1.19.1/node_modules/fastq/queue.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.js","../../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/reader.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/stream.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/async.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/matchers/matcher.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/matchers/partial.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/deep.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/entry.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/filters/error.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/transformers/entry.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/provider.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/async.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/stream.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/readers/sync.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/providers/sync.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/settings.js","../../../node_modules/.pnpm/fast-glob@3.3.3/node_modules/fast-glob/out/index.js","../../../node_modules/.pnpm/path-type@6.0.0/node_modules/path-type/index.js","../../../node_modules/.pnpm/unicorn-magic@0.3.0/node_modules/unicorn-magic/node.js","../../../node_modules/.pnpm/slash@5.1.0/node_modules/slash/index.js","../../../node_modules/.pnpm/globby@14.1.0/node_modules/globby/utilities.js","../../../node_modules/.pnpm/globby@14.1.0/node_modules/globby/ignore.js","../../../node_modules/.pnpm/globby@14.1.0/node_modules/globby/index.js","../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../node_modules/.pnpm/debug@4.4.1/node_modules/debug/src/common.js","../../../node_modules/.pnpm/debug@4.4.1/node_modules/debug/src/browser.js","../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../node_modules/.pnpm/debug@4.4.1/node_modules/debug/src/node.js","../../../node_modules/.pnpm/debug@4.4.1/node_modules/debug/src/index.js","../../../node_modules/.pnpm/ts-pattern@5.8.0/node_modules/ts-pattern/dist/index.js","../../../node_modules/.pnpm/@tanstack+router-core@1.131.36/node_modules/@tanstack/router-core/dist/esm/qss.js","../../../node_modules/.pnpm/@tanstack+router-core@1.131.36/node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../dev/dist/reactive-fs/reactive-context.js","../../dev/dist/reactive-fs/reactive-fs.js","../../dev/dist/gen-prompt/file-tree.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/core.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/util.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/errors.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/parse.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/regexes.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/checks.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/doc.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/versions.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/schemas.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ar.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/az.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/be.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ca.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/cs.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/da.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/de.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/en.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/eo.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/es.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/fa.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/fi.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/fr.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/fr-CA.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/he.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/hu.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/id.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/is.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/it.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ja.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/kh.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ko.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/mk.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ms.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/nl.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/no.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ota.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ps.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/pl.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/pt.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ru.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/sl.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/sv.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ta.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/th.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/tr.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ua.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/ur.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/vi.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/zh-CN.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/zh-TW.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/yo.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/locales/index.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/registries.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/api.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/to-json-schema.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/json-schema.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/core/index.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/iso.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/errors.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/parse.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/schemas.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/compat.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/coerce.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/v4/classic/external.js","../../../node_modules/.pnpm/zod@4.1.5/node_modules/zod/index.js","../../dev/dist/utils/resolver.js","../../dev/dist/gen-prompt/replacers/jixo-provider.js","../../dev/dist/gen-prompt/replacers/params-to-globby-options.js","../../dev/dist/gen-prompt/replacers/file-replacer.js"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\n/**\n * 基于 Node.js 原生 AsyncLocalStorage 的实现。\n */\nclass NodeAsyncContextStorage {\n als;\n constructor() {\n this.als = new AsyncLocalStorage();\n }\n run(store, callback) {\n return this.als.run(store, callback);\n }\n getStore() {\n return this.als.getStore();\n }\n}\n/**\n * 一个简单的 Polyfill,用于不支持 AsyncLocalStorage 的环境。\n * 注意:这个 Polyfill 不支持跨异步任务的上下文传递,主要用于简化测试或基础场景。\n */\nclass FallbackAsyncContextStorage {\n currentStore = undefined;\n run(store, callback) {\n const previousStore = this.currentStore;\n this.currentStore = store;\n try {\n return callback();\n }\n finally {\n this.currentStore = previousStore;\n }\n }\n getStore() {\n return this.currentStore;\n }\n}\nexport const createAsyncContextStorage = () => {\n // 优先使用 Node.js 的原生实现\n if (typeof AsyncLocalStorage === \"function\") {\n return new NodeAsyncContextStorage();\n }\n // 否则使用备用方案\n console.warn(\"AsyncLocalStorage is not available. Falling back to a simple polyfill. Concurrency issues may occur.\");\n return new FallbackAsyncContextStorage();\n};\n","import { createAsyncContextStorage } from \"./async-context.js\";\nexport const createAcontext = (name, default_fn) => {\n const storage = createAsyncContextStorage();\n const handle = {\n storage: storage,\n default: default_fn,\n name: name,\n getOrElse: (else_fn) => {\n const item = storage.getStore();\n if (item == null) {\n return default_fn ? default_fn() : else_fn();\n }\n return item?.value;\n },\n get: () => {\n return handle.getOrElse(() => {\n throw new Error(`No factory registered for capability handle: ${name}`);\n });\n },\n getOrNull: () => {\n return handle.getOrElse(() => null);\n },\n run: (value, cb) => {\n return storage.run({ value }, cb);\n },\n asReadonly: () => {\n return {\n name: handle.name,\n get: handle.get,\n getOrNull: handle.getOrNull,\n getOrElse: handle.getOrElse,\n };\n },\n };\n return handle;\n};\nexport const useAcontexts = (ctxs) => {\n return (values, run) => {\n // 递归的内部辅助函数\n const runner = async (index) => {\n // 基本情况:如果所有上下文都已应用,则执行最终的 run 函数\n if (index >= ctxs.length) {\n return run();\n }\n // 获取当前的 Acontext 和要设置的值\n const context = ctxs[index];\n const value = values[index];\n // 递归步骤:在当前上下文中运行,并递归调用 runner 处理下一个上下文\n return context.run(value, () => runner(index + 1));\n };\n // 从第一个上下文开始启动递归\n return runner(0);\n };\n};\nexport class AcontextMap {\n #map = new Map();\n set(context, value) {\n this.#map.set(context, value);\n return this;\n }\n get(context) {\n return this.#map.get(context);\n }\n has(context) {\n return this.#map.has(context);\n }\n run(runner) {\n return useAcontexts([...this.#map.keys()])([...this.#map.values()], runner);\n }\n}\n","import \"./_dnt.polyfills.js\";\n/**\n * 遍历 map 对象,将结果聚合 array 对象返回\n */\nexport const map_to_array = (map, mapper) => {\n const arr = [];\n map.forEach((value, key) => {\n arr.push(mapper(value, key));\n });\n return arr;\n};\n/**\n * 读取一个map中的值,如果没有,就创建它\n */\nexport const map_get_or_put = (map, key, put) => {\n let value;\n if (map.has(key)) {\n value = map.get(key);\n }\n else {\n value = put(key, map);\n map.set(key, value);\n }\n return value;\n};\n/**\n * 删除一个map中的值,同时返回它\n */\nexport const map_delete_and_get = (map, key) => {\n let value;\n if (map.has(key)) {\n value = map.get(key);\n map.delete(key);\n }\n return value;\n};\n/**\n * 读取一个map中的值,如果没有,就异步地创建它\n * 使用该函数进行异步创建是会互斥上锁的(如果外部修改了map,写入了值,那么最终会以外部修改为准)\n */\nexport const map_get_or_put_async = async (map, key, put) => {\n while (true) {\n const pre_lock = map[locks_keys]?.get(key);\n if (pre_lock != null) {\n await pre_lock;\n }\n else {\n break;\n }\n if (map.has(key)) {\n return map.get(key);\n }\n }\n const locks = (map[locks_keys] ??= new Map());\n const lock = Promise.withResolvers();\n locks.set(key, lock.promise);\n try {\n if (map.has(key)) {\n return map.get(key);\n }\n const value = await put(key, map);\n map.set(key, value);\n return value;\n }\n finally {\n locks.delete(key);\n lock.resolve();\n }\n};\nconst locks_keys = /*@__PURE__*/ Symbol.for(\"map_get_or_put_async-locks\");\n","/**\n * 这是一些关于 EventTarget 的辅助函数\n */\nimport \"./_dnt.polyfills.js\";\n/**\n * 一个更加易用的 eventTarget.addEventListener 附加监听函数,返回一个 off 函数,用于 removeEventListener 移除监听\n * @example\n * ```ts\n * event_target_on(abort_signal, 'abort', ()=>{})\n * ```\n */\nexport const event_target_on = (target, type, handler, options) => {\n target.addEventListener(type, handler, options);\n return () => {\n target.removeEventListener(type, handler);\n };\n};\n","/**\n * Creates a new object by including the specified keys from the provided object.\n *\n * 通过选中对象中的指定键来创建一个新的对象。\n */\nimport \"./_dnt.polyfills.js\";\nexport const obj_pick = (obj, ...props) => {\n const result = {};\n for (const prop of props) {\n result[prop] = obj[prop];\n }\n return result;\n};\n/**\n * Creates a new object by selecting the specified keys from the provided object\n * and mapping them to new keys as specified in the alias object.\n *\n * 通过选中对象中的指定键,并根据 alias 对象重命名来创建一个新的对象。\n * @example\n * ```ts\n * const sym_k = Symbol(\"k\");\n * const obj = { a: 5, b: 6, c: 7, d: 8, 0: true, 1: false, [sym_k]: \"sym\" };\n * const obj2 = obj_pick_as(obj, { aa: \"a\", cc: \"c\", zero: 0, k: sym_k });\n *\n * obj2.aa == obj.a\n * ```\n */\nexport const obj_pick_as = (obj, alias) => {\n const result = {};\n for (const newKey in alias) {\n const oldKey = alias[newKey];\n result[newKey] = obj[oldKey];\n }\n return result;\n};\n/**\n * Creates a new object by excluding the specified keys from the provided object.\n *\n * 通过排除对象中的指定键来创建一个新的对象。\n *\n * @example\n * ```ts\n * const sym_k = Symbol(\"k\");\n * const obj = { a: 5, b: 6, c: 7, d: 8, 0: true, 1: false, [sym_k]: \"sym\" };\n * const omitted = obj_omit(obj, \"a\", \"c\", 0, sym_k);\n *\n * assertEquals(omitted, { b: 6, d: 8, \"0\": true, [sym_k]: \"sym\" });\n * ```\n */\nexport const obj_omit = (obj, ...props) => {\n const result = {};\n /// 首先对key做安全处理\n const omitKeys = new Set();\n for (const prop of props) {\n let key;\n switch (typeof prop) {\n case \"string\":\n case \"symbol\":\n key = prop;\n break;\n default:\n key = String(prop);\n }\n omitKeys.add(key);\n }\n for (const key of Reflect.ownKeys(obj)) {\n if (omitKeys.has(key)) {\n continue;\n }\n //@ts-ignore\n result[key] = obj[key];\n }\n return result;\n};\n/**\n * 让一个对象的所有get属性成为惰性求值的属性\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const obj_lazify = (obj, target = obj) => {\n for (const [prop, desp] of obj_all_descriptors(obj)) {\n _set_lazify(target, prop, desp);\n }\n return target;\n};\n/**\n * 传入一个稀疏的对象,在get的过程中,构建出属性\n */\nexport const obj_lazy_builder = (obj, get, target = obj) => {\n return new Proxy(target, {\n get(target, prop) {\n if (prop in target) {\n return target[prop];\n }\n return (target[prop] = get(target, prop));\n },\n });\n};\n/**\n * 让一个对象的指定get属性成为惰性求值的属性\n */\nexport const obj_prop_lazify = (obj, prop, target = obj) => {\n const desp = Object.getOwnPropertyDescriptor(obj, prop);\n if (desp != null) {\n _set_lazify(target, prop, desp);\n }\n return target;\n};\nconst _set_lazify = (target, prop, desp) => {\n if (desp.get !== undefined && desp.set === undefined && desp.configurable) {\n const source_get = desp.get;\n const cache_get = function () {\n const cache = source_get.call(this);\n delete desp.get;\n delete desp.set;\n desp.value = cache;\n Object.defineProperty(target, prop, desp);\n return cache;\n };\n desp.get = cache_get;\n Object.defineProperty(target, prop, desp);\n }\n};\n/**\n * 获取一个对象全部的属性与描述\n * 注意,不会遍历原型链\n */\nexport const obj_all_descriptors = (obj) => {\n const desps = Object.getOwnPropertyDescriptors(obj);\n return Reflect.ownKeys(desps).map((prop) => [prop, desps[prop]]);\n};\n/**\n * 将 proto 的属性和方法委托给 target\n * @param target 目标对象\n * @param proto 参考原型\n * @param getBy 基于目标对象获取实际的委托者,默认使用\"参考原型{@link proto}\"\n * @param options\n * @returns\n */\nexport const obj_delegate_by = (target, proto, getBy = () => proto, options) => {\n const recursive = options?.recursive ?? false;\n const omit = new Set(options?.omit);\n _delegate_by(target, proto, getBy, recursive, omit);\n return omit;\n};\n/**\n * 将 source 的属性和方法委托给 target\n */\nconst _delegate_by = (target, proto, getBy, recursive, omit) => {\n for (const [prop, desp] of obj_all_descriptors(proto)) {\n if (omit.has(prop)) {\n continue;\n }\n omit.add(prop);\n let can_delegate = false;\n if (desp.get != null) {\n can_delegate = true;\n const source_get = desp.get;\n desp.get = function () {\n return source_get.call(getBy(this));\n };\n }\n if (desp.set != null) {\n can_delegate = true;\n const source_set = desp.set;\n desp.set = function (value) {\n return source_set.call(getBy(this), value);\n };\n }\n if (typeof desp.value === \"function\") {\n can_delegate = true;\n const source_func = desp.value;\n desp.value = function (...args) {\n return source_func.apply(getBy(this), args);\n };\n }\n else {\n delete desp.value;\n desp.set = function (value) {\n return Reflect.set(getBy(this), prop, value, this);\n };\n desp.get = function () {\n return Reflect.get(getBy(this), prop, this);\n };\n }\n if (can_delegate) {\n Object.defineProperty(target, prop, desp);\n }\n }\n if (recursive) {\n const source_proto = Object.getPrototypeOf(proto);\n if (source_proto !== null && source_proto !== Object.prototype) {\n return _delegate_by(target, source_proto, getBy, recursive, omit);\n }\n }\n};\n/**\n * 将b对象的属性附加到a上,不同于 Object.assign 赋值行为,这里是 设置属性描述,因此诸如 getter、setter 会一并过来,因此请注意 b 对象的属性是可以迁移的\n * @param a\n * @param b\n * @returns\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const obj_assign_props = (a, b) => {\n const b_props = Object.getOwnPropertyDescriptors(b);\n Object.defineProperties(a, b_props);\n return a;\n};\n/**\n * 类型安全的 obj_assign_props,先传入a,从而获得a的类型,然后b类型就能获得 ThisType<A&B>\n * @param a\n * @returns\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const obj_assign_safe_props = (a) => {\n return (b) => obj_assign_props(a, b);\n};\n/**\n * 获取对象的属性\n *\n * opts.excludeSymbols default is false\n * opts.enumerableOnly default is true\n */\nexport const obj_props = ((a, opts) => {\n const excludeSymbols = opts?.excludeSymbols ?? false;\n const enumerableOnly = opts?.enumerableOnly ?? true;\n if (enumerableOnly) {\n if (excludeSymbols) {\n return Object.keys(a);\n }\n const propDesMap = Object.getOwnPropertyDescriptors(a);\n const props = [];\n for (const prop in propDesMap) {\n if (propDesMap[prop].enumerable) {\n props.push(prop);\n }\n }\n return props;\n }\n else {\n const props = Object.getOwnPropertyNames(a);\n if (excludeSymbols) {\n return props;\n }\n props.push(...Object.getOwnPropertySymbols(a));\n return props;\n }\n});\n","export const isPromiseLike = (value) => value !== null && typeof value?.then === \"function\";\n","/**\n * 在数组末尾追加元素\n *\n * @example\n * ```ts\n * const arr = [] as number[]\n *\n * arr_set_next(arr, 1)\n *\n * // arr == [1]\n * ```\n */\nexport const arr_set_next = (arr, item) => {\n arr[arr.length] = item;\n};\n/**\n * 取数字第一个元素\n * 如果是稀疏数组,会跳过稀疏部分,取第一个\n *\n * 注意,如果不存在,会抛出异常\n */\nexport const sparse_arr_get_first = (arr) => sparse_arr_get_first_or_default(arr, () => {\n throw new RangeError(\"could not get first element\");\n});\n/**\n * 取数字第一个元素\n * 如果是稀疏数组,会跳过稀疏部分,取第一个\n */\nexport const sparse_arr_get_first_or_null = (arr) => sparse_arr_get_first_or_default(arr, () => void 0);\n/**\n * 取数字第一个元素\n * 如果是稀疏数组,会跳过稀疏部分,取第一个\n * 否则取默认返回值\n */\nexport const sparse_arr_get_first_or_default = (arr, defaultValue) => {\n if (arr.length <= 0) {\n return defaultValue();\n }\n if (0 in arr) {\n return arr[0];\n }\n for (const key in arr) {\n return arr[key];\n }\n return defaultValue();\n};\n/**\n * 取数字第一个元素(下标 0)\n *\n * 注意,如果不存在,会抛出异常\n */\nexport const arr_get_first = (arr) => arr_get_first_or_default(arr, () => {\n throw new RangeError(\"could not get first element\");\n});\n/**\n * 取数字第一个元素(下标 0)\n */\nexport const arr_get_first_or_null = (arr) => arr_get_first_or_default(arr, () => void 0);\n/**\n * 取数字第一个元素(下标 0)\n *\n * 否则取默认返回值\n */\nexport const arr_get_first_or_default = (arr, defaultValue) => {\n if (arr.length <= 0) {\n return defaultValue();\n }\n return arr[0];\n};\n/**\n * 取数字最后一个元素\n * 如果是稀疏数组,会跳过稀疏部分\n *\n * 注意,如果不存在,会抛出异常\n */\nexport const sparse_arr_get_last = (arr) => sparse_arr_get_last_or_default(arr, () => {\n throw new RangeError(\"could not get last element\");\n});\n/**\n * 取数字最后一个元素\n * 如果是稀疏数组,会跳过稀疏部分\n */\nexport const sparse_arr_get_last_or_null = (arr) => sparse_arr_get_last_or_default(arr, () => void 0);\n/**\n * 取数字最后一个元素\n * 如果是稀疏数组,会跳过稀疏部分\n *\n * 否则取默认返回值\n */\nexport const sparse_arr_get_last_or_default = (arr, defaultValue) => {\n const at = arr.length - 1;\n if (at < 0) {\n return defaultValue();\n }\n if (at in arr) {\n return arr[at];\n }\n if (Array.isArray(arr)) {\n let value;\n let hasValue = false;\n try {\n arr.reduceRight((_, last) => {\n hasValue = true;\n value = last;\n throw null;\n });\n // deno-lint-ignore no-empty\n }\n catch { }\n if (hasValue) {\n return value;\n }\n }\n else {\n let lastKey;\n for (const key in arr) {\n if (Number.isFinite(key)) {\n lastKey = key;\n }\n }\n if (lastKey != null) {\n return arr[lastKey];\n }\n }\n return defaultValue();\n};\n/**\n * 取数字最后一个元素(下标 length-1)\n *\n * 注意,如果不存在,会抛出异常\n */\nexport const arr_get_last = (arr) => arr_get_last_or_default(arr, () => {\n throw new RangeError(\"could not get last element\");\n});\n/**\n * 取数字最后一个元素(下标 length-1)\n */\nexport const arr_get_last_or_null = (arr) => arr_get_last_or_default(arr, () => void 0);\n/**\n * 取数字最后一个元素(下标 length-1)\n *\n * 否则取默认返回值\n */\nexport const arr_get_last_or_default = (arr, defaultValue) => {\n const at = arr.length - 1;\n if (at < 0) {\n return defaultValue();\n }\n return arr[at];\n};\n/**\n * 移除数据中的指定的第一个匹配项\n * @param arr\n * @param value\n * @returns index\n */\nexport const arr_remove_first = (arr, value) => {\n const index = arr.indexOf(value);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n return index;\n};\n/**\n * 移除数据中的指定的N个匹配项\n * @param arr\n * @param value\n * @returns count\n */\nexport const arr_remove_start = (arr, value, limit) => {\n let rm_count = 0;\n while (limit > rm_count) {\n if (-1 === arr_remove_first(arr, value)) {\n break;\n }\n rm_count++;\n }\n return rm_count;\n};\n/**\n * 移除数据中的指定的最后一个匹配项\n * @param arr\n * @param value\n * @returns index\n */\nexport const arr_remove_last = (arr, value) => {\n const index = arr.lastIndexOf(value);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n return index;\n};\n/**\n * 移除数据中的指定的后N个匹配项\n * @param arr\n * @param value\n * @returns count\n */\nexport const arr_remote_end = (arr, value, limit) => {\n let rm_count = 0;\n while (limit > rm_count) {\n if (-1 === arr_remove_last(arr, value)) {\n break;\n }\n rm_count++;\n }\n return rm_count;\n};\n/** 判断一个对象是非空数组 */\nexport const arr_is_no_empty = (arr) => {\n return Array.isArray(arr) && arr.length > 0;\n};\n","/**\n * 取集合第一个元素\n *\n * 注意,如果不存在,会抛出异常\n */\nexport const iter_get_first = (items) => iter_get_first_or_default(items, () => {\n throw new RangeError(\"could not get first element\");\n});\n/**\n * 取集合第一个元素\n */\nexport const iter_get_first_or_null = (items) => iter_get_first_or_default(items, () => void 0);\n/**\n * 取集合第一个元素\n *\n * 否则取默认返回值\n */\nexport const iter_get_first_or_default = (items, defaultValue) => {\n for (const first of items) {\n return first;\n }\n return defaultValue();\n};\n/**\n * 遍历集合,返回 PromiseSettledResult。\n * 等同于 Promise.allSettled([...items].map(...))\n */\nexport const iter_map_async_try = (values, callbackfn) => {\n const result = [];\n let index = 0;\n for (const item of values) {\n result.push(callbackfn(item, index++, values));\n }\n return Promise.allSettled(result);\n};\nexport const iter_map_async = (values, callbackfn) => {\n const result = [];\n let index = 0;\n for (const item of values) {\n result.push(callbackfn(item, index++, values));\n }\n return Promise.all(result);\n};\n/**\n * 遍历集合进行 归约操作。\n * 等同于 Array<T>.reduce\n */\nexport const iter_reduce = (values, callbackfn, initialValue) => {\n let index = 0;\n for (const value of values) {\n initialValue = callbackfn(initialValue, value, index++, values);\n }\n return initialValue;\n};\n/**\n * 对集合进行 拆分然后归约 的操作。\n * 类似于 Array<T>.map.flat.reduce\n */\nexport const iter_map_reduce = (sources, mapfn, reducefn, initialValue) => {\n let mapIndex = 0;\n let reduceIndex = 0;\n for (const source of sources) {\n const values = mapfn(source, mapIndex++, sources);\n for (const value of values) {\n initialValue = reducefn(initialValue, value, reduceIndex++, values);\n }\n }\n return initialValue;\n};\n/**\n * 等同于 map 并且 filter 出非空元素\n *\n * 支持任何可迭代的对象\n */\nexport const iter_map_not_null = (values, callbackfn) => {\n const result = [];\n let index = 0;\n if (callbackfn) {\n for (const value of values) {\n const r = callbackfn(value, index++, values);\n if (r != null) {\n result.push(r);\n }\n }\n }\n else {\n for (const value of values) {\n if (value != null) {\n result.push(value);\n }\n }\n }\n return result;\n};\n/**\n * 类似与 map not null,但只取第一个\n *\n * 支持任何可迭代的对象\n */\nexport const iter_first_not_null = (values, callbackfn) => {\n let index = 0;\n if (callbackfn) {\n for (const value of values) {\n const r = callbackfn(value, index++, values);\n if (r != null) {\n return r;\n }\n }\n }\n else {\n for (const value of values) {\n if (value != null) {\n return value;\n }\n }\n }\n};\nexport const iter_iterable = (items) => {\n if (Symbol.iterator in items) {\n return items;\n }\n if (\"length\" in items) {\n return {\n [Symbol.iterator]: () => {\n let index = 0;\n return {\n next: () => {\n const done = index < items.length;\n return done ? { done, value: void 0 } : { done, value: items[index++] };\n },\n };\n },\n };\n }\n return {\n [Symbol.iterator]() {\n return items;\n },\n };\n};\n","import \"./_dnt.polyfills.js\";\nimport { arr_set_next } from \"./array.js\";\nimport { iter_map_async_try } from \"./collections.js\";\nimport { iter_map_not_null } from \"./iterable.js\";\nimport { obj_assign_props, obj_delegate_by } from \"./object.js\";\nimport { promise_try } from \"./promise.js\";\n/**\n * 一个现代化的单事件监听器\n *\n * 对异步与错误捕捉有着一流的支持\n *\n * 可自定义移除事件时的触发器\n *\n * @example\n * ```ts\n * import { PureEvent } from \"@gaubee/util\";\n * const pevent = new PureEvent<string>();\n *\n * /// basic\n * // add listen\n * const off = pevent.on((data) => console.log(\"on\", data));\n * // dispatch listen\n * pevent.emit(\"hi\");\n * // remove listen\n * off();\n *\n * // add listen with custom key\n * pevent.on((data) => console.log(\"on\", data), { key: \"key1\" });\n * // remove listen with custom key\n * pevent.off(\"key1\");\n *\n * // add listen width dispose function\n * const off = pevent.on((data) => console.log(\"on\", data), {\n * onDispose: async () => {\n * console.log(\"off\");\n * return 123;\n * },\n * });\n * // remove listen and run dispatch function\n * console.log(await off()); // { status: \"fulfilled\", value: 123 }\n *\n * /// once\n * // add one time listen with callback function\n * pevent.once((data) => console.log(\"once\", data));\n * // add one time listen without callback function and return promise\n * pevent.once().then((data) => console.log(\"once.then\", data));\n * // add one time listen with filter function\n * pevent.once({ filter(data){ return data == \"match\" } }).then((data) => console.log(\"once filter\", data));\n *\n * // best practices for multiple events:\n * // use explicit properties instead of event name mappings\n * class YourClass {\n * onStart = new PureEvent<void>()\n * onData = new PureEvent<void>()\n * onEnd = new PureEvent<void>()\n * }\n * ```\n */\nexport class PureEvent {\n constructor() {\n this.watch = this.watch.bind(this);\n this.on = this.on.bind(this);\n this.once = this.once.bind(this);\n this.off = this.off.bind(this);\n this.unwatch = this.unwatch.bind(this);\n this.emit = this.emit.bind(this);\n }\n //#region 核心\n /** 监听表 */\n events = new Map();\n /** 有多少监听 */\n get size() {\n return this.events.size;\n }\n /** 判断是否已经存在指定监听 */\n has(key) {\n return this.events.has(key);\n }\n /**\n * 附加监听\n * 同 watch\n * @deprecated 使用 watch\n */\n on(cb, options) {\n return this.watch(cb, options);\n }\n /**\n * 附加监听\n * 可以自定义唯一索引 key,如果重复,会移除之前的监听\n */\n watch(cb, options) {\n const key = options?.key ?? cb;\n this.off(key);\n let onDispose = options?.onDispose;\n if (typeof onDispose !== \"function\") {\n onDispose = undefined;\n }\n const off = () => this.off(key);\n this.events.set(key, { cb, onDispose, off });\n return off;\n }\n /**\n * 移除指定监听\n * 同 unwatch\n * @deprecated 使用 unwatch\n */\n off(key) {\n return this.unwatch(key);\n }\n /**\n * 移除指定监听\n * 如果没有指定事件,那么返回false\n * 否则,如果没有自定义 移除监听器(onDispose),那么直接返回true\n * 否则返回 PromiseSettledResult\n */\n unwatch(key) {\n const event = this.events.get(key);\n if (event == null) {\n return false;\n }\n this.events.delete(key);\n if (event.onDispose == null) {\n return true;\n }\n return promise_try(event.onDispose);\n }\n /**\n * 清理所有的监听\n * 会返回所有被清理的事件的 key\n * 如果自定义了 移除监听器(onDispose), 那么会在 disposeReturn 中携带结果\n */\n cleanSync() {\n const dels = iter_map_not_null(this.events, ([key, event]) => {\n this.events.delete(key);\n return {\n key,\n disposeReturn: event.onDispose ? promise_try(event.onDispose) : undefined,\n };\n });\n return dels;\n }\n /**\n * 清理所有的监听,\n * 并等待所有的 disposeReturn 返回结果\n */\n async clean() {\n const dels = this.cleanSync();\n const results = [];\n for (const del of dels) {\n const disposeReturn = await del.disposeReturn;\n results.push({ key: del.key, disposeReturn });\n }\n return results;\n }\n async emit(data) {\n if (this.size === 0) {\n return;\n }\n const errors = [];\n const results = await iter_map_async_try(this.events.values(), (cb) => cb.cb(data));\n for (const item of results) {\n if (item.status === \"rejected\") {\n arr_set_next(errors, item.reason);\n }\n }\n if (errors.length > 0) {\n throw new AggregateError(errors, \"emit error\");\n }\n }\n once(cb_or_options, options) {\n let cb;\n if (typeof cb_or_options === \"function\") {\n cb = cb_or_options;\n }\n else if (cb_or_options != null) {\n options = cb_or_options;\n }\n const filter = options?.filter ?? (() => true);\n /// callback mode\n if (cb == null) {\n const onDispose = options?.onDispose;\n const off = this.on((data) => {\n if (filter(data)) {\n promiseWithResolvers.resolve(data);\n off();\n }\n }, {\n ...options,\n onDispose() {\n if (false === resolved) {\n promiseWithResolvers.reject(new Error(\"listener dispose\"));\n }\n onDispose?.();\n },\n });\n const job = Promise.withResolvers();\n let resolved = false;\n const promiseWithResolvers = Object.assign(job.promise, {\n resolve(data) {\n resolved = true;\n job.resolve(data);\n },\n reject(reason) {\n job.reject(reason);\n },\n });\n return promiseWithResolvers;\n }\n /// promise mode\n const off = this.watch(async (data) => {\n if (filter(data)) {\n const disposeReturn = off();\n if (disposeReturn !== false) {\n try {\n return cb(data);\n }\n finally {\n if (disposeReturn instanceof Promise) {\n await disposeReturn;\n }\n }\n }\n }\n }, options);\n return off;\n }\n}\nexport const pureEvent = () => {\n const pe = new PureEvent();\n const watch = pe.watch;\n // 将 PureEvent 绑定到原型链上\n Object.setPrototypeOf(watch, pe);\n return watch;\n};\n/**\n * PureEvent 的委托类,基于委托,可以实现更新委托内核\n *\n * @example\n * ```ts\n * const pevent_source = new PureEvent<string>()\n * const pevent_delegate = new PureEventDelegate<string>()\n * pevent_delegate.byPureEvent = pevent_source\n *\n * pevent_source.on((data) => console.log('by source', data))\n * pevent_delegate.on((data) => console.log('by delegate', data))\n *\n * pevent_source.emit('from source')\n * pevent_delegate.emit('from delegate')\n * ```\n */\nexport class PureEventDelegate extends PureEvent {\n byPureEvent;\n constructor(byPureEvent = new PureEvent()) {\n super();\n this.byPureEvent = byPureEvent;\n }\n}\nexport const pureEventDelegate = () => {\n const pe = new PureEventDelegate();\n const on = pe.on.bind(pe);\n Object.setPrototypeOf(on, Object.getPrototypeOf(pe));\n return obj_assign_props(on, pe);\n};\nobj_delegate_by(PureEventDelegate.prototype, PureEvent.prototype, (target) => target.byPureEvent);\n","import \"./_dnt.polyfills.js\";\nimport { obj_assign_props } from \"./object.js\";\nimport { isPromiseLike } from \"./promise-helper.js\";\nimport { pureEvent } from \"./pure_event.js\";\n/**\n * 函数转化,一个新函数:它的第一个参数 将作为 原函数的 this\n */\nexport const uncurryThisFn = (func) => {\n // deno-lint-ignore no-explicit-any\n return func.call.bind(func);\n};\n/**\n * 函数转化,一个新函数,它的this 是原函数的第一个参数\n */\nexport const curryThisFn = (func) => {\n return function (...args) {\n return func(this, ...args);\n };\n};\n/**\n * 让一个函数的返回结果是缓存的\n * @param key 自定义缓存key生成器,如果生成的key不一样,那么缓存失效\n * @returns\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const func_remember = (func, key, cacheAwaited) => {\n let result;\n const once_fn = function (...args) {\n const newKey = key?.apply(this, args);\n if (result === undefined || newKey !== result.key) {\n const res = func.apply(this, args);\n result = {\n key: newKey,\n res: res,\n awaitedRes: undefined,\n };\n if (cacheAwaited) {\n if (typeof res === \"object\" && res && \"then\" in res && typeof res.then === \"function\") {\n res.then((r) => {\n if (result && res === result.res) {\n result.awaitedRes = { type: \"resolved\", result: r };\n }\n }, (e) => {\n if (result && res === result.res) {\n result.awaitedRes = { type: \"rejected\", error: e };\n }\n });\n }\n else {\n result.awaitedRes = res;\n }\n }\n }\n return result.res;\n };\n const once_fn_mix = obj_assign_props(once_fn, {\n get source() {\n return func;\n },\n get key() {\n return result?.key;\n },\n get runned() {\n return result != null;\n },\n get returnValue() {\n return result?.res;\n },\n get awaitedReturnValue() {\n return result?.awaitedRes;\n },\n reset() {\n result = undefined;\n },\n rerun(...args) {\n once_fn_mix.reset();\n return once_fn_mix(...args);\n },\n });\n return once_fn_mix;\n};\n/**\n * 包裹一个“目标函数”,将它的执行权交给“包裹函数”。\n * 包裹函数可以在目标函数执行之前或者执行之后做一些工作,比如参数检查,比如返回值修改\n * @param func 目标函数\n * @param wrapper 包裹函数,第一个参数是 context,可以获得详细的上下文;第二个参数是 next,可以用于快速执行“目标函数”\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const func_wrap = (func, wrapper) => {\n return function (...args) {\n const context = {\n target: func,\n this: this,\n arguments: args,\n };\n return wrapper(context, () => Reflect.apply(func, context.this, context.arguments));\n };\n};\n/**\n * 向某一个对象配置函数属性\n */\nexport const extendsMethod = (target, prop, method) => {\n Object.defineProperty(target, prop, {\n configurable: true,\n writable: true,\n value: method,\n });\n};\n/**\n * 向某一个对象配置getter属性\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const extendsGetter = (target, prop, getter) => {\n Object.defineProperty(target, prop, {\n configurable: true,\n get: getter,\n });\n};\nconst wrapSuccess = (result) => {\n return Object.defineProperties([undefined, result], {\n success: { value: true, writable: false, enumerable: false, configurable: true },\n result: { value: result, writable: false, enumerable: false, configurable: true },\n error: { value: undefined, writable: false, enumerable: false, configurable: true },\n });\n};\nconst wrapError = (err, errorParser) => {\n const error = errorParser ? errorParser(err) : err;\n return Object.defineProperties([error, undefined], {\n success: { value: false, writable: false, enumerable: false, configurable: true },\n result: { value: undefined, writable: false, enumerable: false, configurable: true },\n error: { value: error, writable: false, enumerable: false, configurable: true },\n });\n};\n/**\n * 包裹一个函数,并对其进行错误捕捉并返回\n */\nexport const func_catch = /*@__PURE__*/ Object.assign((fn, errorParser) => {\n return Object.assign(function () {\n try {\n const res = fn.apply(this, arguments);\n if (isPromiseLike(res)) {\n return res.then((value) => wrapSuccess(value), (err) => wrapError(err, errorParser));\n }\n return wrapSuccess(res);\n }\n catch (err) {\n return wrapError(err, errorParser);\n }\n }, {\n catchType(errorParser) {\n return func_catch(fn, errorParser);\n },\n });\n}, {\n wrapSuccess,\n wrapError,\n});\n/**\n * 一个能延迟执行的函数包裹\n * 和 func_remember 不同,`func_lazy(...args)` 等同于 `func_remember()(...args)`\n * @param factory\n * @returns\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport const func_lazy = (factory) => {\n let fn;\n return new Proxy(factory, {\n apply(_, thisArg, argArray) {\n if (fn == undefined) {\n fn = Reflect.apply(factory, thisArg, argArray);\n }\n return Reflect.apply(fn, thisArg, argArray);\n },\n });\n};\nconst effect_symbol = Symbol.for(\"effect\");\n/**\n * 让一个对象附带副作用\n * @param source\n * @param effect\n * @returns\n */\nexport const withEffect = (source, effect) => {\n return obj_assign_props(source, { [effect_symbol]: effect });\n};\n/**\n * 执行副作用\n * @param sources\n */\nexport const applyEffect = (...sources) => {\n for (const source of sources) {\n if (effect_symbol in source) {\n const effect = source[effect_symbol];\n if (typeof effect === \"function\") {\n effect.call(void 0, source);\n }\n }\n }\n};\n/**\n * 并行执行一组函数,并限制并发数量。\n *\n * @template T - 函数的类型,这些函数不接受参数\n * @param {Iterable<T>} funcs - 一个可迭代的函数集合,这些函数将被并行执行。\n * @param {number} limit - 并发执行函数的最大数量。\n * @returns {{ emit: (data: { source: T; result: FuncCatch.Return<unknown, Func.Return<T>> }) => void, on: (cb: (data: { source: T; result: FuncCatch.Return<unknown, Func.Return<T>> }) => void) => () => void, off: (cb: (data: { source: T; result: FuncCatch.Return<unknown, Func.Return<T>> }) => void) => void, once: (cb: (data: { source: T; result: FuncCatch.Return<unknown, Func.Return<T>> }) => void) => () => void, then: Promise<void>['then'] }} 返回一个对象,包含一个事件发射器 `returns` 用于监听每个函数完成时的结果,以及一个 `then` 方法,该方法在所有函数都执行完毕后 resolve。\n * 每个函数的结果会通过 `returns` 事件的 `emit` 方法发出,数据格式为 `{ source: T; result: FuncCatch.Return<unknown, Func.Return<T>> }`。\n * `result` 是一个元组,成功时为 `[undefined, R]`,失败时为 `[E, undefined]`,并附带 `success`、`result` 和 `error` 属性。\n */\nexport const func_parallel_limit = (funcs, limit) => {\n const returns = pureEvent();\n const func_iter = Symbol.asyncIterator in funcs ? funcs[Symbol.asyncIterator]() : funcs[Symbol.iterator]();\n const done = Promise.withResolvers();\n let canLoop = true;\n const jobs = Array(limit)\n .fill(0)\n .map(async () => {\n while (canLoop) {\n const next = await func_iter.next();\n if (next.done) {\n canLoop = false;\n return;\n }\n const func = next.value;\n console.log(\"qaq\", func);\n //@ts-ignore\n const result = (await func_catch(func)());\n void returns.emit({ source: func, result });\n }\n });\n done.resolve(Promise.all(jobs));\n return obj_assign_props(returns, { then: done.promise.then.bind(done.promise) });\n};\n// const createTask = (ms: number, log: string) => {\n// return Object.assign(\n// async () => {\n// console.log(log, \"start\");\n// await delay(ms);\n// console.log(log, \"done\");\n// },\n// {\n// id: log,\n// },\n// );\n// };\n// await func_parallel_limit(\n// [\n// //\n// createTask(1000, \"task1\"),\n// createTask(1000, \"task2\"),\n// createTask(1000, \"task3\"),\n// createTask(1000, \"task4\"),\n// createTask(1000, \"task5\"),\n// createTask(1000, \"task6\"),\n// ],\n// 2,\n// );\n// console.log(\"all done\");\n","import \"./_dnt.polyfills.js\";\nimport { event_target_on } from \"./event_target.js\";\nimport { func_wrap } from \"./func.js\";\nimport { map_get_or_put } from \"./map.js\";\nimport { isPromiseLike } from \"./promise-helper.js\";\nexport * from \"./promise-helper.js\";\nexport const timmers = {\n timeout: (ms) => {\n return (cb) => {\n const ti = setTimeout(cb, ms);\n return () => clearTimeout(ti);\n };\n },\n raf: ((cb) => {\n const ti = requestAnimationFrame(cb);\n return () => cancelAnimationFrame(ti);\n }),\n microtask: ((cb) => {\n let cancel = false;\n queueMicrotask(() => {\n if (cancel) {\n return;\n }\n cb();\n });\n return () => {\n cancel = true;\n };\n }),\n eventTarget: (target, eventType, filter) => {\n return (resolve) => {\n let cb;\n if (typeof filter === \"function\") {\n cb = (event) => {\n if (filter(event)) {\n resolve(event);\n target.removeEventListener(eventType, cb);\n }\n };\n target.addEventListener(eventType, cb);\n }\n else {\n cb = resolve;\n target.addEventListener(eventType, cb, { once: true });\n }\n return () => target.removeEventListener(eventType, cb);\n };\n },\n from: (ms) => {\n return (typeof ms === \"number\" ? (ms <= 0 ? timmers.microtask : timmers.timeout(ms)) : ms);\n },\n};\n/**\n * setTimeout/clearTimeout 的 promise 版本\n * @example\n * ```ts\n * const d = delay(1000)\n *\n * await d; // is promise\n *\n * d.cancel(); // clearTimeout\n *\n * d.cancel('some reason'); // clearTimeout and reject promise\n *\n * const ac = new AbortController()\n * const d = delay(1000, { signal: ac.signal }) // with AbortSignal\n * ac.abort('some reason'); // clearTimeout and reject promise\n * ```\n *\n * 如果 ms = 0,那么会使用 queueMicrotask 而不是setTimeot,当然cancel仍然是可以工作的\n */\nexport const delay = (ms, options) => {\n const signal = options?.signal;\n signal?.throwIfAborted();\n const job = Promise.withResolvers();\n let resolve = job.resolve;\n let reject = job.reject;\n const timmer = timmers.from(ms);\n const clear = timmer(resolve, reject);\n const result = Object.assign(job.promise, {\n cancel(cause) {\n clear();\n reject(cause);\n },\n });\n if (signal != null) {\n const off = event_target_on(signal, \"abort\", () => {\n result.cancel(signal.reason);\n }, { once: true });\n // 不使用 promise.finally ,因为它会创建一个新的 promise\n resolve = func_wrap(resolve, (_, next) => {\n off();\n next();\n });\n reject = func_wrap(reject, (_, next) => {\n off();\n next();\n });\n }\n const disposer = options?.disposer;\n if (disposer != null) {\n disposer.watch(result.cancel);\n }\n return result;\n};\nexport const promise_try = async (fn) => {\n try {\n const value = await fn();\n return { status: \"fulfilled\", value };\n }\n catch (reason) {\n return { status: \"rejected\", reason };\n }\n};\nconst _pot = /*@__PURE__*/ new WeakMap();\n/**\n * 一个内存安全的、只专注于执行回调 promise then 方法。\n * 因为 promise.then 是会创建一个新的 promise 的,在某些场景下,这会带来严重的内存问题,比如说,如果你将一个 promise 作为一个锁\n * 而如果你只是想进行回调注册,使用这个方法。\n *\n * @param promise\n * @param onfulfilled\n * @param onrejected\n * @returns\n */\nexport const promise_once_then = (promise, task) => {\n const state = map_get_or_put(_pot, promise, () => {\n const pending_state = { state: \"pending\", tasks: new Map() };\n promise.then((value) => {\n _pot.set(promise, { state: \"resolved\", value: value });\n _promise_once_then_onfulfilled(value, pending_state.tasks.values());\n }, (err) => {\n _pot.set(promise, { state: \"rejected\", err });\n _promise_once_then_onrejected(err, pending_state.tasks.values());\n });\n return pending_state;\n });\n if (state.state === \"pending\") {\n state.tasks.set(task.key ?? task.resolve ?? task.reject, task);\n return () => promise_once_then_cancel(promise, task);\n }\n else if (state.state === \"resolved\") {\n _promise_once_then_onfulfilled(state.value, [task]);\n }\n else if (state.state === \"rejected\") {\n _promise_once_then_onrejected(state.err, [task]);\n }\n return () => { };\n};\nexport const promise_once_then_cancel = (promise, task) => {\n const state = _pot.get(promise);\n if (state?.state === \"pending\") {\n state.tasks.delete(task.key ?? task.resolve ?? task.reject);\n }\n};\nconst _promise_once_then_onfulfilled = (value, tasks) => {\n for (const task of tasks) {\n if (task.resolve == null) {\n continue;\n }\n try {\n const res = task.resolve(value);\n // 如果onfulfilled的返回值是一个promise,那么使用onrejected对其进行错误捕捉\n if (isPromiseLike(res) && task.reject) {\n res.then(null, task.reject);\n }\n }\n catch (err) {\n task.reject?.(err, value);\n }\n }\n};\nconst _promise_once_then_onrejected = (err, tasks) => {\n for (const task of tasks) {\n if (task.reject == null) {\n continue;\n }\n // 这里没有 onrejected 的错误捕捉,所以如果 onrejected 出错了,就成为 uncatched error\n // 这里不使用 onrejected 捕捉 onrejected\n task.reject(err);\n }\n};\nexport const promise_safe_race = (values, options = {}) => {\n const promises = Array.isArray(values) ? values : [];\n // 遍历第一遍,寻找是否是直接值,从而避免不必要的开销\n // 注意这里一共只遍历一次 values,然后收集成 promises,因为迭代器的每一次遍历可能都不一样\n for (const item of values) {\n if (!isPromiseLike(item)) {\n return item;\n }\n if (promises !== values) {\n promises.push(item);\n }\n }\n const { promise, resolve, reject } = Promise.withResolvers();\n const registeredTasks = new Map();\n let settled = false;\n // 清理所有注册的监听器\n const cleanup = () => {\n settled = true;\n for (const cancel of registeredTasks.values()) {\n cancel();\n }\n registeredTasks.clear();\n };\n // 统一解决函数\n const settle = (result, isError) => {\n if (settled)\n return;\n cleanup();\n isError ? reject(result) : resolve(result);\n };\n // 遍历第二遍,注册 promise 回调\n for (const value of promises) {\n // 因为使用 promise_once_then ,所以有可能立即执行了 settle 回调\n if (settled)\n break;\n // 注册监听\n registeredTasks.set(value, promise_once_then(value, {\n resolve: (val) => settle(val, false),\n reject: (err) => settle(err, true),\n }));\n }\n // 处理空迭代器的情况\n // 原版的 Promise.race 会直接返回一个始终 pending 的 Promise\n // 这里依赖类型安全与用户配置,进行返回或者异常抛出\n if (!settled && registeredTasks.size === 0) {\n const { ifEmpty = () => {\n reject(new TypeError(\"Argument is empty iterable\"));\n return promise;\n }, } = options;\n return ifEmpty();\n }\n return promise;\n};\n","import \"./_dnt.polyfills.js\";\nimport { map_get_or_put } from \"./map.js\";\nimport { promise_safe_race } from \"./promise.js\";\n/**\n * 将 N 个 AbortSignal 合并成 0/1 个\n * @param _signals\n * @returns\n */\nexport const abort_signal_merge = (..._signals) => {\n const signals = _signals.filter((s) => s != null);\n if (signals.length === 0) {\n return;\n }\n if (signals.length === 1) {\n return signals[0];\n }\n const aborted_signals = signals.filter((signal) => signal.aborted);\n if (aborted_signals.length === 1) {\n return aborted_signals[0];\n }\n if (aborted_signals.length > 1) {\n return AbortSignal.abort(new AggregateError(aborted_signals.map((signal) => signal.reason), \"multi-signals are aborted\"));\n }\n const aborter = new AbortController();\n for (const signal of signals) {\n signal.addEventListener(\"abort\", (reason) => {\n aborter.abort(reason);\n });\n }\n return aborter.signal;\n};\nconst signal_promise_cache = /*@__PURE__*/ new Map();\nexport const abort_signal_promisify = (input) => {\n const signal = input instanceof AbortSignal ? input : input.signal;\n return map_get_or_put(signal_promise_cache, signal, () => {\n const job = Promise.withResolvers();\n signal.addEventListener(\"abort\", (reason) => {\n job.reject(reason);\n }, { once: true });\n return job.promise;\n });\n};\nexport const abort_signal_race = (signal, fn_or_promise) => {\n signal.throwIfAborted();\n fn_or_promise = typeof fn_or_promise === \"function\" ? fn_or_promise() : fn_or_promise;\n return promise_safe_race([abort_signal_promisify(signal), fn_or_promise]);\n};\n","import fs from \"node:fs\";\nimport node_path from \"node:path\";\nimport process from \"node:process\";\nimport { fileURLToPath } from \"node:url\";\n/**\n * 将一个路径格式化成标准的 posix 格式\n */\nexport const normalizeFilePath = (path) => {\n if (typeof path !== \"string\") {\n path = String(path);\n }\n if (path.startsWith(\"file://\")) {\n path = fileURLToPath(path);\n }\n if (path.includes(\"\\\\\")) {\n path = path.replaceAll(\"\\\\\", \"/\");\n }\n return path;\n};\n/**\n * 创建一个 path.resolve 柯里化函数\n */\nexport const createResolver = (cwd) => {\n return Object.assign((...paths) => {\n return normalizeFilePath(node_path.resolve(cwd, ...paths));\n }, { dirname: cwd });\n};\n/**\n * 等同于 path.resolve(process.cwd(), ...paths)\n */\nexport const cwdResolver = /*@__PURE__*/ createResolver(process.cwd());\n/**\n * 向上寻找某一个文件名,以它所在的目录创建 resolver\n */\nexport const createResolverByRootFile = (fromPath = process.cwd(), rootFilename = \"package.json\", else_fn) => {\n let rootDirname = normalizeFilePath(fromPath);\n while (false === fs.existsSync(node_path.resolve(rootDirname, rootFilename))) {\n const parentDirname = node_path.dirname(rootDirname);\n if (parentDirname === rootDirname) {\n const customDirname = else_fn?.();\n if (null == customDirname) {\n throw new Error(`Cannot find ${rootFilename} from ${fromPath}`);\n }\n rootDirname = customDirname;\n break;\n }\n rootDirname = parentDirname;\n }\n return createResolver(rootDirname);\n};\n","// Copyright 2018-2025 the Deno authors. MIT license.\n// This module is browser compatible.\n/**\n * Converts a JSON with Comments (JSONC) string into an object.\n *\n * @example Usage\n * ```ts\n * import { parse } from \"@std/jsonc\";\n * import { assertEquals } from \"@std/assert\";\n *\n * assertEquals(parse('{\"foo\": \"bar\"}'), { foo: \"bar\" });\n * assertEquals(parse('{\"foo\": \"bar\", }'), { foo: \"bar\" });\n * assertEquals(parse('{\"foo\": \"bar\", } /* comment *\\/'), { foo: \"bar\" });\n * ```\n *\n * @throws {SyntaxError} If the JSONC string is invalid.\n * @param text A valid JSONC string.\n * @returns The parsed JsonValue from the JSONC string.\n */\nexport function parse(text) {\n if (new.target) {\n throw new TypeError(\"Cannot create an instance: parse is not a constructor\");\n }\n return new JsoncParser(text).parse();\n}\n// First tokenize and then parse the token.\nclass JsoncParser {\n #whitespace = new Set(\" \\t\\r\\n\");\n #numberEndToken = new Set([...\"[]{}:,/\", ...this.#whitespace]);\n #text;\n #length;\n #tokenized;\n constructor(text) {\n this.#text = `${text}`;\n this.#length = this.#text.length;\n this.#tokenized = this.#tokenize();\n }\n parse() {\n const token = this.#getNext();\n const res = this.#parseJsonValue(token);\n // make sure all characters have been read\n const { done, value } = this.#tokenized.next();\n if (!done) {\n throw new SyntaxError(buildErrorMessage(value));\n }\n return res;\n }\n /** Read the next token. If the token is read to the end, it throws a SyntaxError. */\n #getNext() {\n const { done, value } = this.#tokenized.next();\n if (done) {\n throw new SyntaxError(\"Cannot parse JSONC: unexpected end of JSONC input\");\n }\n return value;\n }\n /** Split the JSONC string into token units. Whitespace and comments are skipped. */\n *#tokenize() {\n for (let i = 0; i < this.#length; i++) {\n // skip whitespace\n if (this.#whitespace.has(this.#text[i])) {\n continue;\n }\n // skip multi line comment (`/*...*/`)\n if (this.#text[i] === \"/\" && this.#text[i + 1] === \"*\") {\n i += 2;\n let hasEndOfComment = false;\n for (; i < this.#length; i++) { // read until find `*/`\n if (this.#text[i] === \"*\" && this.#text[i + 1] === \"/\") {\n hasEndOfComment = true;\n break;\n }\n }\n if (!hasEndOfComment) {\n throw new SyntaxError(\"Cannot parse JSONC: unexpected end of JSONC input\");\n }\n i++;\n continue;\n }\n // skip single line comment (`//...`)\n if (this.#text[i] === \"/\" && this.#text[i + 1] === \"/\") {\n i += 2;\n for (; i < this.#length; i++) { // read until find `\\n` or `\\r`\n if (this.#text[i] === \"\\n\" || this.#text[i] === \"\\r\") {\n break;\n }\n }\n continue;\n }\n switch (this.#text[i]) {\n case \"{\":\n yield { type: \"BeginObject\", position: i };\n break;\n case \"}\":\n yield { type: \"EndObject\", position: i };\n break;\n case \"[\":\n yield { type: \"BeginArray\", position: i };\n break;\n case \"]\":\n yield { type: \"EndArray\", position: i };\n break;\n case \":\":\n yield { type: \"NameSeparator\", position: i };\n break;\n case \",\":\n yield { type: \"ValueSeparator\", position: i };\n break;\n case '\"': { // parse string token\n const startIndex = i;\n // Need to handle consecutive backslashes correctly\n // '\"\\\\\"\"' => '\"'\n // '\"\\\\\\\\\"' => '\\\\'\n // '\"\\\\\\\\\\\\\"\"' => '\\\\\"'\n // '\"\\\\\\\\\\\\\\\\\"' => '\\\\\\\\'\n let shouldEscapeNext = false;\n i++;\n for (; i < this.#length; i++) { // read until find `\"`\n if (this.#text[i] === '\"' && !shouldEscapeNext) {\n break;\n }\n shouldEscapeNext = this.#text[i] === \"\\\\\" && !shouldEscapeNext;\n }\n yield {\n type: \"String\",\n sourceText: this.#text.substring(startIndex, i + 1),\n position: startIndex,\n };\n break;\n }\n default: { // parse null, true, false or number token\n const startIndex = i;\n for (; i < this.#length; i++) { // read until find numberEndToken\n if (this.#numberEndToken.has(this.#text[i])) {\n break;\n }\n }\n i--;\n yield {\n type: \"NullOrTrueOrFalseOrNumber\",\n sourceText: this.#text.substring(startIndex, i + 1),\n position: startIndex,\n };\n }\n }\n }\n }\n #parseJsonValue(value) {\n switch (value.type) {\n case \"BeginObject\":\n return this.#parseObject();\n case \"BeginArray\":\n return this.#parseArray();\n case \"NullOrTrueOrFalseOrNumber\":\n return this.#parseNullOrTrueOrFalseOrNumber(value);\n case \"String\":\n return this.#parseString(value);\n default:\n throw new SyntaxError(buildErrorMessage(value));\n }\n }\n #parseObject() {\n const target = {};\n // ┌─token1\n // { }\n // ┌─────────────token1\n // │ ┌─────────token2\n // │ │ ┌─────token3\n // │ │ │ ┌─token4\n // { \"key\" : value }\n // ┌───────────────token1\n // │ ┌───────────token2\n // │ │ ┌───────token3\n // │ │ │ ┌───token4\n // │ │ │ │ ┌─token1\n // { \"key\" : value , }\n // ┌─────────────────────────────token1\n // │ ┌─────────────────────────token2\n // │ │ ┌─────────────────────token3\n // │ │ │ ┌─────────────────token4\n // │ │ │ │ ┌─────────────token1\n // │ │ │ │ │ ┌─────────token2\n // │ │ │ │ │ │ ┌─────token3\n // │ │ │ │ │ │ │ ┌─token4\n // { \"key\" : value , \"key\" : value }\n while (true) {\n const token1 = this.#getNext();\n if (token1.type === \"EndObject\") {\n return target;\n }\n if (token1.type !== \"String\") {\n throw new SyntaxError(buildErrorMessage(token1));\n }\n const key = this.#parseString(token1);\n const token2 = this.#getNext();\n if (token2.type !== \"NameSeparator\") {\n throw new SyntaxError(buildErrorMessage(token2));\n }\n const token3 = this.#getNext();\n Object.defineProperty(target, key, {\n value: this.#parseJsonValue(token3),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n const token4 = this.#getNext();\n if (token4.type === \"EndObject\") {\n return target;\n }\n if (token4.type !== \"ValueSeparator\") {\n throw new SyntaxError(buildErrorMessage(token4));\n }\n }\n }\n #parseArray() {\n const target = [];\n // ┌─token1\n // [ ]\n // ┌─────────────token1\n // │ ┌─────────token2\n // [ value ]\n // ┌───────token1\n // │ ┌───token2\n // │ │ ┌─token1\n // [ value , ]\n // ┌─────────────token1\n // │ ┌─────────token2\n // │ │ ┌─────token1\n // │ │ │ ┌─token2\n // [ value , value ]\n while (true) {\n const token1 = this.#getNext();\n if (token1.type === \"EndArray\") {\n return target;\n }\n target.push(this.#parseJsonValue(token1));\n const token2 = this.#getNext();\n if (token2.type === \"EndArray\") {\n return target;\n }\n if (token2.type !== \"ValueSeparator\") {\n throw new SyntaxError(buildErrorMessage(token2));\n }\n }\n }\n #parseString(value) {\n let parsed;\n try {\n // Use JSON.parse to handle `\\u0000` etc. correctly.\n parsed = JSON.parse(value.sourceText);\n }\n catch {\n throw new SyntaxError(buildErrorMessage(value));\n }\n if (typeof parsed !== \"string\") {\n throw new TypeError(`Parsed value is not a string: ${parsed}`);\n }\n return parsed;\n }\n #parseNullOrTrueOrFalseOrNumber(value) {\n if (value.sourceText === \"null\") {\n return null;\n }\n if (value.sourceText === \"true\") {\n return true;\n }\n if (value.sourceText === \"false\") {\n return false;\n }\n let parsed;\n try {\n // Use JSON.parse to handle `+100`, `Infinity` etc. correctly.\n parsed = JSON.parse(value.sourceText);\n }\n catch {\n throw new SyntaxError(buildErrorMessage(value));\n }\n if (typeof parsed !== \"number\") {\n throw new TypeError(`Parsed value is not a number: ${parsed}`);\n }\n return parsed;\n }\n}\nfunction buildErrorMessage({ type, sourceText, position }) {\n let token = \"\";\n switch (type) {\n case \"BeginObject\":\n token = \"{\";\n break;\n case \"EndObject\":\n token = \"}\";\n break;\n case \"BeginArray\":\n token = \"[\";\n break;\n case \"EndArray\":\n token = \"]\";\n break;\n case \"NameSeparator\":\n token = \":\";\n break;\n case \"ValueSeparator\":\n token = \",\";\n break;\n case \"NullOrTrueOrFalseOrNumber\":\n case \"String\":\n // Truncate the string so that it is within 30 lengths.\n token = 30 < sourceText.length\n ? `${sourceText.slice(0, 30)}...`\n : sourceText;\n break;\n }\n return `Cannot parse JSONC: unexpected token \"${token}\" in JSONC at position ${position}`;\n}\n","/**\n * @module\n * 这里提供了常见的“配置文件”读写工具\n */\nimport \"./_dnt.polyfills.js\";\nimport { normalizeFilePath } from \"@gaubee/node\";\nimport * as JSONC from \"./deps/jsr.io/@std/jsonc/1.0.2/mod.js\";\nimport * as TOML from \"./deps/jsr.io/@std/toml/1.0.8/mod.js\";\nimport * as YAML from \"./deps/jsr.io/@std/yaml/1.0.8/mod.js\";\nimport fs from \"node:fs\";\nexport { JSONC, TOML, YAML };\nexport const readText = (path, defaultValue) => {\n try {\n return fs.readFileSync(normalizeFilePath(path), \"utf8\");\n }\n catch (e) {\n if (defaultValue) {\n return defaultValue();\n }\n throw e;\n }\n};\nexport const writeText = (path, content) => {\n path = normalizeFilePath(path);\n try {\n fs.writeFileSync(normalizeFilePath(path), content);\n }\n catch (e) {\n if (e instanceof Error && e.message.startsWith(\"ENOENT:\")) {\n throw new Error(e.message + \" \" + path);\n }\n throw e;\n }\n};\n/**\n * read json or jsonc file\n */\nexport const readJson = (path, defaultValue) => {\n try {\n return JSONC.parse(fs.readFileSync(normalizeFilePath(path), \"utf8\"));\n }\n catch (e) {\n if (defaultValue) {\n return defaultValue();\n }\n throw e;\n }\n};\n/**\n * write json file\n */\nexport const writeJson = (path, data, options, beforeWrite) => {\n let jsonContent = JSON.stringify(data, options?.replacer, options?.space ?? 2);\n if (beforeWrite) {\n jsonContent = beforeWrite(jsonContent);\n }\n writeText(path, jsonContent);\n};\n/**\n * read yaml file\n */\nexport const readYaml = (path, defaultValue) => {\n try {\n return YAML.parse(fs.readFileSync(normalizeFilePath(path), \"utf8\"));\n }\n catch (e) {\n if (defaultValue) {\n return defaultValue();\n }\n throw e;\n }\n};\n/**\n * write yaml file\n * @returns\n */\nexport const writeYaml = (path, data, options, beforeWrite) => {\n let yamlContent = YAML.stringify(data, options);\n if (beforeWrite) {\n yamlContent = beforeWrite(yamlContent);\n }\n writeText(path, yamlContent);\n};\n/**\n * read toml file\n */\nexport const readToml = (path, defaultValue) => {\n try {\n return TOML.parse(fs.readFileSync(normalizeFilePath(path), \"utf8\"));\n }\n catch (e) {\n if (defaultValue) {\n return defaultValue();\n }\n throw e;\n }\n};\n/**\n * write toml file\n */\nexport const writeToml = (path, data, beforeWrite) => {\n let tomlContent = TOML.stringify(data);\n if (beforeWrite) {\n tomlContent = beforeWrite(tomlContent);\n }\n writeText(path, tomlContent);\n};\n","// A simple implementation of make-array\nfunction makeArray (subject) {\n return Array.isArray(subject)\n ? subject\n : [subject]\n}\n\nconst UNDEFINED = undefined\nconst EMPTY = ''\nconst SPACE = ' '\nconst ESCAPE = '\\\\'\nconst REGEX_TEST_BLANK_LINE = /^\\s+$/\nconst REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/\nconst REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/\nconst REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/\nconst REGEX_SPLITALL_CRLF = /\\r?\\n/g\n\n// Invalid:\n// - /foo,\n// - ./foo,\n// - ../foo,\n// - .\n// - ..\n// Valid:\n// - .foo\nconst REGEX_TEST_INVALID_PATH = /^\\.{0,2}\\/|^\\.{1,2}$/\n\nconst REGEX_TEST_TRAILING_SLASH = /\\/$/\n\nconst SLASH = '/'\n\n// Do not use ternary expression here, since \"istanbul ignore next\" is buggy\nlet TMP_KEY_IGNORE = 'node-ignore'\n/* istanbul ignore else */\nif (typeof Symbol !== 'undefined') {\n TMP_KEY_IGNORE = Symbol.for('node-ignore')\n}\nconst KEY_IGNORE = TMP_KEY_IGNORE\n\nconst define = (object, key, value) => {\n Object.defineProperty(object, key, {value})\n return value\n}\n\nconst REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g\n\nconst RETURN_FALSE = () => false\n\n// Sanitize the range of a regular expression\n// The cases are complicated, see test cases for details\nconst sanitizeRange = range => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)\n ? match\n // Invalid range (out of order) which is ok for gitignore rules but\n // fatal for JavaScript regular expression, so eliminate it.\n : EMPTY\n)\n\n// See fixtures #59\nconst cleanRangeBackSlash = slashes => {\n const {length} = slashes\n return slashes.slice(0, length - length % 2)\n}\n\n// > If the pattern ends with a slash,\n// > it is removed for the purpose of the following description,\n// > but it would only find a match with a directory.\n// > In other words, foo/ will match a directory foo and paths underneath it,\n// > but will not match a regular file or a symbolic link foo\n// > (this is consistent with the way how pathspec works in general in Git).\n// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'\n// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call\n// you could use option `mark: true` with `glob`\n\n// '`foo/`' should not continue with the '`..`'\nconst REPLACERS = [\n\n [\n // Remove BOM\n // TODO:\n // Other similar zero-width characters?\n /^\\uFEFF/,\n () => EMPTY\n ],\n\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /((?:\\\\\\\\)*?)(\\\\?\\s+)$/,\n (_, m1, m2) => m1 + (\n m2.indexOf('\\\\') === 0\n ? SPACE\n : EMPTY\n )\n ],\n\n // Replace (\\ ) with ' '\n // (\\ ) -> ' '\n // (\\\\ ) -> '\\\\ '\n // (\\\\\\ ) -> '\\\\ '\n [\n /(\\\\+?)\\s/g,\n (_, m1) => {\n const {length} = m1\n return m1.slice(0, length - length % 2) + SPACE\n }\n ],\n\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n match => `\\\\${match}`\n ],\n\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => '[^/]'\n ],\n\n // leading slash\n [\n\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => '^'\n ],\n\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => '\\\\/'\n ],\n\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n\n // '**/foo' <-> 'foo'\n () => '^(?:.*\\\\/)?'\n ],\n\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer () {\n // If has a slash `/` at the beginning or middle\n return !/\\/(?!$)/.test(this)\n // > Prior to 2.22.1\n // > If the pattern does not contain a slash /,\n // > Git treats it as a shell glob pattern\n // Actually, if there is only a trailing slash,\n // git also treats it as a shell glob pattern\n\n // After 2.22.1 (compatible but clearer)\n // > If there is a separator at the beginning or middle (or both)\n // > of the pattern, then the pattern is relative to the directory\n // > level of the particular .gitignore file itself.\n // > Otherwise the pattern may also match at any level below\n // > the .gitignore level.\n ? '(?:^|\\\\/)'\n\n // > Otherwise, Git treats the pattern as a shell glob suitable for\n // > consumption by fnmatch(3)\n : '^'\n }\n ],\n\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n\n // Check if it is not the last `'/**'`\n (_, index, str) => index + 6 < str.length\n\n // case: /**/\n // > A slash followed by two consecutive asterisks then a slash matches\n // > zero or more directories.\n // > For example, \"a/**/b\" matches \"a/b\", \"a/x/b\", \"a/x/y/b\" and so on.\n // '/**/'\n ? '(?:\\\\/[^\\\\/]+)*'\n\n // case: /**\n // > A trailing `\"/**\"` matches everything inside.\n\n // #21: everything inside but it should not include the current folder\n : '\\\\/.+'\n ],\n\n // normal intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule,\n // coz trailing single wildcard will be handed by [trailing wildcard]\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\n\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1, p2) => {\n // 1.\n // > An asterisk \"*\" matches anything except a slash.\n // 2.\n // > Other consecutive asterisks are considered regular asterisks\n // > and will match according to the previous rules.\n const unescaped = p2.replace(/\\\\\\*/g, '[^\\\\/]*')\n return p1 + unescaped\n }\n ],\n\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE\n // '\\\\[bar]' -> '\\\\\\\\[bar\\\\]'\n ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}`\n : close === ']'\n ? endEscape.length % 2 === 0\n // A normal case, and it is a range notation\n // '[bar]'\n // '[bar\\\\\\\\]'\n ? `[${sanitizeRange(range)}${endEscape}]`\n // Invalid range notaton\n // '[bar\\\\]' -> '[bar\\\\\\\\]'\n : '[]'\n : '[]'\n ],\n\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n match => /\\/$/.test(match)\n // foo/ will not match 'foo'\n ? `${match}$`\n // foo matches 'foo' and 'foo/'\n : `${match}(?=$|\\\\/$)`\n ]\n]\n\nconst REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\\\\/)?\\\\\\*$/\nconst MODE_IGNORE = 'regex'\nconst MODE_CHECK_IGNORE = 'checkRegex'\nconst UNDERSCORE = '_'\n\nconst TRAILING_WILD_CARD_REPLACERS = {\n [MODE_IGNORE] (_, p1) {\n const prefix = p1\n // '\\^':\n // '/*' does not match EMPTY\n // '/*' does not match everything\n\n // '\\\\\\/':\n // 'abc/*' does not match 'abc/'\n ? `${p1}[^/]+`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n },\n\n [MODE_CHECK_IGNORE] (_, p1) {\n // When doing `git check-ignore`\n const prefix = p1\n // '\\\\\\/':\n // 'abc/*' DOES match 'abc/' !\n ? `${p1}[^/]*`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n }\n}\n\n// @param {pattern}\nconst makeRegexPrefix = pattern => REPLACERS.reduce(\n (prev, [matcher, replacer]) =>\n prev.replace(matcher, replacer.bind(pattern)),\n pattern\n)\n\nconst isString = subject => typeof subject === 'string'\n\n// > A blank line matches no files, so it can serve as a separator for readability.\nconst checkPattern = pattern => pattern\n && isString(pattern)\n && !REGEX_TEST_BLANK_LINE.test(pattern)\n && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern)\n\n // > A line starting with # serves as a comment.\n && pattern.indexOf('#') !== 0\n\nconst splitPattern = pattern => pattern\n.split(REGEX_SPLITALL_CRLF)\n.filter(Boolean)\n\nclass IgnoreRule {\n constructor (\n pattern,\n mark,\n body,\n ignoreCase,\n negative,\n prefix\n ) {\n this.pattern = pattern\n this.mark = mark\n this.negative = negative\n\n define(this, 'body', body)\n define(this, 'ignoreCase', ignoreCase)\n define(this, 'regexPrefix', prefix)\n }\n\n get regex () {\n const key = UNDERSCORE + MODE_IGNORE\n\n if (this[key]) {\n return this[key]\n }\n\n return this._make(MODE_IGNORE, key)\n }\n\n get checkRegex () {\n const key = UNDERSCORE + MODE_CHECK_IGNORE\n\n if (this[key]) {\n return this[key]\n }\n\n return this._make(MODE_CHECK_IGNORE, key)\n }\n\n _make (mode, key) {\n const str = this.regexPrefix.replace(\n REGEX_REPLACE_TRAILING_WILDCARD,\n\n // It does not need to bind pattern\n TRAILING_WILD_CARD_REPLACERS[mode]\n )\n\n const regex = this.ignoreCase\n ? new RegExp(str, 'i')\n : new RegExp(str)\n\n return define(this, key, regex)\n }\n}\n\nconst createRule = ({\n pattern,\n mark\n}, ignoreCase) => {\n let negative = false\n let body = pattern\n\n // > An optional prefix \"!\" which negates the pattern;\n if (body.indexOf('!') === 0) {\n negative = true\n body = body.substr(1)\n }\n\n body = body\n // > Put a backslash (\"\\\") in front of the first \"!\" for patterns that\n // > begin with a literal \"!\", for example, `\"\\!important!.txt\"`.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')\n // > Put a backslash (\"\\\") in front of the first hash for patterns that\n // > begin with a hash.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')\n\n const regexPrefix = makeRegexPrefix(body)\n\n return new IgnoreRule(\n pattern,\n mark,\n body,\n ignoreCase,\n negative,\n regexPrefix\n )\n}\n\nclass RuleManager {\n constructor (ignoreCase) {\n this._ignoreCase = ignoreCase\n this._rules = []\n }\n\n _add (pattern) {\n // #32\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules._rules)\n this._added = true\n return\n }\n\n if (isString(pattern)) {\n pattern = {\n pattern\n }\n }\n\n if (checkPattern(pattern.pattern)) {\n const rule = createRule(pattern, this._ignoreCase)\n this._added = true\n this._rules.push(rule)\n }\n }\n\n // @param {Array<string> | string | Ignore} pattern\n add (pattern) {\n this._added = false\n\n makeArray(\n isString(pattern)\n ? splitPattern(pattern)\n : pattern\n ).forEach(this._add, this)\n\n return this._added\n }\n\n // Test one single path without recursively checking parent directories\n //\n // - checkUnignored `boolean` whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n // - check `string` either `MODE_IGNORE` or `MODE_CHECK_IGNORE`\n\n // @returns {TestResult} true if a file is ignored\n test (path, checkUnignored, mode) {\n let ignored = false\n let unignored = false\n let matchedRule\n\n this._rules.forEach(rule => {\n const {negative} = rule\n\n // | ignored : unignored\n // -------- | ---------------------------------------\n // negative | 0:0 | 0:1 | 1:0 | 1:1\n // -------- | ------- | ------- | ------- | --------\n // 0 | TEST | TEST | SKIP | X\n // 1 | TESTIF | SKIP | TEST | X\n\n // - SKIP: always skip\n // - TEST: always test\n // - TESTIF: only test if checkUnignored\n // - X: that never happen\n if (\n unignored === negative && ignored !== unignored\n || negative && !ignored && !unignored && !checkUnignored\n ) {\n return\n }\n\n const matched = rule[mode].test(path)\n\n if (!matched) {\n return\n }\n\n ignored = !negative\n unignored = negative\n\n matchedRule = negative\n ? UNDEFINED\n : rule\n })\n\n const ret = {\n ignored,\n unignored\n }\n\n if (matchedRule) {\n ret.rule = matchedRule\n }\n\n return ret\n }\n}\n\nconst throwError = (message, Ctor) => {\n throw new Ctor(message)\n}\n\nconst checkPath = (path, originalPath, doThrow) => {\n if (!isString(path)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n )\n }\n\n // We don't know if we should ignore EMPTY, so throw\n if (!path) {\n return doThrow(`path must not be empty`, TypeError)\n }\n\n // Check if it is a relative path\n if (checkPath.isNotRelative(path)) {\n const r = '`path.relative()`d'\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n )\n }\n\n return true\n}\n\nconst isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)\n\ncheckPath.isNotRelative = isNotRelative\n\n// On windows, the following function will be replaced\n/* istanbul ignore next */\ncheckPath.convert = p => p\n\n\nclass Ignore {\n constructor ({\n ignorecase = true,\n ignoreCase = ignorecase,\n allowRelativePaths = false\n } = {}) {\n define(this, KEY_IGNORE, true)\n\n this._rules = new RuleManager(ignoreCase)\n this._strictPathCheck = !allowRelativePaths\n this._initCache()\n }\n\n _initCache () {\n // A cache for the result of `.ignores()`\n this._ignoreCache = Object.create(null)\n\n // A cache for the result of `.test()`\n this._testCache = Object.create(null)\n }\n\n add (pattern) {\n if (this._rules.add(pattern)) {\n // Some rules have just added to the ignore,\n // making the behavior changed,\n // so we need to re-initialize the result cache\n this._initCache()\n }\n\n return this\n }\n\n // legacy\n addPattern (pattern) {\n return this.add(pattern)\n }\n\n // @returns {TestResult}\n _test (originalPath, cache, checkUnignored, slices) {\n const path = originalPath\n // Supports nullable path\n && checkPath.convert(originalPath)\n\n checkPath(\n path,\n originalPath,\n this._strictPathCheck\n ? throwError\n : RETURN_FALSE\n )\n\n return this._t(path, cache, checkUnignored, slices)\n }\n\n checkIgnore (path) {\n // If the path doest not end with a slash, `.ignores()` is much equivalent\n // to `git check-ignore`\n if (!REGEX_TEST_TRAILING_SLASH.test(path)) {\n return this.test(path)\n }\n\n const slices = path.split(SLASH).filter(Boolean)\n slices.pop()\n\n if (slices.length) {\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n this._testCache,\n true,\n slices\n )\n\n if (parent.ignored) {\n return parent\n }\n }\n\n return this._rules.test(path, false, MODE_CHECK_IGNORE)\n }\n\n _t (\n // The path to be tested\n path,\n\n // The cache for the result of a certain checking\n cache,\n\n // Whether should check if the path is unignored\n checkUnignored,\n\n // The path slices\n slices\n ) {\n if (path in cache) {\n return cache[path]\n }\n\n if (!slices) {\n // path/to/a.js\n // ['path', 'to', 'a.js']\n slices = path.split(SLASH).filter(Boolean)\n }\n\n slices.pop()\n\n // If the path has no parent directory, just test it\n if (!slices.length) {\n return cache[path] = this._rules.test(path, checkUnignored, MODE_IGNORE)\n }\n\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache,\n checkUnignored,\n slices\n )\n\n // If the path contains a parent directory, check the parent first\n return cache[path] = parent.ignored\n // > It is not possible to re-include a file if a parent directory of\n // > that file is excluded.\n ? parent\n : this._rules.test(path, checkUnignored, MODE_IGNORE)\n }\n\n ignores (path) {\n return this._test(path, this._ignoreCache, false).ignored\n }\n\n createFilter () {\n return path => !this.ignores(path)\n }\n\n filter (paths) {\n return makeArray(paths).filter(this.createFilter())\n }\n\n // @returns {TestResult}\n test (path) {\n return this._test(path, this._testCache, true)\n }\n}\n\nconst factory = options => new Ignore(options)\n\nconst isPathValid = path =>\n checkPath(path && checkPath.convert(path), path, RETURN_FALSE)\n\n/* istanbul ignore next */\nconst setupWindows = () => {\n /* eslint no-control-regex: \"off\" */\n const makePosix = str => /^\\\\\\\\\\?\\\\/.test(str)\n || /[\"<>|\\u0000-\\u001F]+/u.test(str)\n ? str\n : str.replace(/\\\\/g, '/')\n\n checkPath.convert = makePosix\n\n // 'C:\\\\foo' <- 'C:\\\\foo' has been converted to 'C:/'\n // 'd:\\\\foo'\n const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i\n checkPath.isNotRelative = path =>\n REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path)\n || isNotRelative(path)\n}\n\n\n// Windows\n// --------------------------------------------------------------\n/* istanbul ignore next */\nif (\n // Detect `process` so that it can run in browsers.\n typeof process !== 'undefined'\n && process.platform === 'win32'\n) {\n setupWindows()\n}\n\n// COMMONJS_EXPORTS ////////////////////////////////////////////////////////////\n\nmodule.exports = factory\n\n// Although it is an anti-pattern,\n// it is still widely misused by a lot of libraries in github\n// Ref: https://github.com/search?q=ignore.default%28%29&type=code\nfactory.default = factory\n\nmodule.exports.isPathValid = isPathValid\n\n// For testing purposes\ndefine(module.exports, Symbol.for('setupWindows'), setupWindows)\n","import {on, once} from 'node:events';\nimport {PassThrough as PassThroughStream} from 'node:stream';\nimport {finished} from 'node:stream/promises';\n\nexport default function mergeStreams(streams) {\n\tif (!Array.isArray(streams)) {\n\t\tthrow new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\n\t}\n\n\tfor (const stream of streams) {\n\t\tvalidateStream(stream);\n\t}\n\n\tconst objectMode = streams.some(({readableObjectMode}) => readableObjectMode);\n\tconst highWaterMark = getHighWaterMark(streams, objectMode);\n\tconst passThroughStream = new MergedStream({\n\t\tobjectMode,\n\t\twritableHighWaterMark: highWaterMark,\n\t\treadableHighWaterMark: highWaterMark,\n\t});\n\n\tfor (const stream of streams) {\n\t\tpassThroughStream.add(stream);\n\t}\n\n\tif (streams.length === 0) {\n\t\tendStream(passThroughStream);\n\t}\n\n\treturn passThroughStream;\n}\n\nconst getHighWaterMark = (streams, objectMode) => {\n\tif (streams.length === 0) {\n\t\t// @todo Use `node:stream` `getDefaultHighWaterMark(objectMode)` in next major release\n\t\treturn 16_384;\n\t}\n\n\tconst highWaterMarks = streams\n\t\t.filter(({readableObjectMode}) => readableObjectMode === objectMode)\n\t\t.map(({readableHighWaterMark}) => readableHighWaterMark);\n\treturn Math.max(...highWaterMarks);\n};\n\nclass MergedStream extends PassThroughStream {\n\t#streams = new Set([]);\n\t#ended = new Set([]);\n\t#aborted = new Set([]);\n\t#onFinished;\n\n\tadd(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (this.#streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#streams.add(stream);\n\n\t\tthis.#onFinished ??= onMergedStreamFinished(this, this.#streams);\n\t\tendWhenStreamsDone({\n\t\t\tpassThroughStream: this,\n\t\t\tstream,\n\t\t\tstreams: this.#streams,\n\t\t\tended: this.#ended,\n\t\t\taborted: this.#aborted,\n\t\t\tonFinished: this.#onFinished,\n\t\t});\n\n\t\tstream.pipe(this, {end: false});\n\t}\n\n\tremove(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (!this.#streams.has(stream)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tstream.unpipe(this);\n\t\treturn true;\n\t}\n}\n\nconst onMergedStreamFinished = async (passThroughStream, streams) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tonMergedStreamEnd(passThroughStream, controller),\n\t\t\tonInputStreamsUnpipe(passThroughStream, streams, controller),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\n\t}\n};\n\nconst onMergedStreamEnd = async (passThroughStream, {signal}) => {\n\tawait finished(passThroughStream, {signal, cleanup: true});\n};\n\nconst onInputStreamsUnpipe = async (passThroughStream, streams, {signal}) => {\n\tfor await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {\n\t\tif (streams.has(unpipedStream)) {\n\t\t\tunpipedStream.emit(unpipeEvent);\n\t\t}\n\t}\n};\n\nconst validateStream = stream => {\n\tif (typeof stream?.pipe !== 'function') {\n\t\tthrow new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\n\t}\n};\n\nconst endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished}) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tafterMergedStreamFinished(onFinished, stream),\n\t\t\tonInputStreamEnd({passThroughStream, stream, streams, ended, aborted, controller}),\n\t\t\tonInputStreamUnpipe({stream, streams, ended, aborted, controller}),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\n\t}\n\n\tif (streams.size === ended.size + aborted.size) {\n\t\tif (ended.size === 0 && aborted.size > 0) {\n\t\t\tabortStream(passThroughStream);\n\t\t} else {\n\t\t\tendStream(passThroughStream);\n\t\t}\n\t}\n};\n\n// This is the error thrown by `finished()` on `stream.destroy()`\nconst isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\nconst afterMergedStreamFinished = async (onFinished, stream) => {\n\ttry {\n\t\tawait onFinished;\n\t\tabortStream(stream);\n\t} catch (error) {\n\t\tif (isAbortError(error)) {\n\t\t\tabortStream(stream);\n\t\t} else {\n\t\t\terrorStream(stream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {\n\ttry {\n\t\tawait finished(stream, {signal, cleanup: true, readable: true, writable: false});\n\t\tif (streams.has(stream)) {\n\t\t\tended.add(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (signal.aborted || !streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isAbortError(error)) {\n\t\t\taborted.add(stream);\n\t\t} else {\n\t\t\terrorStream(passThroughStream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamUnpipe = async ({stream, streams, ended, aborted, controller: {signal}}) => {\n\tawait once(stream, unpipeEvent, {signal});\n\tstreams.delete(stream);\n\tended.delete(stream);\n\taborted.delete(stream);\n};\n\nconst unpipeEvent = Symbol('unpipe');\n\nconst endStream = stream => {\n\tif (stream.writable) {\n\t\tstream.end();\n\t}\n};\n\nconst abortStream = stream => {\n\tif (stream.readable || stream.writable) {\n\t\tstream.destroy();\n\t}\n};\n\n// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.\n// We take care of error handling on user behalf, so we do not want this to happen.\nconst errorStream = (stream, error) => {\n\tif (!stream.destroyed) {\n\t\tstream.once('error', noop);\n\t\tstream.destroy(error);\n\t}\n};\n\nconst noop = () => {};\n\nconst updateMaxListeners = (passThroughStream, increment) => {\n\tconst maxListeners = passThroughStream.getMaxListeners();\n\tif (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\n\t\tpassThroughStream.setMaxListeners(maxListeners + increment);\n\t}\n};\n\n// Number of times `passThroughStream.on()` is called regardless of streams:\n// - once due to `finished(passThroughStream)`\n// - once due to `on(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_COUNT = 2;\n\n// Number of times `passThroughStream.on()` is called per stream:\n// - once due to `stream.pipe(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_PER_STREAM = 1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n }\n else {\n result[groupIndex].push(item);\n }\n }\n return result;\n}\nexports.splitWhen = splitWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\n/**\n * All non-escaped special characters.\n * Posix: ()*?[]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\n * Windows: (){}[], !+@ before (, ! at the beginning.\n */\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g;\n/**\n * The device path (\\\\.\\ or \\\\?\\).\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\n */\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n/**\n * All backslashes except those escaping special characters.\n * Windows: !()+@{}\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\n */\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@[\\]{}])/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction removeLeadingDotSegment(entry) {\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entry.charAt(0) === '.') {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\nfunction escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapeWindowsPath = escapeWindowsPath;\nfunction escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapePosixPath = escapePosixPath;\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\nfunction convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath)\n .replace(DOS_DEVICE_PATH_RE, '//$1')\n .replace(WINDOWS_BACKSLASHES_RE, '/');\n}\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\nfunction convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n}\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\n","/*!\n * is-extglob <https://github.com/jonschlinkert/is-extglob>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n var match;\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n\n return false;\n};\n","/*!\n * is-glob <https://github.com/jonschlinkert/is-glob>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str.length) {\n if (str[index] === '*') {\n return true;\n }\n\n if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n return true;\n }\n\n if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n if (closeSquareIndex < index) {\n closeSquareIndex = str.indexOf(']', index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n\n if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n closeCurlyIndex = str.indexOf('}', index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n\n if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n closeParenIndex = str.indexOf(')', index);\n if (closeParenIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n\n if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n if (pipeIndex < index) {\n pipeIndex = str.indexOf('|', index);\n }\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n closeParenIndex = str.indexOf(')', pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str.indexOf('\\\\', pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nvar relaxedCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n while (index < str.length) {\n if (/[*?{}()[\\]]/.test(str[index])) {\n return true;\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n if (isExtglob(str)) {\n return true;\n }\n\n var check = strictCheck;\n\n // optionally relax check\n if (options && options.strict === false) {\n check = relaxedCheck;\n }\n\n return check(str);\n};\n","'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n var options = Object.assign({ flipBackslashes: true }, opts);\n\n // flip windows path separators\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n str = str.replace(backslash, slash);\n }\n\n // special case for strings ending in enclosure containing path separator\n if (enclosure.test(str)) {\n str += slash;\n }\n\n // preserves full path in case of trailing path separator\n str += 'a';\n\n // remove path parts that are globby\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n\n // remove escape chars and return result\n return str.replace(escaped, '$1');\n};\n","'use strict';\n\nexports.isInteger = num => {\n if (typeof num === 'number') {\n return Number.isInteger(num);\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isInteger(Number(num));\n }\n return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n const node = block.nodes[n];\n if (!node) return;\n\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n if (node.escaped !== true) {\n node.value = '\\\\' + node.value;\n node.escaped = true;\n }\n }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n if (node.type !== 'brace') return false;\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n if (block.type !== 'brace') return false;\n if (block.invalid === true || block.dollar) return true;\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n if (node.type === 'open' || node.type === 'close') {\n return true;\n }\n return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n if (node.type === 'text') acc.push(node.value);\n if (node.type === 'range') node.type = 'text';\n return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n const result = [];\n\n const flat = arr => {\n for (let i = 0; i < arr.length; i++) {\n const ele = arr[i];\n\n if (Array.isArray(ele)) {\n flat(ele);\n continue;\n }\n\n if (ele !== undefined) {\n result.push(ele);\n }\n }\n return result;\n };\n\n flat(args);\n return result;\n};\n","'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n const stringify = (node, parent = {}) => {\n const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\n let output = '';\n\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return '\\\\' + node.value;\n }\n return node.value;\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes) {\n for (const child of node.nodes) {\n output += stringify(child);\n }\n }\n return output;\n };\n\n return stringify(ast);\n};\n\n","/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n","/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n if (isNumber(min) === false) {\n throw new TypeError('toRegexRange: expected the first argument to be a number');\n }\n\n if (max === void 0 || min === max) {\n return String(min);\n }\n\n if (isNumber(max) === false) {\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\n }\n\n let opts = { relaxZeros: true, ...options };\n if (typeof opts.strictZeros === 'boolean') {\n opts.relaxZeros = opts.strictZeros === false;\n }\n\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n\n if (Math.abs(a - b) === 1) {\n let result = min + '|' + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n state.result = `(?:${state.result})`;\n }\n\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n\n let stop = countNines(min, nines);\n let stops = new Set([max]);\n\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n\n stop = countZeros(max + 1, zeros) - 1;\n\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n\n stops = [...stops];\n stops.sort(compare);\n return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = '';\n let count = 0;\n\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n\n if (startDigit === stopDigit) {\n pattern += startDigit;\n\n } else if (startDigit !== '0' || stopDigit !== '9') {\n pattern += toCharacterClass(startDigit, stopDigit, options);\n\n } else {\n count++;\n }\n }\n\n if (count) {\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n }\n\n return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n\n for (let i = 0; i < ranges.length; i++) {\n let max = ranges[i];\n let obj = rangeToPattern(String(start), String(max), options);\n let zeros = '';\n\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max + 1;\n continue;\n }\n\n if (tok.isPadded) {\n zeros = padZeros(max, tok, options);\n }\n\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max + 1;\n prev = obj;\n }\n\n return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n let result = [];\n\n for (let ele of arr) {\n let { string } = ele;\n\n // only push if _both_ are negative...\n if (!intersection && !contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n\n // or _both_ are positive\n if (intersection && contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n }\n return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n}\n\nfunction compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n let [start = 0, stop = ''] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? ',' + stop : '')}}`;\n }\n return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n if (!tok.isPadded) {\n return value;\n }\n\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options.relaxZeros !== false;\n\n switch (diff) {\n case 0:\n return '';\n case 1:\n return relax ? '0?' : '0';\n case 2:\n return relax ? '0{0,2}' : '00';\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n","/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === '-') value = value.slice(1);\n if (value === '0') return false;\n while (value[++index] === '0');\n return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n if (typeof start === 'string' || typeof end === 'string') {\n return true;\n }\n return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === '-' ? '-' : '';\n if (dash) input = input.slice(1);\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n let negative = input[0] === '-' ? '-' : '';\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = '0' + input;\n return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options, maxLen) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n let prefix = options.capture ? '' : '?:';\n let positives = '';\n let negatives = '';\n let result;\n\n if (parts.positives.length) {\n positives = parts.positives.map(v => toMaxLen(String(v), maxLen)).join('|');\n }\n\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.map(v => toMaxLen(String(v), maxLen)).join('|')})`;\n }\n\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n\n if (options.wrap) {\n return `(${prefix}${result})`;\n }\n\n return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options });\n }\n\n let start = String.fromCharCode(a);\n if (a === b) return start;\n\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n if (Array.isArray(start)) {\n let wrap = options.wrap === true;\n let prefix = options.capture ? '' : '?:';\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n }\n return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n};\n\nconst invalidStep = (step, options) => {\n if (options.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n let a = Number(start);\n let b = Number(end);\n\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n\n // fix negative zero\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify(start, end, options) === false;\n let format = options.transform || transform(toNumber);\n\n if (options.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n }\n\n let parts = { negatives: [], positives: [] };\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n if (options.toRegex === true && step > 1) {\n push(a);\n } else {\n range.push(pad(format(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return step > 1\n ? toSequence(parts, options, maxLen)\n : toRegex(range, null, { wrap: false, ...options });\n }\n\n return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n return invalidRange(start, end, options);\n }\n\n let format = options.transform || (val => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n\n if (options.toRegex && step === 1) {\n return toRange(min, max, false, options);\n }\n\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n range.push(format(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return toRegex(range, null, { wrap: false, options });\n }\n\n return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options);\n }\n\n if (typeof step === 'function') {\n return fill(start, end, 1, { transform: step });\n }\n\n if (isObject(step)) {\n return fill(start, end, 0, step);\n }\n\n let opts = { ...options };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n\n if (!isNumber(step)) {\n if (step != null && !isObject(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n","'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n const walk = (node, parent = {}) => {\n const invalidBlock = utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options.escapeInvalid === true;\n const invalid = invalidBlock === true || invalidNode === true;\n const prefix = options.escapeInvalid === true ? '\\\\' : '';\n let output = '';\n\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n\n if (node.isClose === true) {\n console.log('node.isClose', prefix, node.value);\n return prefix + node.value;\n }\n\n if (node.type === 'open') {\n return invalid ? prefix + node.value : '(';\n }\n\n if (node.type === 'close') {\n return invalid ? prefix + node.value : ')';\n }\n\n if (node.type === 'comma') {\n return node.prev.type === 'comma' ? '' : invalid ? node.value : '|';\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true });\n\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n\n if (node.nodes) {\n for (const child of node.nodes) {\n output += walk(child, node);\n }\n }\n\n return output;\n };\n\n return walk(ast);\n};\n\nmodule.exports = compile;\n","'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n const result = [];\n\n queue = [].concat(queue);\n stash = [].concat(stash);\n\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n }\n\n for (const item of queue) {\n if (Array.isArray(item)) {\n for (const value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);\n }\n }\n }\n return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit;\n\n const walk = (node, parent = {}) => {\n node.queue = [];\n\n let p = parent;\n let q = parent.queue;\n\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify(node, options)));\n return;\n }\n\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), ['{}']));\n return;\n }\n\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n }\n\n let range = fill(...args, options);\n if (range.length === 0) {\n range = stringify(node, options);\n }\n\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n\n const enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n\n for (let i = 0; i < node.nodes.length; i++) {\n const child = node.nodes[i];\n\n if (child.type === 'comma' && node.type === 'brace') {\n if (i === 1) queue.push('');\n queue.push('');\n continue;\n }\n\n if (child.type === 'close') {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n\n if (child.value && child.type !== 'open') {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n\n if (child.nodes) {\n walk(child, node);\n }\n }\n\n return queue;\n };\n\n return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n","'use strict';\n\nmodule.exports = {\n MAX_LENGTH: 10000,\n\n // Digits\n CHAR_0: '0', /* 0 */\n CHAR_9: '9', /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 'A', /* A */\n CHAR_LOWERCASE_A: 'a', /* a */\n CHAR_UPPERCASE_Z: 'Z', /* Z */\n CHAR_LOWERCASE_Z: 'z', /* z */\n\n CHAR_LEFT_PARENTHESES: '(', /* ( */\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n CHAR_ASTERISK: '*', /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: '&', /* & */\n CHAR_AT: '@', /* @ */\n CHAR_BACKSLASH: '\\\\', /* \\ */\n CHAR_BACKTICK: '`', /* ` */\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n CHAR_COLON: ':', /* : */\n CHAR_COMMA: ',', /* , */\n CHAR_DOLLAR: '$', /* . */\n CHAR_DOT: '.', /* . */\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\n CHAR_EQUAL: '=', /* = */\n CHAR_EXCLAMATION_MARK: '!', /* ! */\n CHAR_FORM_FEED: '\\f', /* \\f */\n CHAR_FORWARD_SLASH: '/', /* / */\n CHAR_HASH: '#', /* # */\n CHAR_HYPHEN_MINUS: '-', /* - */\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n CHAR_LINE_FEED: '\\n', /* \\n */\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n CHAR_PERCENT: '%', /* % */\n CHAR_PLUS: '+', /* + */\n CHAR_QUESTION_MARK: '?', /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n CHAR_SEMICOLON: ';', /* ; */\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\n CHAR_SPACE: ' ', /* */\n CHAR_TAB: '\\t', /* \\t */\n CHAR_UNDERSCORE: '_', /* _ */\n CHAR_VERTICAL_LINE: '|', /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n","'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n CHAR_BACKSLASH, /* \\ */\n CHAR_BACKTICK, /* ` */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n CHAR_DOUBLE_QUOTE, /* \" */\n CHAR_SINGLE_QUOTE, /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n const opts = options || {};\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n\n const ast = { type: 'root', input, nodes: [] };\n const stack = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n const length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n\n /**\n * Helpers\n */\n\n const advance = () => input[index++];\n const push = node => {\n if (node.type === 'text' && prev.type === 'dot') {\n prev.type = 'text';\n }\n\n if (prev && prev.type === 'text' && node.type === 'text') {\n prev.value += node.value;\n return;\n }\n\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n\n push({ type: 'bos' });\n\n while (index < length) {\n block = stack[stack.length - 1];\n value = advance();\n\n /**\n * Invalid chars\n */\n\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n\n /**\n * Escaped chars\n */\n\n if (value === CHAR_BACKSLASH) {\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n continue;\n }\n\n /**\n * Right square bracket (literal): ']'\n */\n\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push({ type: 'text', value: '\\\\' + value });\n continue;\n }\n\n /**\n * Left square bracket: '['\n */\n\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n\n let next;\n\n while (index < length && (next = advance())) {\n value += next;\n\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n\n if (brackets === 0) {\n break;\n }\n }\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push({ type: 'paren', nodes: [] });\n stack.push(block);\n push({ type: 'text', value });\n continue;\n }\n\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== 'paren') {\n push({ type: 'text', value });\n continue;\n }\n block = stack.pop();\n push({ type: 'text', value });\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Quotes: '|\"|`\n */\n\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n const open = value;\n let next;\n\n if (options.keepQuotes !== true) {\n value = '';\n }\n\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n\n if (next === open) {\n if (options.keepQuotes === true) value += next;\n break;\n }\n\n value += next;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Left curly brace: '{'\n */\n\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n\n const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n const brace = {\n type: 'brace',\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n\n block = push(brace);\n stack.push(block);\n push({ type: 'open', value });\n continue;\n }\n\n /**\n * Right curly brace: '}'\n */\n\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== 'brace') {\n push({ type: 'text', value });\n continue;\n }\n\n const type = 'close';\n block = stack.pop();\n block.close = true;\n\n push({ type, value });\n depth--;\n\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Comma: ','\n */\n\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n const open = block.nodes.shift();\n block.nodes = [open, { type: 'text', value: stringify(block) }];\n }\n\n push({ type: 'comma', value });\n block.commas++;\n continue;\n }\n\n /**\n * Dot: '.'\n */\n\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n const siblings = block.nodes;\n\n if (depth === 0 || siblings.length === 0) {\n push({ type: 'text', value });\n continue;\n }\n\n if (prev.type === 'dot') {\n block.range = [];\n prev.value += value;\n prev.type = 'range';\n\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = 'text';\n continue;\n }\n\n block.ranges++;\n block.args = [];\n continue;\n }\n\n if (prev.type === 'range') {\n siblings.pop();\n\n const before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n\n push({ type: 'dot', value });\n continue;\n }\n\n /**\n * Text\n */\n\n push({ type: 'text', value });\n }\n\n // Mark imbalanced braces and brackets as invalid\n do {\n block = stack.pop();\n\n if (block.type !== 'root') {\n block.nodes.forEach(node => {\n if (!node.nodes) {\n if (node.type === 'open') node.isOpen = true;\n if (node.type === 'close') node.isClose = true;\n if (!node.nodes) node.type = 'text';\n node.invalid = true;\n }\n });\n\n // get the location of the block on parent.nodes (block's siblings)\n const parent = stack[stack.length - 1];\n const index = parent.nodes.indexOf(block);\n // replace the (invalid) block with it's nodes\n parent.nodes.splice(index, 1, ...block.nodes);\n }\n } while (stack.length > 0);\n\n push({ type: 'eos' });\n return ast;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n let output = [];\n\n if (Array.isArray(input)) {\n for (const pattern of input) {\n const result = braces.create(pattern, options);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options));\n }\n\n if (options && options.expand === true && options.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n if (typeof input === 'string') {\n return stringify(braces.parse(input, options), options);\n }\n return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n\n let result = expand(input, options);\n\n // filter out empty strings if specified\n if (options.noempty === true) {\n result = result.filter(Boolean);\n }\n\n // filter out duplicates if specified\n if (options.nodupes === true) {\n result = [...new Set(result)];\n }\n\n return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n if (input === '' || input.length < 3) {\n return [input];\n }\n\n return options.expand !== true\n ? braces.compile(input, options)\n : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n","'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.isWindows = options => {\n if (options && typeof options.windows === 'boolean') {\n return options.windows;\n }\n return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n","'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\n\nconst isEmptyString = v => v === '' || v === './';\nconst hasBraces = v => {\n const index = v.indexOf('{');\n return index > -1 && v.indexOf('}', index) > -1;\n};\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array<string>} `list` List of strings to match.\n * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = state => {\n items.add(state.output);\n if (options && options.onResult) {\n options.onResult(state);\n }\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter(item => !omit.has(item));\n\n if (options && matches.length === 0) {\n if (options.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n }\n\n if (options.nonull === true || options.nullglob === true) {\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n }\n }\n\n return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = new Set();\n let items = [];\n\n let onResult = state => {\n if (options.onResult) options.onResult(state);\n items.push(state.output);\n };\n\n let matches = new Set(micromatch(list, patterns, { ...options, onResult }));\n\n for (let item of items) {\n if (!matches.has(item)) {\n result.add(item);\n }\n }\n return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n if (Array.isArray(pattern)) {\n return pattern.some(p => micromatch.contains(str, p, options));\n }\n\n if (typeof pattern === 'string') {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n return true;\n }\n }\n\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n if (!utils.isObject(obj)) {\n throw new TypeError('Expected the first argument to be an object');\n }\n let keys = micromatch(Object.keys(obj), patterns, options);\n let res = {};\n for (let key of keys) res[key] = obj[key];\n return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (items.some(item => isMatch(item))) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (!items.every(item => isMatch(item))) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n let posix = utils.isWindows(options);\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n if (match) {\n return match.slice(1).map(v => v === void 0 ? '' : v);\n }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.parse(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options)) {\n res.push(picomatch.parse(str, options));\n }\n }\n return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n if ((options && options.nobrace === true) || !hasBraces(pattern)) {\n return [pattern];\n }\n return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\n// exposed for tests\nmicromatch.hasBraces = hasBraces;\nmodule.exports = micromatch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction isStaticPattern(pattern, options = {}) {\n return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n /**\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n * An empty string cannot be a dynamic pattern.\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n */\n if (pattern === '') {\n return false;\n }\n /**\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n * filepath directly (without read directory).\n */\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf('{');\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n}\nfunction convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n const basename = path.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n const patterns = micromatch.braces(pattern, { expand: true, nodupes: true, keepEscaping: true });\n /**\n * Sort the patterns by length so that the same depth patterns are processed side by side.\n * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\n */\n patterns.sort((a, b) => a.length - b.length);\n /**\n * Micromatch can return an empty string in the case of patterns like `{a,}`.\n */\n return patterns.filter((pattern) => pattern !== '');\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n /**\n * The scan method returns an empty array in some cases.\n * See micromatch/picomatch#58 for more details.\n */\n if (parts.length === 0) {\n parts = [pattern];\n }\n /**\n * The scan method does not return an empty part for the pattern with a forward slash.\n * This is another part of micromatch/picomatch#58.\n */\n if (parts[0].startsWith('/')) {\n parts[0] = parts[0].slice(1);\n parts.unshift('');\n }\n return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\nfunction partitionAbsoluteAndRelative(patterns) {\n const absolute = [];\n const relative = [];\n for (const pattern of patterns) {\n if (isAbsolute(pattern)) {\n absolute.push(pattern);\n }\n else {\n relative.push(pattern);\n }\n }\n return [absolute, relative];\n}\nexports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;\nfunction isAbsolute(pattern) {\n return path.isAbsolute(pattern);\n}\nexports.isAbsolute = isAbsolute;\n","'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n const streamsQueue = []\n const args = slice.call(arguments)\n let merging = false\n let options = args[args.length - 1]\n\n if (options && !Array.isArray(options) && options.pipe == null) {\n args.pop()\n } else {\n options = {}\n }\n\n const doEnd = options.end !== false\n const doPipeError = options.pipeError === true\n if (options.objectMode == null) {\n options.objectMode = true\n }\n if (options.highWaterMark == null) {\n options.highWaterMark = 64 * 1024\n }\n const mergedStream = PassThrough(options)\n\n function addStream () {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options))\n }\n mergeStream()\n return this\n }\n\n function mergeStream () {\n if (merging) {\n return\n }\n merging = true\n\n let streams = streamsQueue.shift()\n if (!streams) {\n process.nextTick(endStream)\n return\n }\n if (!Array.isArray(streams)) {\n streams = [streams]\n }\n\n let pipesCount = streams.length + 1\n\n function next () {\n if (--pipesCount > 0) {\n return\n }\n merging = false\n mergeStream()\n }\n\n function pipe (stream) {\n function onend () {\n stream.removeListener('merge2UnpipeEnd', onend)\n stream.removeListener('end', onend)\n if (doPipeError) {\n stream.removeListener('error', onerror)\n }\n next()\n }\n function onerror (err) {\n mergedStream.emit('error', err)\n }\n // skip ended stream\n if (stream._readableState.endEmitted) {\n return next()\n }\n\n stream.on('merge2UnpipeEnd', onend)\n stream.on('end', onend)\n\n if (doPipeError) {\n stream.on('error', onerror)\n }\n\n stream.pipe(mergedStream, { end: false })\n // compatible for old stream\n stream.resume()\n }\n\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i])\n }\n\n next()\n }\n\n function endStream () {\n merging = false\n // emit 'queueDrain' when all streams merged.\n mergedStream.emit('queueDrain')\n if (doEnd) {\n mergedStream.end()\n }\n }\n\n mergedStream.setMaxListeners(0)\n mergedStream.add = addStream\n mergedStream.on('unpipe', function (stream) {\n stream.emit('merge2UnpipeEnd')\n })\n\n if (args.length) {\n addStream.apply(null, args)\n }\n return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n if (!Array.isArray(streams)) {\n // Backwards-compat with old-style streams\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options))\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error('Only readable stream can be merged.')\n }\n streams.pause()\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options)\n }\n }\n return streams\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once('error', (error) => mergedStream.emit('error', error));\n });\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\n return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit('close'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n return input === '';\n}\nexports.isEmpty = isEmpty;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\nfunction processPatterns(input, settings) {\n let patterns = input;\n /**\n * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\n * and some problems with the micromatch package (see fast-glob issues: #365, #394).\n *\n * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\n * in matching in the case of a large set of patterns after expansion.\n */\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n /**\n * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\n * at any nesting level.\n *\n * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\n * the pattern in the filter before creating a regular expression. There is no need to change the patterns\n * in the application. Only on the input.\n */\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\n }\n /**\n * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\n */\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n}\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n /*\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n */\n if ('.' in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n }\n else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n }\n else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n settings.fs.lstat(path, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n const lstat = settings.fs.lstatSync(path);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n }\n catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n}\nexports.read = read;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n let results, pending, keys\n let isSync = true\n\n if (Array.isArray(tasks)) {\n results = []\n pending = tasks.length\n } else {\n keys = Object.keys(tasks)\n results = {}\n pending = keys.length\n }\n\n function done (err) {\n function end () {\n if (cb) cb(err, results)\n cb = null\n }\n if (isSync) queueMicrotask(end)\n else end()\n }\n\n function each (i, err, result) {\n results[i] = result\n if (--pending === 0 || err) {\n done(err)\n }\n }\n\n if (!pending) {\n // empty\n done(null)\n } else if (keys) {\n // object\n keys.forEach(function (key) {\n tasks[key](function (err, result) { each(key, err, result) })\n })\n } else {\n // array\n tasks.forEach(function (task, i) {\n task(function (err, result) { each(i, err, result) })\n })\n }\n\n isSync = false\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n}\nfunction readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n }\n catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n}\nexports.readdir = readdir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","'use strict'\n\nfunction reusify (Constructor) {\n var head = new Constructor()\n var tail = head\n\n function get () {\n var current = head\n\n if (current.next) {\n head = current.next\n } else {\n head = new Constructor()\n tail = head\n }\n\n current.next = null\n\n return current\n }\n\n function release (obj) {\n tail.next = obj\n tail = obj\n }\n\n return {\n get: get,\n release: release\n }\n}\n\nmodule.exports = reusify\n","'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, _concurrency) {\n if (typeof context === 'function') {\n _concurrency = worker\n worker = context\n context = null\n }\n\n if (!(_concurrency >= 1)) {\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\n }\n\n var cache = reusify(Task)\n var queueHead = null\n var queueTail = null\n var _running = 0\n var errorHandler = null\n\n var self = {\n push: push,\n drain: noop,\n saturated: noop,\n pause: pause,\n paused: false,\n\n get concurrency () {\n return _concurrency\n },\n set concurrency (value) {\n if (!(value >= 1)) {\n throw new Error('fastqueue concurrency must be equal to or greater than 1')\n }\n _concurrency = value\n\n if (self.paused) return\n for (; queueHead && _running < _concurrency;) {\n _running++\n release()\n }\n },\n\n running: running,\n resume: resume,\n idle: idle,\n length: length,\n getQueue: getQueue,\n unshift: unshift,\n empty: noop,\n kill: kill,\n killAndDrain: killAndDrain,\n error: error\n }\n\n return self\n\n function running () {\n return _running\n }\n\n function pause () {\n self.paused = true\n }\n\n function length () {\n var current = queueHead\n var counter = 0\n\n while (current) {\n current = current.next\n counter++\n }\n\n return counter\n }\n\n function getQueue () {\n var current = queueHead\n var tasks = []\n\n while (current) {\n tasks.push(current.value)\n current = current.next\n }\n\n return tasks\n }\n\n function resume () {\n if (!self.paused) return\n self.paused = false\n if (queueHead === null) {\n _running++\n release()\n return\n }\n for (; queueHead && _running < _concurrency;) {\n _running++\n release()\n }\n }\n\n function idle () {\n return _running === 0 && self.length() === 0\n }\n\n function push (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running >= _concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current\n queueTail = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function unshift (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running >= _concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead\n queueHead = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function release (holder) {\n if (holder) {\n cache.release(holder)\n }\n var next = queueHead\n if (next && _running <= _concurrency) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null\n }\n queueHead = next.next\n next.next = null\n worker.call(context, next.value, next.worked)\n if (queueTail === null) {\n self.empty()\n }\n } else {\n _running--\n }\n } else if (--_running === 0) {\n self.drain()\n }\n }\n\n function kill () {\n queueHead = null\n queueTail = null\n self.drain = noop\n }\n\n function killAndDrain () {\n queueHead = null\n queueTail = null\n self.drain()\n self.drain = noop\n }\n\n function error (handler) {\n errorHandler = handler\n }\n}\n\nfunction noop () {}\n\nfunction Task () {\n this.value = null\n this.callback = noop\n this.next = null\n this.release = noop\n this.context = null\n this.errorHandler = null\n\n var self = this\n\n this.worked = function worked (err, result) {\n var callback = self.callback\n var errorHandler = self.errorHandler\n var val = self.value\n self.value = null\n self.callback = noop\n if (self.errorHandler) {\n errorHandler(err, val)\n }\n callback.call(self.context, err, result)\n self.release(self)\n }\n}\n\nfunction queueAsPromised (context, worker, _concurrency) {\n if (typeof context === 'function') {\n _concurrency = worker\n worker = context\n context = null\n }\n\n function asyncWrapper (arg, cb) {\n worker.call(this, arg)\n .then(function (res) {\n cb(null, res)\n }, cb)\n }\n\n var queue = fastqueue(context, asyncWrapper, _concurrency)\n\n var pushCb = queue.push\n var unshiftCb = queue.unshift\n\n queue.push = push\n queue.unshift = unshift\n queue.drained = drained\n\n return queue\n\n function push (value) {\n var p = new Promise(function (resolve, reject) {\n pushCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function unshift (value) {\n var p = new Promise(function (resolve, reject) {\n unshiftCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function drained () {\n var p = new Promise(function (resolve) {\n process.nextTick(function () {\n if (queue.idle()) {\n resolve()\n } else {\n var previousDrain = queue.drain\n queue.drain = function () {\n if (typeof previousDrain === 'function') previousDrain()\n resolve()\n queue.drain = previousDrain\n }\n }\n })\n })\n\n return p\n }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n if (a === '') {\n return b;\n }\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit('end');\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error('The reader is already destroyed');\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on('entry', callback);\n }\n onError(callback) {\n this._emitter.once('error', callback);\n }\n onEnd(callback) {\n this._emitter.once('end', callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, undefined);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, undefined);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit('error', error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit('entry', entry);\n }\n}\nexports.default = AsyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n callback(null, entries);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => { },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit('error', error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n}\nexports.default = StreamProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n }\n catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n}\nexports.default = SyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n}\nexports.default = SyncProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, undefined);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root, options) {\n return this._walkStream(root, options);\n }\n static(patterns, options) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options)\n .then((entry) => {\n if (entry !== null && options.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n })\n .catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options) {\n return this._getStat(filepath)\n .then((stats) => this._makeEntry(stats, pattern))\n .catch((error) => {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve(stats) : reject(error);\n });\n });\n }\n}\nexports.default = ReaderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nconst stream_1 = require(\"./stream\");\nclass ReaderAsync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root, options) {\n return new Promise((resolve, reject) => {\n this._walkAsync(root, options, (error, entries) => {\n if (error === null) {\n resolve(entries);\n }\n else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options);\n // After #235, replace it with an asynchronous iterator.\n return new Promise((resolve, reject) => {\n stream.once('error', reject);\n stream.on('data', (entry) => entries.push(entry));\n stream.once('end', () => resolve(entries));\n });\n }\n}\nexports.default = ReaderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n}\nexports.default = Matcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split('/');\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n /**\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\n * but only if the level has reached the end of the first group.\n *\n * fixtures/{a,b}/**\n * ^ true/false ^ always true\n */\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n}\nexports.default = PartialMatcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n /**\n * Avoid unnecessary depth calculations when it doesn't matter.\n */\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split('/').length;\n if (basePath === '') {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split('/').length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n}\nexports.default = DeepFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = new Map();\n }\n getFilter(positive, negative) {\n const [absoluteNegative, relativeNegative] = utils.pattern.partitionAbsoluteAndRelative(negative);\n const patterns = {\n positive: {\n all: utils.pattern.convertPatternsToRe(positive, this._micromatchOptions)\n },\n negative: {\n absolute: utils.pattern.convertPatternsToRe(absoluteNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })),\n relative: utils.pattern.convertPatternsToRe(relativeNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }))\n }\n };\n return (entry) => this._filter(entry, patterns);\n }\n _filter(entry, patterns) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n const isMatched = this._isMatchToPatternsSet(filepath, patterns, entry.dirent.isDirectory());\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, undefined);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isMatchToPatternsSet(filepath, patterns, isDirectory) {\n const isMatched = this._isMatchToPatterns(filepath, patterns.positive.all, isDirectory);\n if (!isMatched) {\n return false;\n }\n const isMatchedByRelativeNegative = this._isMatchToPatterns(filepath, patterns.negative.relative, isDirectory);\n if (isMatchedByRelativeNegative) {\n return false;\n }\n const isMatchedByAbsoluteNegative = this._isMatchToAbsoluteNegative(filepath, patterns.negative.absolute, isDirectory);\n if (isMatchedByAbsoluteNegative) {\n return false;\n }\n return true;\n }\n _isMatchToAbsoluteNegative(filepath, patternsRe, isDirectory) {\n if (patternsRe.length === 0) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n return this._isMatchToPatterns(fullpath, patternsRe, isDirectory);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory) {\n if (patternsRe.length === 0) {\n return false;\n }\n // Trying to match files and directories by patterns.\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n // A pattern with a trailling slash can be used for directory matching.\n // To apply such pattern, we need to add a tralling slash to the path.\n if (!isMatched && isDirectory) {\n return utils.pattern.matchAny(filepath + '/', patternsRe);\n }\n return isMatched;\n }\n}\nexports.default = EntryFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n}\nexports.default = ErrorFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += '/';\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n}\nexports.default = EntryTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === '.' ? '' : task.base;\n return {\n basePath,\n pathSegmentSeparator: '/',\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n}\nexports.default = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = await this.api(root, task, options);\n return entries.map((entry) => options.transform(entry));\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const source = this.api(root, task, options);\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n source\n .once('error', (error) => destination.emit('error', error))\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\n .once('end', () => destination.emit('end'));\n destination\n .once('close', () => source.destroy());\n return destination;\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root, options) {\n return this._walkSync(root, options);\n }\n static(patterns, options) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options);\n if (entry === null || !options.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n }\n catch (error) {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n}\nexports.default = ReaderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = this.api(root, task, options);\n return entries.map(options.transform);\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n lstatSync: fs.lstatSync,\n stat: fs.stat,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n // Remove the cast to the array in the next major (#404).\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === undefined ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n}\nexports.default = Settings;\n","\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, async_1.default, options);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n FastGlob.glob = FastGlob;\n FastGlob.globSync = sync;\n FastGlob.globStream = stream;\n FastGlob.async = FastGlob;\n function sync(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, sync_1.default, options);\n return utils.array.flatten(works);\n }\n FastGlob.sync = sync;\n function stream(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, stream_1.default, options);\n /**\n * The stream returned by the provider cannot work with an asynchronous iterator.\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n * This affects performance (+25%). I don't see best solution right now.\n */\n return utils.stream.merge(works);\n }\n FastGlob.stream = stream;\n function generateTasks(source, options) {\n assertPatternsInput(source);\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n return taskManager.generate(patterns, settings);\n }\n FastGlob.generateTasks = generateTasks;\n function isDynamicPattern(source, options) {\n assertPatternsInput(source);\n const settings = new settings_1.default(options);\n return utils.pattern.isDynamicPattern(source, settings);\n }\n FastGlob.isDynamicPattern = isDynamicPattern;\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escape(source);\n }\n FastGlob.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPathToPattern(source);\n }\n FastGlob.convertPathToPattern = convertPathToPattern;\n let posix;\n (function (posix) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapePosixPath(source);\n }\n posix.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPosixPathToPattern(source);\n }\n posix.convertPathToPattern = convertPathToPattern;\n })(posix = FastGlob.posix || (FastGlob.posix = {}));\n let win32;\n (function (win32) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapeWindowsPath(source);\n }\n win32.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertWindowsPathToPattern(source);\n }\n win32.convertPathToPattern = convertPathToPattern;\n })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n const source = [].concat(input);\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n }\n}\nmodule.exports = FastGlob;\n","import fs from 'node:fs';\nimport fsPromises from 'node:fs/promises';\n\nasync function isType(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\tconst stats = await fsPromises[fsStatType](filePath);\n\t\treturn stats[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nfunction isTypeSync(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\treturn fs[fsStatType](filePath)[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nexport const isFile = isType.bind(undefined, 'stat', 'isFile');\nexport const isDirectory = isType.bind(undefined, 'stat', 'isDirectory');\nexport const isSymlink = isType.bind(undefined, 'lstat', 'isSymbolicLink');\nexport const isFileSync = isTypeSync.bind(undefined, 'statSync', 'isFile');\nexport const isDirectorySync = isTypeSync.bind(undefined, 'statSync', 'isDirectory');\nexport const isSymlinkSync = isTypeSync.bind(undefined, 'lstatSync', 'isSymbolicLink');\n","import {promisify} from 'node:util';\nimport {execFile as execFileCallback, execFileSync as execFileSyncOriginal} from 'node:child_process';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\n\nconst execFileOriginal = promisify(execFileCallback);\n\nexport function toPath(urlOrPath) {\n\treturn urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n}\n\nexport function rootDirectory(pathInput) {\n\treturn path.parse(toPath(pathInput)).root;\n}\n\nexport function traversePathUp(startPath) {\n\treturn {\n\t\t* [Symbol.iterator]() {\n\t\t\tlet currentPath = path.resolve(toPath(startPath));\n\t\t\tlet previousPath;\n\n\t\t\twhile (previousPath !== currentPath) {\n\t\t\t\tyield currentPath;\n\t\t\t\tpreviousPath = currentPath;\n\t\t\t\tcurrentPath = path.resolve(currentPath, '..');\n\t\t\t}\n\t\t},\n\t};\n}\n\nconst TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;\n\nexport async function execFile(file, arguments_, options = {}) {\n\treturn execFileOriginal(file, arguments_, {\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\n\t\t...options,\n\t});\n}\n\nexport function execFileSync(file, arguments_ = [], options = {}) {\n\treturn execFileSyncOriginal(file, arguments_, {\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\n\t\tencoding: 'utf8',\n\t\tstdio: 'pipe',\n\t\t...options,\n\t});\n}\n\nexport * from './default.js';\n","export default function slash(path) {\n\tconst isExtendedLengthPath = path.startsWith('\\\\\\\\?\\\\');\n\n\tif (isExtendedLengthPath) {\n\t\treturn path;\n\t}\n\n\treturn path.replace(/\\\\/g, '/');\n}\n","export const isNegativePattern = pattern => pattern[0] === '!';\n","import process from 'node:process';\nimport fs from 'node:fs';\nimport fsPromises from 'node:fs/promises';\nimport path from 'node:path';\nimport fastGlob from 'fast-glob';\nimport gitIgnore from 'ignore';\nimport slash from 'slash';\nimport {toPath} from 'unicorn-magic';\nimport {isNegativePattern} from './utilities.js';\n\nconst defaultIgnoredDirectories = [\n\t'**/node_modules',\n\t'**/flow-typed',\n\t'**/coverage',\n\t'**/.git',\n];\nconst ignoreFilesGlobOptions = {\n\tabsolute: true,\n\tdot: true,\n};\n\nexport const GITIGNORE_FILES_PATTERN = '**/.gitignore';\n\nconst applyBaseToPattern = (pattern, base) => isNegativePattern(pattern)\n\t? '!' + path.posix.join(base, pattern.slice(1))\n\t: path.posix.join(base, pattern);\n\nconst parseIgnoreFile = (file, cwd) => {\n\tconst base = slash(path.relative(cwd, path.dirname(file.filePath)));\n\n\treturn file.content\n\t\t.split(/\\r?\\n/)\n\t\t.filter(line => line && !line.startsWith('#'))\n\t\t.map(pattern => applyBaseToPattern(pattern, base));\n};\n\nconst toRelativePath = (fileOrDirectory, cwd) => {\n\tcwd = slash(cwd);\n\tif (path.isAbsolute(fileOrDirectory)) {\n\t\tif (slash(fileOrDirectory).startsWith(cwd)) {\n\t\t\treturn path.relative(cwd, fileOrDirectory);\n\t\t}\n\n\t\tthrow new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);\n\t}\n\n\treturn fileOrDirectory;\n};\n\nconst getIsIgnoredPredicate = (files, cwd) => {\n\tconst patterns = files.flatMap(file => parseIgnoreFile(file, cwd));\n\tconst ignores = gitIgnore().add(patterns);\n\n\treturn fileOrDirectory => {\n\t\tfileOrDirectory = toPath(fileOrDirectory);\n\t\tfileOrDirectory = toRelativePath(fileOrDirectory, cwd);\n\t\treturn fileOrDirectory ? ignores.ignores(slash(fileOrDirectory)) : false;\n\t};\n};\n\nconst normalizeOptions = (options = {}) => ({\n\tcwd: toPath(options.cwd) ?? process.cwd(),\n\tsuppressErrors: Boolean(options.suppressErrors),\n\tdeep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY,\n\tignore: [...options.ignore ?? [], ...defaultIgnoredDirectories],\n});\n\nexport const isIgnoredByIgnoreFiles = async (patterns, options) => {\n\tconst {cwd, suppressErrors, deep, ignore} = normalizeOptions(options);\n\n\tconst paths = await fastGlob(patterns, {\n\t\tcwd,\n\t\tsuppressErrors,\n\t\tdeep,\n\t\tignore,\n\t\t...ignoreFilesGlobOptions,\n\t});\n\n\tconst files = await Promise.all(\n\t\tpaths.map(async filePath => ({\n\t\t\tfilePath,\n\t\t\tcontent: await fsPromises.readFile(filePath, 'utf8'),\n\t\t})),\n\t);\n\n\treturn getIsIgnoredPredicate(files, cwd);\n};\n\nexport const isIgnoredByIgnoreFilesSync = (patterns, options) => {\n\tconst {cwd, suppressErrors, deep, ignore} = normalizeOptions(options);\n\n\tconst paths = fastGlob.sync(patterns, {\n\t\tcwd,\n\t\tsuppressErrors,\n\t\tdeep,\n\t\tignore,\n\t\t...ignoreFilesGlobOptions,\n\t});\n\n\tconst files = paths.map(filePath => ({\n\t\tfilePath,\n\t\tcontent: fs.readFileSync(filePath, 'utf8'),\n\t}));\n\n\treturn getIsIgnoredPredicate(files, cwd);\n};\n\nexport const isGitIgnored = options => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);\nexport const isGitIgnoredSync = options => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);\n","import process from 'node:process';\nimport fs from 'node:fs';\nimport nodePath from 'node:path';\nimport mergeStreams from '@sindresorhus/merge-streams';\nimport fastGlob from 'fast-glob';\nimport {isDirectory, isDirectorySync} from 'path-type';\nimport {toPath} from 'unicorn-magic';\nimport {\n\tGITIGNORE_FILES_PATTERN,\n\tisIgnoredByIgnoreFiles,\n\tisIgnoredByIgnoreFilesSync,\n} from './ignore.js';\nimport {isNegativePattern} from './utilities.js';\n\nconst assertPatternsInput = patterns => {\n\tif (patterns.some(pattern => typeof pattern !== 'string')) {\n\t\tthrow new TypeError('Patterns must be a string or an array of strings');\n\t}\n};\n\nconst normalizePathForDirectoryGlob = (filePath, cwd) => {\n\tconst path = isNegativePattern(filePath) ? filePath.slice(1) : filePath;\n\treturn nodePath.isAbsolute(path) ? path : nodePath.join(cwd, path);\n};\n\nconst getDirectoryGlob = ({directoryPath, files, extensions}) => {\n\tconst extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]}` : '';\n\treturn files\n\t\t? files.map(file => nodePath.posix.join(directoryPath, `**/${nodePath.extname(file) ? file : `${file}${extensionGlob}`}`))\n\t\t: [nodePath.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ''}`)];\n};\n\nconst directoryToGlob = async (directoryPaths, {\n\tcwd = process.cwd(),\n\tfiles,\n\textensions,\n} = {}) => {\n\tconst globs = await Promise.all(directoryPaths.map(async directoryPath =>\n\t\t(await isDirectory(normalizePathForDirectoryGlob(directoryPath, cwd))) ? getDirectoryGlob({directoryPath, files, extensions}) : directoryPath),\n\t);\n\n\treturn globs.flat();\n};\n\nconst directoryToGlobSync = (directoryPaths, {\n\tcwd = process.cwd(),\n\tfiles,\n\textensions,\n} = {}) => directoryPaths.flatMap(directoryPath => isDirectorySync(normalizePathForDirectoryGlob(directoryPath, cwd)) ? getDirectoryGlob({directoryPath, files, extensions}) : directoryPath);\n\nconst toPatternsArray = patterns => {\n\tpatterns = [...new Set([patterns].flat())];\n\tassertPatternsInput(patterns);\n\treturn patterns;\n};\n\nconst checkCwdOption = cwd => {\n\tif (!cwd) {\n\t\treturn;\n\t}\n\n\tlet stat;\n\ttry {\n\t\tstat = fs.statSync(cwd);\n\t} catch {\n\t\treturn;\n\t}\n\n\tif (!stat.isDirectory()) {\n\t\tthrow new Error('The `cwd` option must be a path to a directory');\n\t}\n};\n\nconst normalizeOptions = (options = {}) => {\n\toptions = {\n\t\t...options,\n\t\tignore: options.ignore ?? [],\n\t\texpandDirectories: options.expandDirectories ?? true,\n\t\tcwd: toPath(options.cwd),\n\t};\n\n\tcheckCwdOption(options.cwd);\n\n\treturn options;\n};\n\nconst normalizeArguments = function_ => async (patterns, options) => function_(toPatternsArray(patterns), normalizeOptions(options));\nconst normalizeArgumentsSync = function_ => (patterns, options) => function_(toPatternsArray(patterns), normalizeOptions(options));\n\nconst getIgnoreFilesPatterns = options => {\n\tconst {ignoreFiles, gitignore} = options;\n\n\tconst patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];\n\tif (gitignore) {\n\t\tpatterns.push(GITIGNORE_FILES_PATTERN);\n\t}\n\n\treturn patterns;\n};\n\nconst getFilter = async options => {\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\n\treturn createFilterFunction(\n\t\tignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, options),\n\t);\n};\n\nconst getFilterSync = options => {\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\n\treturn createFilterFunction(\n\t\tignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, options),\n\t);\n};\n\nconst createFilterFunction = isIgnored => {\n\tconst seen = new Set();\n\n\treturn fastGlobResult => {\n\t\tconst pathKey = nodePath.normalize(fastGlobResult.path ?? fastGlobResult);\n\n\t\tif (seen.has(pathKey) || (isIgnored && isIgnored(pathKey))) {\n\t\t\treturn false;\n\t\t}\n\n\t\tseen.add(pathKey);\n\n\t\treturn true;\n\t};\n};\n\nconst unionFastGlobResults = (results, filter) => results.flat().filter(fastGlobResult => filter(fastGlobResult));\n\nconst convertNegativePatterns = (patterns, options) => {\n\tconst tasks = [];\n\n\twhile (patterns.length > 0) {\n\t\tconst index = patterns.findIndex(pattern => isNegativePattern(pattern));\n\n\t\tif (index === -1) {\n\t\t\ttasks.push({patterns, options});\n\t\t\tbreak;\n\t\t}\n\n\t\tconst ignorePattern = patterns[index].slice(1);\n\n\t\tfor (const task of tasks) {\n\t\t\ttask.options.ignore.push(ignorePattern);\n\t\t}\n\n\t\tif (index !== 0) {\n\t\t\ttasks.push({\n\t\t\t\tpatterns: patterns.slice(0, index),\n\t\t\t\toptions: {\n\t\t\t\t\t...options,\n\t\t\t\t\tignore: [\n\t\t\t\t\t\t...options.ignore,\n\t\t\t\t\t\tignorePattern,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tpatterns = patterns.slice(index + 1);\n\t}\n\n\treturn tasks;\n};\n\nconst normalizeExpandDirectoriesOption = (options, cwd) => ({\n\t...(cwd ? {cwd} : {}),\n\t...(Array.isArray(options) ? {files: options} : options),\n});\n\nconst generateTasks = async (patterns, options) => {\n\tconst globTasks = convertNegativePatterns(patterns, options);\n\n\tconst {cwd, expandDirectories} = options;\n\n\tif (!expandDirectories) {\n\t\treturn globTasks;\n\t}\n\n\tconst directoryToGlobOptions = normalizeExpandDirectoriesOption(expandDirectories, cwd);\n\n\treturn Promise.all(\n\t\tglobTasks.map(async task => {\n\t\t\tlet {patterns, options} = task;\n\n\t\t\t[\n\t\t\t\tpatterns,\n\t\t\t\toptions.ignore,\n\t\t\t] = await Promise.all([\n\t\t\t\tdirectoryToGlob(patterns, directoryToGlobOptions),\n\t\t\t\tdirectoryToGlob(options.ignore, {cwd}),\n\t\t\t]);\n\n\t\t\treturn {patterns, options};\n\t\t}),\n\t);\n};\n\nconst generateTasksSync = (patterns, options) => {\n\tconst globTasks = convertNegativePatterns(patterns, options);\n\tconst {cwd, expandDirectories} = options;\n\n\tif (!expandDirectories) {\n\t\treturn globTasks;\n\t}\n\n\tconst directoryToGlobSyncOptions = normalizeExpandDirectoriesOption(expandDirectories, cwd);\n\n\treturn globTasks.map(task => {\n\t\tlet {patterns, options} = task;\n\t\tpatterns = directoryToGlobSync(patterns, directoryToGlobSyncOptions);\n\t\toptions.ignore = directoryToGlobSync(options.ignore, {cwd});\n\t\treturn {patterns, options};\n\t});\n};\n\nexport const globby = normalizeArguments(async (patterns, options) => {\n\tconst [\n\t\ttasks,\n\t\tfilter,\n\t] = await Promise.all([\n\t\tgenerateTasks(patterns, options),\n\t\tgetFilter(options),\n\t]);\n\n\tconst results = await Promise.all(tasks.map(task => fastGlob(task.patterns, task.options)));\n\treturn unionFastGlobResults(results, filter);\n});\n\nexport const globbySync = normalizeArgumentsSync((patterns, options) => {\n\tconst tasks = generateTasksSync(patterns, options);\n\tconst filter = getFilterSync(options);\n\tconst results = tasks.map(task => fastGlob.sync(task.patterns, task.options));\n\treturn unionFastGlobResults(results, filter);\n});\n\nexport const globbyStream = normalizeArgumentsSync((patterns, options) => {\n\tconst tasks = generateTasksSync(patterns, options);\n\tconst filter = getFilterSync(options);\n\tconst streams = tasks.map(task => fastGlob.stream(task.patterns, task.options));\n\tconst stream = mergeStreams(streams).filter(fastGlobResult => filter(fastGlobResult));\n\n\t// TODO: Make it return a web stream at some point.\n\t// return Readable.toWeb(stream);\n\n\treturn stream;\n});\n\nexport const isDynamicPattern = normalizeArgumentsSync(\n\t(patterns, options) => patterns.some(pattern => fastGlob.isDynamicPattern(pattern, options)),\n);\n\nexport const generateGlobTasks = normalizeArguments(generateTasks);\nexport const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);\n\nexport {\n\tisGitIgnored,\n\tisGitIgnoredSync,\n\tisIgnoredByIgnoreFiles,\n\tisIgnoredByIgnoreFilesSync,\n} from './ignore.js';\n\nexport const {convertPathToPattern} = fastGlob;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","const t=Symbol.for(\"@ts-pattern/matcher\"),e=Symbol.for(\"@ts-pattern/isVariadic\"),n=\"@ts-pattern/anonymous-select-key\",r=t=>Boolean(t&&\"object\"==typeof t),i=e=>e&&!!e[t],o=(n,s,c)=>{if(i(n)){const e=n[t](),{matched:r,selections:i}=e.match(s);return r&&i&&Object.keys(i).forEach(t=>c(t,i[t])),r}if(r(n)){if(!r(s))return!1;if(Array.isArray(n)){if(!Array.isArray(s))return!1;let t=[],r=[],a=[];for(const o of n.keys()){const s=n[o];i(s)&&s[e]?a.push(s):a.length?r.push(s):t.push(s)}if(a.length){if(a.length>1)throw new Error(\"Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.\");if(s.length<t.length+r.length)return!1;const e=s.slice(0,t.length),n=0===r.length?[]:s.slice(-r.length),i=s.slice(t.length,0===r.length?Infinity:-r.length);return t.every((t,n)=>o(t,e[n],c))&&r.every((t,e)=>o(t,n[e],c))&&(0===a.length||o(a[0],i,c))}return n.length===s.length&&n.every((t,e)=>o(t,s[e],c))}return Reflect.ownKeys(n).every(e=>{const r=n[e];return(e in s||i(a=r)&&\"optional\"===a[t]().matcherType)&&o(r,s[e],c);var a})}return Object.is(s,n)},s=e=>{var n,o,a;return r(e)?i(e)?null!=(n=null==(o=(a=e[t]()).getSelectionKeys)?void 0:o.call(a))?n:[]:Array.isArray(e)?c(e,s):c(Object.values(e),s):[]},c=(t,e)=>t.reduce((t,n)=>t.concat(e(n)),[]);function a(...t){if(1===t.length){const[e]=t;return t=>o(e,t,()=>{})}if(2===t.length){const[e,n]=t;return o(e,n,()=>{})}throw new Error(`isMatching wasn't given the right number of arguments: expected 1 or 2, received ${t.length}.`)}function u(t){return Object.assign(t,{optional:()=>l(t),and:e=>m(t,e),or:e=>d(t,e),select:e=>void 0===e?y(t):y(e,t)})}function h(t){return Object.assign((t=>Object.assign(t,{[Symbol.iterator](){let n=0;const r=[{value:Object.assign(t,{[e]:!0}),done:!1},{done:!0,value:void 0}];return{next:()=>{var t;return null!=(t=r[n++])?t:r.at(-1)}}}}))(t),{optional:()=>h(l(t)),select:e=>h(void 0===e?y(t):y(e,t))})}function l(e){return u({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return void 0===t?(s(e).forEach(t=>r(t,void 0)),{matched:!0,selections:n}):{matched:o(e,t,r),selections:n}},getSelectionKeys:()=>s(e),matcherType:\"optional\"})})}const f=(t,e)=>{for(const n of t)if(!e(n))return!1;return!0},g=(t,e)=>{for(const[n,r]of t.entries())if(!e(r,n))return!1;return!0};function m(...e){return u({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return{matched:e.every(e=>o(e,t,r)),selections:n}},getSelectionKeys:()=>c(e,s),matcherType:\"and\"})})}function d(...e){return u({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return c(e,s).forEach(t=>r(t,void 0)),{matched:e.some(e=>o(e,t,r)),selections:n}},getSelectionKeys:()=>c(e,s),matcherType:\"or\"})})}function p(e){return{[t]:()=>({match:t=>({matched:Boolean(e(t))})})}}function y(...e){const r=\"string\"==typeof e[0]?e[0]:void 0,i=2===e.length?e[1]:\"string\"==typeof e[0]?void 0:e[0];return u({[t]:()=>({match:t=>{let e={[null!=r?r:n]:t};return{matched:void 0===i||o(i,t,(t,n)=>{e[t]=n}),selections:e}},getSelectionKeys:()=>[null!=r?r:n].concat(void 0===i?[]:s(i))})})}function v(t){return\"number\"==typeof t}function b(t){return\"string\"==typeof t}function w(t){return\"bigint\"==typeof t}const S=u(p(function(t){return!0})),O=S,j=t=>Object.assign(u(t),{startsWith:e=>{return j(m(t,(n=e,p(t=>b(t)&&t.startsWith(n)))));var n},endsWith:e=>{return j(m(t,(n=e,p(t=>b(t)&&t.endsWith(n)))));var n},minLength:e=>j(m(t,(t=>p(e=>b(e)&&e.length>=t))(e))),length:e=>j(m(t,(t=>p(e=>b(e)&&e.length===t))(e))),maxLength:e=>j(m(t,(t=>p(e=>b(e)&&e.length<=t))(e))),includes:e=>{return j(m(t,(n=e,p(t=>b(t)&&t.includes(n)))));var n},regex:e=>{return j(m(t,(n=e,p(t=>b(t)&&Boolean(t.match(n))))));var n}}),K=j(p(b)),x=t=>Object.assign(u(t),{between:(e,n)=>x(m(t,((t,e)=>p(n=>v(n)&&t<=n&&e>=n))(e,n))),lt:e=>x(m(t,(t=>p(e=>v(e)&&e<t))(e))),gt:e=>x(m(t,(t=>p(e=>v(e)&&e>t))(e))),lte:e=>x(m(t,(t=>p(e=>v(e)&&e<=t))(e))),gte:e=>x(m(t,(t=>p(e=>v(e)&&e>=t))(e))),int:()=>x(m(t,p(t=>v(t)&&Number.isInteger(t)))),finite:()=>x(m(t,p(t=>v(t)&&Number.isFinite(t)))),positive:()=>x(m(t,p(t=>v(t)&&t>0))),negative:()=>x(m(t,p(t=>v(t)&&t<0)))}),E=x(p(v)),A=t=>Object.assign(u(t),{between:(e,n)=>A(m(t,((t,e)=>p(n=>w(n)&&t<=n&&e>=n))(e,n))),lt:e=>A(m(t,(t=>p(e=>w(e)&&e<t))(e))),gt:e=>A(m(t,(t=>p(e=>w(e)&&e>t))(e))),lte:e=>A(m(t,(t=>p(e=>w(e)&&e<=t))(e))),gte:e=>A(m(t,(t=>p(e=>w(e)&&e>=t))(e))),positive:()=>A(m(t,p(t=>w(t)&&t>0))),negative:()=>A(m(t,p(t=>w(t)&&t<0)))}),P=A(p(w)),T=u(p(function(t){return\"boolean\"==typeof t})),B=u(p(function(t){return\"symbol\"==typeof t})),_=u(p(function(t){return null==t})),k=u(p(function(t){return null!=t}));var N={__proto__:null,matcher:t,optional:l,array:function(...e){return h({[t]:()=>({match:t=>{if(!Array.isArray(t))return{matched:!1};if(0===e.length)return{matched:!0};const n=e[0];let r={};if(0===t.length)return s(n).forEach(t=>{r[t]=[]}),{matched:!0,selections:r};const i=(t,e)=>{r[t]=(r[t]||[]).concat([e])};return{matched:t.every(t=>o(n,t,i)),selections:r}},getSelectionKeys:()=>0===e.length?[]:s(e[0])})})},set:function(...e){return u({[t]:()=>({match:t=>{if(!(t instanceof Set))return{matched:!1};let n={};if(0===t.size)return{matched:!0,selections:n};if(0===e.length)return{matched:!0};const r=(t,e)=>{n[t]=(n[t]||[]).concat([e])},i=e[0];return{matched:f(t,t=>o(i,t,r)),selections:n}},getSelectionKeys:()=>0===e.length?[]:s(e[0])})})},map:function(...e){return u({[t]:()=>({match:t=>{if(!(t instanceof Map))return{matched:!1};let n={};if(0===t.size)return{matched:!0,selections:n};const r=(t,e)=>{n[t]=(n[t]||[]).concat([e])};if(0===e.length)return{matched:!0};var i;if(1===e.length)throw new Error(`\\`P.map\\` wasn't given enough arguments. Expected (key, value), received ${null==(i=e[0])?void 0:i.toString()}`);const[s,c]=e;return{matched:g(t,(t,e)=>{const n=o(s,e,r),i=o(c,t,r);return n&&i}),selections:n}},getSelectionKeys:()=>0===e.length?[]:[...s(e[0]),...s(e[1])]})})},intersection:m,union:d,not:function(e){return u({[t]:()=>({match:t=>({matched:!o(e,t,()=>{})}),getSelectionKeys:()=>[],matcherType:\"not\"})})},when:p,select:y,any:S,_:O,string:K,number:E,bigint:P,boolean:T,symbol:B,nullish:_,nonNullable:k,instanceOf:function(t){return u(p(function(t){return e=>e instanceof t}(t)))},shape:function(t){return u(p(a(t)))}};class W extends Error{constructor(t){let e;try{e=JSON.stringify(t)}catch(n){e=t}super(`Pattern matching error: no pattern matches value ${e}`),this.input=void 0,this.input=t}}const $={matched:!1,value:void 0};function z(t){return new I(t,$)}class I{constructor(t,e){this.input=void 0,this.state=void 0,this.input=t,this.state=e}with(...t){if(this.state.matched)return this;const e=t[t.length-1],r=[t[0]];let i;3===t.length&&\"function\"==typeof t[1]?i=t[1]:t.length>2&&r.push(...t.slice(1,t.length-1));let s=!1,c={};const a=(t,e)=>{s=!0,c[t]=e},u=!r.some(t=>o(t,this.input,a))||i&&!Boolean(i(this.input))?$:{matched:!0,value:e(s?n in c?c[n]:c:this.input,this.input)};return new I(this.input,u)}when(t,e){if(this.state.matched)return this;const n=Boolean(t(this.input));return new I(this.input,n?{matched:!0,value:e(this.input,this.input)}:$)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(t=L){return this.state.matched?this.state.value:t(this.input)}run(){return this.exhaustive()}returnType(){return this}narrow(){return this}}function L(t){throw new W(t)}export{W as NonExhaustiveError,N as P,N as Pattern,a as isMatching,z as match};\n//# sourceMappingURL=index.js.map\n","function encode(obj, stringify = String) {\n const result = new URLSearchParams();\n for (const key in obj) {\n const val = obj[key];\n if (val !== void 0) {\n result.set(key, stringify(val));\n }\n }\n return result.toString();\n}\nfunction toValue(str) {\n if (!str) return \"\";\n if (str === \"false\") return false;\n if (str === \"true\") return true;\n return +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\nfunction decode(str) {\n const searchParams = new URLSearchParams(str);\n const result = {};\n for (const [key, value] of searchParams.entries()) {\n const previousValue = result[key];\n if (previousValue == null) {\n result[key] = toValue(value);\n } else if (Array.isArray(previousValue)) {\n previousValue.push(toValue(value));\n } else {\n result[key] = [previousValue, toValue(value)];\n }\n }\n return result;\n}\nexport {\n decode,\n encode\n};\n//# sourceMappingURL=qss.js.map\n","import { decode, encode } from \"./qss.js\";\nconst defaultParseSearch = parseSearchWith(JSON.parse);\nconst defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse\n);\nfunction parseSearchWith(parser) {\n return (searchStr) => {\n if (searchStr[0] === \"?\") {\n searchStr = searchStr.substring(1);\n }\n const query = decode(searchStr);\n for (const key in query) {\n const value = query[key];\n if (typeof value === \"string\") {\n try {\n query[key] = parser(value);\n } catch (_err) {\n }\n }\n }\n return query;\n };\n}\nfunction stringifySearchWith(stringify, parser) {\n const hasParser = typeof parser === \"function\";\n function stringifyValue(val) {\n if (typeof val === \"object\" && val !== null) {\n try {\n return stringify(val);\n } catch (_err) {\n }\n } else if (hasParser && typeof val === \"string\") {\n try {\n parser(val);\n return stringify(val);\n } catch (_err) {\n }\n }\n return val;\n }\n return (search) => {\n const searchStr = encode(search, stringifyValue);\n return searchStr ? `?${searchStr}` : \"\";\n };\n}\nexport {\n defaultParseSearch,\n defaultStringifySearch,\n parseSearchWith,\n stringifySearchWith\n};\n//# sourceMappingURL=searchParams.js.map\n","import { abort_signal_race } from \"@gaubee/util\";\nimport Debug from \"debug\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nconst debug = Debug(\"jixo:reactive-fs-v2\");\n// The context now only needs to know about the active context instance.\nconst contextStorage = new AsyncLocalStorage();\n/**\n * Represents a single piece of reactive state that can be tracked by a ReactiveContext.\n * It's analogous to Signal.State.\n */\nexport class ReactiveState {\n currentValue;\n equals;\n constructor(initialValue, options) {\n this.currentValue = initialValue;\n this.equals = options?.equals ?? ((a, b) => a === b);\n }\n /**\n * Retrieves the current value of the state.\n * If called within a ReactiveContext task, it enables tracking.\n * @returns The current value.\n */\n get() {\n const context = contextStorage.getStore();\n // It can be called outside a context, it just won't be reactive.\n // This can be useful for initial setup or non-reactive reads.\n if (context) {\n return context.getOrPushCache(this, this.currentValue);\n }\n return this.currentValue;\n }\n /**\n * Updates the value of the state.\n * If the new value is different from the old one, it notifies any active\n * ReactiveContext that it has become dirty.\n * @param newValue The new value.\n */\n set(newValue) {\n if (this.equals(this.currentValue, newValue)) {\n return false;\n }\n this.currentValue = newValue;\n const context = contextStorage.getStore();\n context?.notifyChange();\n return true;\n }\n}\n/**\n * Manages the execution of an asynchronous, reactive task.\n * It now works by tracking changes on ReactiveState instances used within its task.\n */\nexport class ReactiveContext {\n watch;\n isRunning = false;\n hasChanged;\n caches = new Map();\n task;\n constructor(task, watch = false) {\n this.watch = watch;\n if (typeof task !== \"function\")\n throw new TypeError(\"Task must be a function.\");\n this.task = task;\n }\n /** @internal */\n getOrPushCache(state, value) {\n if (this.caches.has(state))\n return this.caches.get(state);\n this.caches.set(state, value);\n return value;\n }\n /** @internal */\n notifyChange() {\n debug(\"notifyChange\", this.hasChanged);\n // If a state changes, we mark the whole context as dirty.\n this.hasChanged?.resolve();\n }\n /**\n * TODO 实现off\n * @param watch\n * @returns\n */\n async run({ signal } = {}) {\n if (this.isRunning) {\n console.warn(\"ReactiveContext.run() called while already running. Ignoring call.\");\n return;\n }\n this.isRunning = true;\n try {\n if (this.watch) {\n while (!signal?.aborted) {\n const hasChanged = (this.hasChanged = Promise.withResolvers());\n this.caches.clear();\n const runOnce = async () => {\n // The context provides itself to the async storage.\n await contextStorage.run(this, this.task);\n /// wait changed\n await hasChanged.promise;\n };\n /// wait changed\n await (signal ? abort_signal_race(signal, runOnce) : runOnce());\n }\n }\n else {\n await contextStorage.run(this, this.task);\n }\n }\n finally {\n this.hasChanged?.reject(new Error(\"Context ended\"));\n this.hasChanged = undefined;\n this.isRunning = false;\n }\n }\n}\n//# sourceMappingURL=reactive-context.js.map","import { createAcontext, useAcontexts } from \"@gaubee/node\"; // Preserving your dependency\nimport { map_get_or_put } from \"@gaubee/util\";\nimport parcelWatcher from \"@parcel/watcher\";\nimport Debug from \"debug\";\nimport { globbySync } from \"globby\";\nimport { existsSync, readFileSync, watchFile } from \"node:fs\";\nimport path from \"node:path\";\nimport { ReactiveContext, ReactiveState } from \"./reactive-context.js\";\nconst ONCE_AC = createAcontext(\"ONCE\", () => false);\nconst FILE_WATCH_OPTIONS_AC = createAcontext(\"FILE_WATCH_OPTIONS\", () => ({}));\nconst DIR_WATCH_OPTIONS_AC = createAcontext(\"DIR_WATCH_OPTIONS\", () => ({}));\n// --- State Management: Centralized cache for ReactiveState instances ---\nconst stateCache = new Map();\n// --- Public API Functions ---\nconst debug = Debug(\"jixo:reactive-fs-v2\");\nconst readFile = (filepath) => {\n filepath = path.resolve(filepath);\n const key = `file:${filepath}`;\n const getValue = () => (existsSync(filepath) ? readFileSync(filepath, \"utf-8\") : \"\");\n const fileState = map_get_or_put(stateCache, key, () => new ReactiveState(getValue()));\n // In watch mode, update the state based on the latest file content.\n // This happens *inside* a ReactiveContext run.\n if (!ONCE_AC.get()) {\n debug(\"watch file\", filepath);\n const fileWatchOptions = FILE_WATCH_OPTIONS_AC.get();\n const watcher = watchFile(filepath, { ...fileWatchOptions, bigint: false }, () => {\n try {\n const changed = fileState.set(getValue());\n if (changed) {\n debug(\"file changed\", filepath);\n }\n }\n catch {\n console.log(`File ${filepath} not found, stopping watcher.`);\n watcher.unref();\n }\n });\n }\n return fileState.get();\n};\nconst readDirByGlob = (dirname, glob = \"*\", globbyOptions) => {\n dirname = path.resolve(dirname);\n const getValue = () => {\n return globbySync(glob, { cwd: dirname, ...globbyOptions });\n };\n const key = `glob:${dirname}:${JSON.stringify(Array.isArray(glob) ? glob : [glob])}`;\n const globState = map_get_or_put(stateCache, key, () => new ReactiveState(getValue(), {\n equals: (a, b) => a.length === b.length && a.every((v, i) => v === b[i]),\n }));\n if (!ONCE_AC.get()) {\n const dirWatchOptions = DIR_WATCH_OPTIONS_AC.get();\n debug(\"watch dir\", dirname);\n const subp = parcelWatcher.subscribe(dirname, (err, events) => {\n if (events.some((event) => event.type === \"create\" || event.type === \"delete\")) {\n try {\n const changed = globState.set(getValue());\n if (changed) {\n debug(\"dir changed\", dirname);\n }\n }\n catch {\n subp.then((sub) => sub.unsubscribe());\n }\n }\n }, dirWatchOptions);\n const freshList = globbySync(glob, { cwd: dirname, ...globbyOptions });\n globState.set(freshList);\n }\n return globState.get();\n};\nconst useReactiveFs = (run, opts = {}) => {\n const once = opts?.once ?? ONCE_AC.get();\n const fileWatchOptions = opts?.fileWatchOptions ?? FILE_WATCH_OPTIONS_AC.get();\n const dirWatchOptions = opts?.dirWatchOptions ?? DIR_WATCH_OPTIONS_AC.get();\n const context = new ReactiveContext(run, !once);\n return useAcontexts([\n // keys\n ONCE_AC,\n FILE_WATCH_OPTIONS_AC,\n DIR_WATCH_OPTIONS_AC,\n ])([\n // values\n once,\n fileWatchOptions,\n dirWatchOptions,\n ], () => {\n return context.run(opts);\n });\n};\n// --- The final exported object, matching your original structure ---\nexport const reactiveFs = {\n // We don't export a generic `getState` anymore, as state creation is now an\n // implementation detail of the fs functions. This makes the public API cleaner.\n // getState: ...,\n readFile,\n readDirByGlob,\n use: useReactiveFs,\n};\n//# sourceMappingURL=reactive-fs.js.map","import path from \"node:path\";\n// Helper to build the tree recursively\nfunction buildTree(node, indentation, // This is the accumulated indentation for the current node's children\noutputLines, expandDirectories) {\n const sortedChildren = Array.from(node.children.keys()).sort((a, b) => {\n const aIsFile = node.children.get(a)?.isFile || false;\n const bIsFile = node.children.get(b)?.isFile || false;\n if (aIsFile === bIsFile)\n return a.localeCompare(b);\n return aIsFile ? 1 : -1; // Directories first\n });\n sortedChildren.forEach((childName, index) => {\n const isLastChild = index === sortedChildren.length - 1;\n const childNode = node.children.get(childName);\n const branchSymbol = isLastChild ? \"└── \" : \"├── \";\n outputLines.push(`${indentation}${branchSymbol}${childName}`);\n const nextIndentation = indentation + (isLastChild ? \" \" : \"│ \");\n if (childNode.children.size > 0 && expandDirectories) {\n buildTree(childNode, nextIndentation, outputLines, expandDirectories);\n }\n });\n}\n/**\n * Generates a string representation of a file tree from a list of file paths.\n * @param files - An array of file paths.\n * @param expandDirectories - Whether to recursively expand directories.\n * @returns A string formatted as a file tree.\n */\nexport function generateFileTree(files, expandDirectories = true) {\n if (files.length === 0) {\n return \"\";\n }\n const root = { children: new Map() };\n // Build the hierarchical structure\n files.forEach((file) => {\n const parts = file.split(path.sep);\n let current = root;\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isFilePart = i === parts.length - 1;\n if (!current.children.has(part)) {\n current.children.set(part, { children: new Map(), isFile: isFilePart });\n }\n const nextNode = current.children.get(part);\n if (!expandDirectories && !isFilePart) {\n nextNode.children = new Map();\n break;\n }\n current = nextNode;\n }\n });\n const outputLines = [];\n const sortedRootChildren = Array.from(root.children.keys()).sort((a, b) => {\n const aIsFile = root.children.get(a)?.isFile || false;\n const bIsFile = root.children.get(b)?.isFile || false;\n if (aIsFile === bIsFile)\n return a.localeCompare(b);\n return aIsFile ? 1 : -1; // Directories first\n });\n sortedRootChildren.forEach((childName, index) => {\n const isLastChild = index === sortedRootChildren.length - 1;\n const childNode = root.children.get(childName);\n const branchSymbol = isLastChild ? \"└── \" : \"├── \";\n outputLines.push(`${branchSymbol}${childName}`);\n if (childNode.children.size > 0 && expandDirectories) {\n const nextPrefix = isLastChild ? \" \" : \"│ \";\n buildTree(childNode, nextPrefix, outputLines, expandDirectories);\n }\n });\n return outputLines.join(\"\\n\");\n}\n//# sourceMappingURL=file-tree.js.map","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: schema._zod.def.checks,\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9-_]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 1,\n patch: 5,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n // const handleChecksResult = (\n // checkResult: ParsePayload,\n // originalResult: ParsePayload,\n // ctx: ParseContextInternal\n // ): util.MaybeAsync<ParsePayload> => {\n // // if the checks mutated the value && there are no issues, re-parse the result\n // if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n // return inst._zod.parse(checkResult, ctx);\n // return originalResult;\n // };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (result.value === undefined) {\n if (key in input) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape[k]._zod.traits.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n // iterate over input keys\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (result.issues.length && input === undefined) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, payload.value));\n return handleOptionalResult(result, payload.value);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // let _innerType!: any;\n // util.defineLazy(def, \"getter\", () => {\n // if (!_innerType) {\n // _innerType = def.getter();\n // }\n // return () => _innerType;\n // });\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حرف\", verb: \"أن يحوي\" },\n file: { unit: \"بايت\", verb: \"أن يحوي\" },\n array: { unit: \"عنصر\", verb: \"أن يحوي\" },\n set: { unit: \"عنصر\", verb: \"أن يحوي\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"مدخل\",\n email: \"بريد إلكتروني\",\n url: \"رابط\",\n emoji: \"إيموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاريخ ووقت بمعيار ISO\",\n date: \"تاريخ بمعيار ISO\",\n time: \"وقت بمعيار ISO\",\n duration: \"مدة بمعيار ISO\",\n ipv4: \"عنوان IPv4\",\n ipv6: \"عنوان IPv6\",\n cidrv4: \"مدى عناوين بصيغة IPv4\",\n cidrv6: \"مدى عناوين بصيغة IPv6\",\n base64: \"نَص بترميز base64-encoded\",\n base64url: \"نَص بترميز base64url-encoded\",\n json_string: \"نَص على هيئة JSON\",\n e164: \"رقم هاتف بمعيار E.164\",\n jwt: \"JWT\",\n template_literal: \"مدخل\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `مدخلات غير مقبولة: يفترض إدخال ${issue.expected}، ولكن تم إدخال ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `مدخلات غير مقبولة: يفترض إدخال ${util.stringifyPrimitive(issue.values[0])}`;\n return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"}`;\n return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `نَص غير مقبول: يجب أن يبدأ بـ \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `نَص غير مقبول: يجب أن ينتهي بـ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `نَص غير مقبول: يجب أن يتضمَّن \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} غير مقبول`;\n }\n case \"not_multiple_of\":\n return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `معرف${issue.keys.length > 1 ? \"ات\" : \"\"} غريب${issue.keys.length > 1 ? \"ة\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `معرف غير مقبول في ${issue.origin}`;\n case \"invalid_union\":\n return \"مدخل غير مقبول\";\n case \"invalid_element\":\n return `مدخل غير مقبول في ${issue.origin}`;\n default:\n return \"مدخل غير مقبول\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"element\", verb: \"olmalıdır\" },\n set: { unit: \"element\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Yanlış dəyər: gözlənilən ${issue.expected}, daxil olan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanlış dəyər: gözlənilən ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanlış mətn: \"${_issue.prefix}\" ilə başlamalıdır`;\n if (_issue.format === \"ends_with\")\n return `Yanlış mətn: \"${_issue.suffix}\" ilə bitməlidir`;\n if (_issue.format === \"includes\")\n return `Yanlış mətn: \"${_issue.includes}\" daxil olmalıdır`;\n if (_issue.format === \"regex\")\n return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;\n return `Yanlış ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;\n case \"unrecognized_keys\":\n return `Tanınmayan açar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilində yanlış açar`;\n case \"invalid_union\":\n return \"Yanlış dəyər\";\n case \"invalid_element\":\n return `${issue.origin} daxilində yanlış dəyər`;\n default:\n return `Yanlış dəyər`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"сімвал\",\n few: \"сімвалы\",\n many: \"сімвалаў\",\n },\n verb: \"мець\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байты\",\n many: \"байтаў\",\n },\n verb: \"мець\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"лік\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масіў\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"увод\",\n email: \"email адрас\",\n url: \"URL\",\n emoji: \"эмодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата і час\",\n date: \"ISO дата\",\n time: \"ISO час\",\n duration: \"ISO працягласць\",\n ipv4: \"IPv4 адрас\",\n ipv6: \"IPv6 адрас\",\n cidrv4: \"IPv4 дыяпазон\",\n cidrv6: \"IPv6 дыяпазон\",\n base64: \"радок у фармаце base64\",\n base64url: \"радок у фармаце base64url\",\n json_string: \"JSON радок\",\n e164: \"нумар E.164\",\n jwt: \"JWT\",\n template_literal: \"увод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Няправільны ўвод: чакаўся ${issue.expected}, атрымана ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Няправільны ўвод: чакалася ${util.stringifyPrimitive(issue.values[0])}`;\n return `Няправільны варыянт: чакаўся адзін з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна быць ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Няправільны радок: павінен пачынацца з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Няправільны радок: павінен заканчвацца на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Няправільны радок: павінен змяшчаць \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;\n return `Няправільны ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Няправільны лік: павінен быць кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспазнаны ${issue.keys.length > 1 ? \"ключы\" : \"ключ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Няправільны ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Няправільны ўвод\";\n case \"invalid_element\":\n return `Няправільнае значэнне ў ${issue.origin}`;\n default:\n return `Няправільны ўвод`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caràcters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"adreça electrònica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adreça IPv4\",\n ipv6: \"adreça IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${parsedType(issue.input)}`;\n // return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor invàlid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opció invàlida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a màxim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a mínim\" : \"més de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format invàlid: ha de començar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format invàlid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format invàlid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;\n return `Format invàlid per a ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número invàlid: ha de ser múltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau invàlida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada invàlida\"; // Could also be \"Tipus d'unió invàlid\" but \"Entrada invàlida\" is more general\n case \"invalid_element\":\n return `Element invàlid a ${issue.origin}`;\n default:\n return `Entrada invàlida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaků\", verb: \"mít\" },\n file: { unit: \"bajtů\", verb: \"mít\" },\n array: { unit: \"prvků\", verb: \"mít\" },\n set: { unit: \"prvků\", verb: \"mít\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"číslo\";\n }\n case \"string\": {\n return \"řetězec\";\n }\n case \"boolean\": {\n return \"boolean\";\n }\n case \"bigint\": {\n return \"bigint\";\n }\n case \"function\": {\n return \"funkce\";\n }\n case \"symbol\": {\n return \"symbol\";\n }\n case \"undefined\": {\n return \"undefined\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"pole\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"regulární výraz\",\n email: \"e-mailová adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a čas ve formátu ISO\",\n date: \"datum ve formátu ISO\",\n time: \"čas ve formátu ISO\",\n duration: \"doba trvání ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"řetězec zakódovaný ve formátu base64\",\n base64url: \"řetězec zakódovaný ve formátu base64url\",\n json_string: \"řetězec ve formátu JSON\",\n e164: \"číslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neplatný vstup: očekáváno ${issue.expected}, obdrženo ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatný vstup: očekáváno ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatná možnost: očekávána jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatný řetězec: musí začínat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatný řetězec: musí končit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatný řetězec: musí obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;\n return `Neplatný formát ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatné číslo: musí být násobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neznámé klíče: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatný klíč v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatný vstup\";\n case \"invalid_element\":\n return `Neplatná hodnota v ${issue.origin}`;\n default:\n return `Neplatný vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"havde\" },\n file: { unit: \"bytes\", verb: \"havde\" },\n array: { unit: \"elementer\", verb: \"indeholdt\" },\n set: { unit: \"elementer\", verb: \"indeholdt\" },\n };\n const TypeNames = {\n string: \"streng\",\n number: \"tal\",\n boolean: \"boolean\",\n array: \"liste\",\n object: \"objekt\",\n set: \"sæt\",\n file: \"fil\",\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n function getTypeName(type) {\n return TypeNames[type] ?? type;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n return \"objekt\";\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-mailadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslæt\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslæt\",\n duration: \"ISO-varighed\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodet streng\",\n base64url: \"base64url-kodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldigt input: forventede ${getTypeName(issue.expected)}, fik ${getTypeName(parsedType(issue.input))}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig værdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldigt valg: forventede en af følgende ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing)\n return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing) {\n return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: skal matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldigt tal: skal være deleligt med ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukendte nøgler\" : \"Ukendt nøgle\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøgle i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n case \"invalid_element\":\n return `Ugyldig værdi i ${issue.origin}`;\n default:\n return `Ugyldigt input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"Zahl\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"Array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ungültige Eingabe: erwartet ${issue.expected}, erhalten ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ungültige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ungültige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ungültiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ungültiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ungültiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ungültig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schlüssel\" : \"Unbekannter Schlüssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ungültiger Schlüssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ungültige Eingabe\";\n case \"invalid_element\":\n return `Ungültiger Wert in ${issue.origin}`;\n default:\n return `Ungültige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombro\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabelo\";\n }\n if (data === null) {\n return \"senvalora\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emoĝio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-daŭro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nevalida enigo: atendiĝis ${issue.expected}, riceviĝis ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendiĝis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendiĝis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenciĝi per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas finiĝi per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida ŝlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"arreglo\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"dirección de correo electrónico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duración ISO\",\n ipv4: \"dirección IPv4\",\n ipv6: \"dirección IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrada inválida: se esperaba ${issue.expected}, recibido ${parsedType(issue.input)}`;\n // return `Entrada inválida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opción inválida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Demasiado pequeño: se esperaba que ${issue.origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado pequeño: se esperaba que ${issue.origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inválida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inválida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inválida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;\n return `Inválido ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número inválido: debe ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inválida en ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido en ${issue.origin}`;\n default:\n return `Entrada inválida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"کاراکتر\", verb: \"داشته باشد\" },\n file: { unit: \"بایت\", verb: \"داشته باشد\" },\n array: { unit: \"آیتم\", verb: \"داشته باشد\" },\n set: { unit: \"آیتم\", verb: \"داشته باشد\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرایه\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودی\",\n email: \"آدرس ایمیل\",\n url: \"URL\",\n emoji: \"ایموجی\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاریخ و زمان ایزو\",\n date: \"تاریخ ایزو\",\n time: \"زمان ایزو\",\n duration: \"مدت زمان ایزو\",\n ipv4: \"IPv4 آدرس\",\n ipv6: \"IPv6 آدرس\",\n cidrv4: \"IPv4 دامنه\",\n cidrv6: \"IPv6 دامنه\",\n base64: \"base64-encoded رشته\",\n base64url: \"base64url-encoded رشته\",\n json_string: \"JSON رشته\",\n e164: \"E.164 عدد\",\n jwt: \"JWT\",\n template_literal: \"ورودی\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ورودی نامعتبر: می‌بایست ${issue.expected} می‌بود، ${parsedType(issue.input)} دریافت شد`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ورودی نامعتبر: می‌بایست ${util.stringifyPrimitive(issue.values[0])} می‌بود`;\n }\n return `گزینه نامعتبر: می‌بایست یکی از ${util.joinValues(issue.values, \"|\")} می‌بود`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"} باشد`;\n }\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} باشد`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`;\n }\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `رشته نامعتبر: باید با \"${_issue.prefix}\" شروع شود`;\n }\n if (_issue.format === \"ends_with\") {\n return `رشته نامعتبر: باید با \"${_issue.suffix}\" تمام شود`;\n }\n if (_issue.format === \"includes\") {\n return `رشته نامعتبر: باید شامل \"${_issue.includes}\" باشد`;\n }\n if (_issue.format === \"regex\") {\n return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`;\n }\n return `${Nouns[_issue.format] ?? issue.format} نامعتبر`;\n }\n case \"not_multiple_of\":\n return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;\n case \"unrecognized_keys\":\n return `کلید${issue.keys.length > 1 ? \"های\" : \"\"} ناشناس: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `کلید ناشناس در ${issue.origin}`;\n case \"invalid_union\":\n return `ورودی نامعتبر`;\n case \"invalid_element\":\n return `مقدار نامعتبر در ${issue.origin}`;\n default:\n return `ورودی نامعتبر`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkkiä\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"päivämäärän\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"säännöllinen lauseke\",\n email: \"sähköpostiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-päivämäärä\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen syöte: täytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen syöte: täytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen syöte: täytyy sisältää \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen syöte`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombre\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tableau\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : ${issue.expected} attendu, ${parsedType(issue.input)} reçu`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"élément(s)\"}`;\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit être ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : ${issue.origin} doit être ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : attendu ${issue.expected}, reçu ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"≤\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"≥\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"אותיות\", verb: \"לכלול\" },\n file: { unit: \"בייטים\", verb: \"לכלול\" },\n array: { unit: \"פריטים\", verb: \"לכלול\" },\n set: { unit: \"פריטים\", verb: \"לכלול\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"קלט\",\n email: \"כתובת אימייל\",\n url: \"כתובת רשת\",\n emoji: \"אימוג'י\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"תאריך וזמן ISO\",\n date: \"תאריך ISO\",\n time: \"זמן ISO\",\n duration: \"משך זמן ISO\",\n ipv4: \"כתובת IPv4\",\n ipv6: \"כתובת IPv6\",\n cidrv4: \"טווח IPv4\",\n cidrv6: \"טווח IPv6\",\n base64: \"מחרוזת בבסיס 64\",\n base64url: \"מחרוזת בבסיס 64 לכתובות רשת\",\n json_string: \"מחרוזת JSON\",\n e164: \"מספר E.164\",\n jwt: \"JWT\",\n template_literal: \"קלט\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `קלט לא תקין: צריך ${issue.expected}, התקבל ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `קלט לא תקין: צריך ${util.stringifyPrimitive(issue.values[0])}`;\n return `קלט לא תקין: צריך אחת מהאפשרויות ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `מחרוזת לא תקינה: חייבת להתחיל ב\"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `מחרוזת לא תקינה: חייבת להסתיים ב \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `מחרוזת לא תקינה: חייבת לכלול \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} לא תקין`;\n }\n case \"not_multiple_of\":\n return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `מפתח${issue.keys.length > 1 ? \"ות\" : \"\"} לא מזוה${issue.keys.length > 1 ? \"ים\" : \"ה\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `מפתח לא תקין ב${issue.origin}`;\n case \"invalid_union\":\n return \"קלט לא תקין\";\n case \"invalid_element\":\n return `ערך לא תקין ב${issue.origin}`;\n default:\n return `קלט לא תקין`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"szám\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tömb\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"bemenet\",\n email: \"email cím\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO időbélyeg\",\n date: \"ISO dátum\",\n time: \"ISO idő\",\n duration: \"ISO időintervallum\",\n ipv4: \"IPv4 cím\",\n ipv6: \"IPv6 cím\",\n cidrv4: \"IPv4 tartomány\",\n cidrv6: \"IPv6 tartomány\",\n base64: \"base64-kódolt string\",\n base64url: \"base64url-kódolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 szám\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Érvénytelen bemenet: a várt érték ${issue.expected}, a kapott érték ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Érvénytelen bemenet: a várt érték ${util.stringifyPrimitive(issue.values[0])}`;\n return `Érvénytelen opció: valamelyik érték várt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Túl nagy: ${issue.origin ?? \"érték\"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `Túl nagy: a bemeneti érték ${issue.origin ?? \"érték\"} túl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Érvénytelen string: \"${_issue.prefix}\" értékkel kell kezdődnie`;\n if (_issue.format === \"ends_with\")\n return `Érvénytelen string: \"${_issue.suffix}\" értékkel kell végződnie`;\n if (_issue.format === \"includes\")\n return `Érvénytelen string: \"${_issue.includes}\" értéket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;\n return `Érvénytelen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Érvénytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"Érvénytelen bemenet\";\n case \"invalid_element\":\n return `Érvénytelen érték: ${issue.origin}`;\n default:\n return `Érvénytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak valid: diharapkan ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"númer\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"fylki\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"stafi\", verb: \"að hafa\" },\n file: { unit: \"bæti\", verb: \"að hafa\" },\n array: { unit: \"hluti\", verb: \"að hafa\" },\n set: { unit: \"hluti\", verb: \"að hafa\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"gildi\",\n email: \"netfang\",\n url: \"vefslóð\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dagsetning og tími\",\n date: \"ISO dagsetning\",\n time: \"ISO tími\",\n duration: \"ISO tímalengd\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded strengur\",\n base64url: \"base64url-encoded strengur\",\n json_string: \"JSON strengur\",\n e164: \"E.164 tölugildi\",\n jwt: \"JWT\",\n template_literal: \"gildi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Rangt gildi: Þú slóst inn ${parsedType(issue.input)} þar sem á að vera ${issue.expected}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Rangt gildi: gert ráð fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ógilt val: má vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} sé ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Of lítið: gert er ráð fyrir að ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Of lítið: gert er ráð fyrir að ${issue.origin} sé ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ógildur strengur: verður að byrja á \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ógildur strengur: verður að enda á \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ógildur strengur: verður að innihalda \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ógildur strengur: verður að fylgja mynstri ${_issue.pattern}`;\n return `Rangt ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Röng tala: verður að vera margfeldi af ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Óþekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Rangur lykill í ${issue.origin}`;\n case \"invalid_union\":\n return \"Rangt gildi\";\n case \"invalid_element\":\n return `Rangt gildi í ${issue.origin}`;\n default:\n return `Rangt gildi`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numero\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"vettore\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input non valido: atteso ${issue.expected}, ricevuto ${parsedType(issue.input)}`;\n // return `Input non valido: atteso ${issue.expected}, ricevuto ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"文字\", verb: \"である\" },\n file: { unit: \"バイト\", verb: \"である\" },\n array: { unit: \"要素\", verb: \"である\" },\n set: { unit: \"要素\", verb: \"である\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"数値\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"配列\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"入力値\",\n email: \"メールアドレス\",\n url: \"URL\",\n emoji: \"絵文字\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日時\",\n date: \"ISO日付\",\n time: \"ISO時刻\",\n duration: \"ISO期間\",\n ipv4: \"IPv4アドレス\",\n ipv6: \"IPv6アドレス\",\n cidrv4: \"IPv4範囲\",\n cidrv6: \"IPv6範囲\",\n base64: \"base64エンコード文字列\",\n base64url: \"base64urlエンコード文字列\",\n json_string: \"JSON文字列\",\n e164: \"E.164番号\",\n jwt: \"JWT\",\n template_literal: \"入力値\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無効な入力: ${issue.expected}が期待されましたが、${parsedType(issue.input)}が入力されました`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無効な入力: ${util.stringifyPrimitive(issue.values[0])}が期待されました`;\n return `無効な選択: ${util.joinValues(issue.values, \"、\")}のいずれかである必要があります`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"以下である\" : \"より小さい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${sizing.unit ?? \"要素\"}${adj}必要があります`;\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${adj}必要があります`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"以上である\" : \"より大きい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `無効な文字列: \"${_issue.prefix}\"で始まる必要があります`;\n if (_issue.format === \"ends_with\")\n return `無効な文字列: \"${_issue.suffix}\"で終わる必要があります`;\n if (_issue.format === \"includes\")\n return `無効な文字列: \"${_issue.includes}\"を含む必要があります`;\n if (_issue.format === \"regex\")\n return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`;\n return `無効な${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無効な数値: ${issue.divisor}の倍数である必要があります`;\n case \"unrecognized_keys\":\n return `認識されていないキー${issue.keys.length > 1 ? \"群\" : \"\"}: ${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin}内の無効なキー`;\n case \"invalid_union\":\n return \"無効な入力\";\n case \"invalid_element\":\n return `${issue.origin}内の無効な値`;\n default:\n return `無効な入力`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"តួអក្សរ\", verb: \"គួរមាន\" },\n file: { unit: \"បៃ\", verb: \"គួរមាន\" },\n array: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n set: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"មិនមែនជាលេខ (NaN)\" : \"លេខ\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"អារេ (Array)\";\n }\n if (data === null) {\n return \"គ្មានតម្លៃ (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ទិន្នន័យបញ្ចូល\",\n email: \"អាសយដ្ឋានអ៊ីមែល\",\n url: \"URL\",\n emoji: \"សញ្ញាអារម្មណ៍\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"កាលបរិច្ឆេទ និងម៉ោង ISO\",\n date: \"កាលបរិច្ឆេទ ISO\",\n time: \"ម៉ោង ISO\",\n duration: \"រយៈពេល ISO\",\n ipv4: \"អាសយដ្ឋាន IPv4\",\n ipv6: \"អាសយដ្ឋាន IPv6\",\n cidrv4: \"ដែនអាសយដ្ឋាន IPv4\",\n cidrv6: \"ដែនអាសយដ្ឋាន IPv6\",\n base64: \"ខ្សែអក្សរអ៊ិកូដ base64\",\n base64url: \"ខ្សែអក្សរអ៊ិកូដ base64url\",\n json_string: \"ខ្សែអក្សរ JSON\",\n e164: \"លេខ E.164\",\n jwt: \"JWT\",\n template_literal: \"ទិន្នន័យបញ្ចូល\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;\n return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"ធាតុ\"}`;\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;\n return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n case \"invalid_union\":\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n case \"invalid_element\":\n return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n default:\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"문자\", verb: \"to have\" },\n file: { unit: \"바이트\", verb: \"to have\" },\n array: { unit: \"개\", verb: \"to have\" },\n set: { unit: \"개\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"입력\",\n email: \"이메일 주소\",\n url: \"URL\",\n emoji: \"이모지\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 날짜시간\",\n date: \"ISO 날짜\",\n time: \"ISO 시간\",\n duration: \"ISO 기간\",\n ipv4: \"IPv4 주소\",\n ipv6: \"IPv6 주소\",\n cidrv4: \"IPv4 범위\",\n cidrv6: \"IPv6 범위\",\n base64: \"base64 인코딩 문자열\",\n base64url: \"base64url 인코딩 문자열\",\n json_string: \"JSON 문자열\",\n e164: \"E.164 번호\",\n jwt: \"JWT\",\n template_literal: \"입력\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `잘못된 입력: 예상 타입은 ${issue.expected}, 받은 타입은 ${parsedType(issue.input)}입니다`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `잘못된 입력: 값은 ${util.stringifyPrimitive(issue.values[0])} 이어야 합니다`;\n return `잘못된 옵션: ${util.joinValues(issue.values, \"또는 \")} 중 하나여야 합니다`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"이하\" : \"미만\";\n const suffix = adj === \"미만\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing)\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"이상\" : \"초과\";\n const suffix = adj === \"이상\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing) {\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `잘못된 문자열: \"${_issue.prefix}\"(으)로 시작해야 합니다`;\n }\n if (_issue.format === \"ends_with\")\n return `잘못된 문자열: \"${_issue.suffix}\"(으)로 끝나야 합니다`;\n if (_issue.format === \"includes\")\n return `잘못된 문자열: \"${_issue.includes}\"을(를) 포함해야 합니다`;\n if (_issue.format === \"regex\")\n return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;\n return `잘못된 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;\n case \"unrecognized_keys\":\n return `인식할 수 없는 키: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `잘못된 키: ${issue.origin}`;\n case \"invalid_union\":\n return `잘못된 입력`;\n case \"invalid_element\":\n return `잘못된 값: ${issue.origin}`;\n default:\n return `잘못된 입력`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"знаци\", verb: \"да имаат\" },\n file: { unit: \"бајти\", verb: \"да имаат\" },\n array: { unit: \"ставки\", verb: \"да имаат\" },\n set: { unit: \"ставки\", verb: \"да имаат\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"број\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"низа\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"внес\",\n email: \"адреса на е-пошта\",\n url: \"URL\",\n emoji: \"емоџи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO датум и време\",\n date: \"ISO датум\",\n time: \"ISO време\",\n duration: \"ISO времетраење\",\n ipv4: \"IPv4 адреса\",\n ipv6: \"IPv6 адреса\",\n cidrv4: \"IPv4 опсег\",\n cidrv6: \"IPv6 опсег\",\n base64: \"base64-енкодирана низа\",\n base64url: \"base64url-енкодирана низа\",\n json_string: \"JSON низа\",\n e164: \"E.164 број\",\n jwt: \"JWT\",\n template_literal: \"внес\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Грешен внес: се очекува ${issue.expected}, примено ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Грешана опција: се очекува една ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементи\"}`;\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да биде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Неважечка низа: мора да започнува со \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Неважечка низа: мора да завршува со \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неважечка низа: мора да вклучува \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Грешен број: мора да биде делив со ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Непрепознаени клучеви\" : \"Непрепознаен клуч\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Грешен клуч во ${issue.origin}`;\n case \"invalid_union\":\n return \"Грешен внес\";\n case \"invalid_element\":\n return `Грешна вредност во ${issue.origin}`;\n default:\n return `Грешен внес`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombor\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak sah: dijangka ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\" },\n file: { unit: \"bytes\" },\n array: { unit: \"elementen\" },\n set: { unit: \"elementen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"getal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ongeldige invoer: verwacht ${issue.expected}, ontving ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} bevat`;\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} bevat`;\n }\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"å ha\" },\n file: { unit: \"bytes\", verb: \"å ha\" },\n array: { unit: \"elementer\", verb: \"å inneholde\" },\n set: { unit: \"elementer\", verb: \"å inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tall\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldig input: forventet ${issue.expected}, fikk ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: må starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: må ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: må inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente nøkler\" : \"Ukjent nøkkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøkkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"unsur\", verb: \"olmalıdır\" },\n set: { unit: \"unsur\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numara\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"saf\";\n }\n if (data === null) {\n return \"gayb\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"giren\",\n email: \"epostagâh\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO hengâmı\",\n date: \"ISO tarihi\",\n time: \"ISO zamanı\",\n duration: \"ISO müddeti\",\n ipv4: \"IPv4 nişânı\",\n ipv6: \"IPv6 nişânı\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-şifreli metin\",\n base64url: \"base64url-şifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Fâsit giren: umulan ${issue.expected}, alınan ${parsedType(issue.input)}`;\n // return `Fâsit giren: umulan ${issue.expected}, alınan ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Fâsit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Fâsit tercih: mûteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmalıydı.`;\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmalıydı.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`;\n }\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Fâsit metin: \"${_issue.prefix}\" ile başlamalı.`;\n if (_issue.format === \"ends_with\")\n return `Fâsit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `Fâsit metin: \"${_issue.includes}\" ihtivâ etmeli.`;\n if (_issue.format === \"regex\")\n return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`;\n return `Fâsit ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} için tanınmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tanınamadı.\";\n case \"invalid_element\":\n return `${issue.origin} için tanınmayan kıymet var.`;\n default:\n return `Kıymet tanınamadı.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"توکي\", verb: \"ولري\" },\n file: { unit: \"بایټس\", verb: \"ولري\" },\n array: { unit: \"توکي\", verb: \"ولري\" },\n set: { unit: \"توکي\", verb: \"ولري\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"ارې\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودي\",\n email: \"بریښنالیک\",\n url: \"یو آر ال\",\n emoji: \"ایموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"نیټه او وخت\",\n date: \"نېټه\",\n time: \"وخت\",\n duration: \"موده\",\n ipv4: \"د IPv4 پته\",\n ipv6: \"د IPv6 پته\",\n cidrv4: \"د IPv4 ساحه\",\n cidrv6: \"د IPv6 ساحه\",\n base64: \"base64-encoded متن\",\n base64url: \"base64url-encoded متن\",\n json_string: \"JSON متن\",\n e164: \"د E.164 شمېره\",\n jwt: \"JWT\",\n template_literal: \"ورودي\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ناسم ورودي: باید ${issue.expected} وای, مګر ${parsedType(issue.input)} ترلاسه شو`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ناسم ورودي: باید ${util.stringifyPrimitive(issue.values[0])} وای`;\n }\n return `ناسم انتخاب: باید یو له ${util.joinValues(issue.values, \"|\")} څخه وای`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصرونه\"} ولري`;\n }\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} وي`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`;\n }\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ناسم متن: باید د \"${_issue.prefix}\" سره پیل شي`;\n }\n if (_issue.format === \"ends_with\") {\n return `ناسم متن: باید د \"${_issue.suffix}\" سره پای ته ورسيږي`;\n }\n if (_issue.format === \"includes\") {\n return `ناسم متن: باید \"${_issue.includes}\" ولري`;\n }\n if (_issue.format === \"regex\") {\n return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`;\n }\n return `${Nouns[_issue.format] ?? issue.format} ناسم دی`;\n }\n case \"not_multiple_of\":\n return `ناسم عدد: باید د ${issue.divisor} مضرب وي`;\n case \"unrecognized_keys\":\n return `ناسم ${issue.keys.length > 1 ? \"کلیډونه\" : \"کلیډ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `ناسم کلیډ په ${issue.origin} کې`;\n case \"invalid_union\":\n return `ناسمه ورودي`;\n case \"invalid_element\":\n return `ناسم عنصر په ${issue.origin} کې`;\n default:\n return `ناسمه ورودي`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaków\", verb: \"mieć\" },\n file: { unit: \"bajtów\", verb: \"mieć\" },\n array: { unit: \"elementów\", verb: \"mieć\" },\n set: { unit: \"elementów\", verb: \"mieć\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"liczba\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tablica\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"wyrażenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ciąg znaków zakodowany w formacie base64\",\n base64url: \"ciąg znaków zakodowany w formacie base64url\",\n json_string: \"ciąg znaków w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wejście\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nieprawidłowe dane wejściowe: oczekiwano ${issue.expected}, otrzymano ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za duża wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za mała wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawidłowy ciąg znaków: musi zaczynać się od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawidłowy ciąg znaków: musi kończyć się na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawidłowy ciąg znaków: musi zawierać \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;\n return `Nieprawidłow(y/a/e) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawidłowy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawidłowe dane wejściowe\";\n case \"invalid_element\":\n return `Nieprawidłowa wartość w ${issue.origin}`;\n default:\n return `Nieprawidłowe dane wejściowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"padrão\",\n email: \"endereço de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"duração ISO\",\n ipv4: \"endereço IPv4\",\n ipv6: \"endereço IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipo inválido: esperado ${issue.expected}, recebido ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opção inválida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inválido: deve começar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inválido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inválido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} inválido`;\n }\n case \"not_multiple_of\":\n return `Número inválido: deve ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inválida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido em ${issue.origin}`;\n default:\n return `Campo inválido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"символ\",\n few: \"символа\",\n many: \"символов\",\n },\n verb: \"иметь\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байта\",\n many: \"байт\",\n },\n verb: \"иметь\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"массив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ввод\",\n email: \"email адрес\",\n url: \"URL\",\n emoji: \"эмодзи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата и время\",\n date: \"ISO дата\",\n time: \"ISO время\",\n duration: \"ISO длительность\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"строка в формате base64\",\n base64url: \"строка в формате base64url\",\n json_string: \"JSON строка\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"ввод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неверный ввод: ожидалось ${issue.expected}, получено ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неверная строка: должна начинаться с \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неверная строка: должна заканчиваться на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неверная строка: должна содержать \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;\n return `Неверный ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неверное число: должно быть кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспознанн${issue.keys.length > 1 ? \"ые\" : \"ый\"} ключ${issue.keys.length > 1 ? \"и\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неверный ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Неверные входные данные\";\n case \"invalid_element\":\n return `Неверное значение в ${issue.origin}`;\n default:\n return `Неверные входные данные`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"število\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabela\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"vnos\",\n email: \"e-poštni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in čas\",\n date: \"ISO datum\",\n time: \"ISO čas\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 številka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se začeti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se končati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i ključi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven ključ v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att innehålla\" },\n set: { unit: \"objekt\", verb: \"att innehålla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"antal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"lista\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"reguljärt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad sträng\",\n base64url: \"base64url-kodad sträng\",\n json_string: \"JSON-sträng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För stor(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `För stor(t): förväntat ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig sträng: måste börja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig sträng: måste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig sträng: måste innehålla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig sträng: måste matcha mönstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Okända nycklar\" : \"Okänd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"värdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt värde i ${issue.origin ?? \"värdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"எழுத்துக்கள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n file: { unit: \"பைட்டுகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n array: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n set: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"எண் அல்லாதது\" : \"எண்\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"அணி\";\n }\n if (data === null) {\n return \"வெறுமை\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"உள்ளீடு\",\n email: \"மின்னஞ்சல் முகவரி\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO தேதி நேரம்\",\n date: \"ISO தேதி\",\n time: \"ISO நேரம்\",\n duration: \"ISO கால அளவு\",\n ipv4: \"IPv4 முகவரி\",\n ipv6: \"IPv6 முகவரி\",\n cidrv4: \"IPv4 வரம்பு\",\n cidrv6: \"IPv6 வரம்பு\",\n base64: \"base64-encoded சரம்\",\n base64url: \"base64url-encoded சரம்\",\n json_string: \"JSON சரம்\",\n e164: \"E.164 எண்\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${issue.expected}, பெறப்பட்டது ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${util.stringifyPrimitive(issue.values[0])}`;\n return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${util.joinValues(issue.values, \"|\")} இல் ஒன்று`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"உறுப்புகள்\"} ஆக இருக்க வேண்டும்`;\n }\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; //\n }\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `தவறான சரம்: \"${_issue.prefix}\" இல் தொடங்க வேண்டும்`;\n if (_issue.format === \"ends_with\")\n return `தவறான சரம்: \"${_issue.suffix}\" இல் முடிவடைய வேண்டும்`;\n if (_issue.format === \"includes\")\n return `தவறான சரம்: \"${_issue.includes}\" ஐ உள்ளடக்க வேண்டும்`;\n if (_issue.format === \"regex\")\n return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;\n return `தவறான ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;\n case \"unrecognized_keys\":\n return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? \"கள்\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} இல் தவறான விசை`;\n case \"invalid_union\":\n return \"தவறான உள்ளீடு\";\n case \"invalid_element\":\n return `${issue.origin} இல் தவறான மதிப்பு`;\n default:\n return `தவறான உள்ளீடு`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ตัวอักษร\", verb: \"ควรมี\" },\n file: { unit: \"ไบต์\", verb: \"ควรมี\" },\n array: { unit: \"รายการ\", verb: \"ควรมี\" },\n set: { unit: \"รายการ\", verb: \"ควรมี\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"ไม่ใช่ตัวเลข (NaN)\" : \"ตัวเลข\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"อาร์เรย์ (Array)\";\n }\n if (data === null) {\n return \"ไม่มีค่า (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ข้อมูลที่ป้อน\",\n email: \"ที่อยู่อีเมล\",\n url: \"URL\",\n emoji: \"อิโมจิ\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"วันที่เวลาแบบ ISO\",\n date: \"วันที่แบบ ISO\",\n time: \"เวลาแบบ ISO\",\n duration: \"ช่วงเวลาแบบ ISO\",\n ipv4: \"ที่อยู่ IPv4\",\n ipv6: \"ที่อยู่ IPv6\",\n cidrv4: \"ช่วง IP แบบ IPv4\",\n cidrv6: \"ช่วง IP แบบ IPv6\",\n base64: \"ข้อความแบบ Base64\",\n base64url: \"ข้อความแบบ Base64 สำหรับ URL\",\n json_string: \"ข้อความแบบ JSON\",\n e164: \"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)\",\n jwt: \"โทเคน JWT\",\n template_literal: \"ข้อมูลที่ป้อน\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${issue.expected} แต่ได้รับ ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ค่าไม่ถูกต้อง: ควรเป็น ${util.stringifyPrimitive(issue.values[0])}`;\n return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"ไม่เกิน\" : \"น้อยกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"รายการ\"}`;\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"อย่างน้อย\" : \"มากกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี \"${_issue.includes}\" อยู่ในข้อความ`;\n if (_issue.format === \"regex\")\n return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;\n return `รูปแบบไม่ถูกต้อง: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;\n case \"unrecognized_keys\":\n return `พบคีย์ที่ไม่รู้จัก: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `คีย์ไม่ถูกต้องใน ${issue.origin}`;\n case \"invalid_union\":\n return \"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้\";\n case \"invalid_element\":\n return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`;\n default:\n return `ข้อมูลไม่ถูกต้อง`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmalı\" },\n file: { unit: \"bayt\", verb: \"olmalı\" },\n array: { unit: \"öğe\", verb: \"olmalı\" },\n set: { unit: \"öğe\", verb: \"olmalı\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO süre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aralığı\",\n cidrv6: \"IPv6 aralığı\",\n base64: \"base64 ile şifrelenmiş metin\",\n base64url: \"base64url ile şifrelenmiş metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"Şablon dizesi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Geçersiz değer: beklenen ${issue.expected}, alınan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"öğe\"}`;\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Geçersiz metin: \"${_issue.prefix}\" ile başlamalı`;\n if (_issue.format === \"ends_with\")\n return `Geçersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Geçersiz metin: \"${_issue.includes}\" içermeli`;\n if (_issue.format === \"regex\")\n return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;\n return `Geçersiz ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} içinde geçersiz anahtar`;\n case \"invalid_union\":\n return \"Geçersiz değer\";\n case \"invalid_element\":\n return `${issue.origin} içinde geçersiz değer`;\n default:\n return `Geçersiz değer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"символів\", verb: \"матиме\" },\n file: { unit: \"байтів\", verb: \"матиме\" },\n array: { unit: \"елементів\", verb: \"матиме\" },\n set: { unit: \"елементів\", verb: \"матиме\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"вхідні дані\",\n email: \"адреса електронної пошти\",\n url: \"URL\",\n emoji: \"емодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"дата та час ISO\",\n date: \"дата ISO\",\n time: \"час ISO\",\n duration: \"тривалість ISO\",\n ipv4: \"адреса IPv4\",\n ipv6: \"адреса IPv6\",\n cidrv4: \"діапазон IPv4\",\n cidrv6: \"діапазон IPv6\",\n base64: \"рядок у кодуванні base64\",\n base64url: \"рядок у кодуванні base64url\",\n json_string: \"рядок JSON\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"вхідні дані\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;\n // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементів\"}`;\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} буде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неправильний рядок: повинен починатися з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неправильний рядок: повинен закінчуватися на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неправильний рядок: повинен містити \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;\n return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неправильне число: повинно бути кратним ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нерозпізнаний ключ${issue.keys.length > 1 ? \"і\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неправильний ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Неправильні вхідні дані\";\n case \"invalid_element\":\n return `Неправильне значення у ${issue.origin}`;\n default:\n return `Неправильні вхідні дані`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حروف\", verb: \"ہونا\" },\n file: { unit: \"بائٹس\", verb: \"ہونا\" },\n array: { unit: \"آئٹمز\", verb: \"ہونا\" },\n set: { unit: \"آئٹمز\", verb: \"ہونا\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"نمبر\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرے\";\n }\n if (data === null) {\n return \"نل\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ان پٹ\",\n email: \"ای میل ایڈریس\",\n url: \"یو آر ایل\",\n emoji: \"ایموجی\",\n uuid: \"یو یو آئی ڈی\",\n uuidv4: \"یو یو آئی ڈی وی 4\",\n uuidv6: \"یو یو آئی ڈی وی 6\",\n nanoid: \"نینو آئی ڈی\",\n guid: \"جی یو آئی ڈی\",\n cuid: \"سی یو آئی ڈی\",\n cuid2: \"سی یو آئی ڈی 2\",\n ulid: \"یو ایل آئی ڈی\",\n xid: \"ایکس آئی ڈی\",\n ksuid: \"کے ایس یو آئی ڈی\",\n datetime: \"آئی ایس او ڈیٹ ٹائم\",\n date: \"آئی ایس او تاریخ\",\n time: \"آئی ایس او وقت\",\n duration: \"آئی ایس او مدت\",\n ipv4: \"آئی پی وی 4 ایڈریس\",\n ipv6: \"آئی پی وی 6 ایڈریس\",\n cidrv4: \"آئی پی وی 4 رینج\",\n cidrv6: \"آئی پی وی 6 رینج\",\n base64: \"بیس 64 ان کوڈڈ سٹرنگ\",\n base64url: \"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ\",\n json_string: \"جے ایس او این سٹرنگ\",\n e164: \"ای 164 نمبر\",\n jwt: \"جے ڈبلیو ٹی\",\n template_literal: \"ان پٹ\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `غلط ان پٹ: ${issue.expected} متوقع تھا، ${parsedType(issue.input)} موصول ہوا`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `غلط ان پٹ: ${util.stringifyPrimitive(issue.values[0])} متوقع تھا`;\n return `غلط آپشن: ${util.joinValues(issue.values, \"|\")} میں سے ایک متوقع تھا`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عناصر\"} ہونے متوقع تھے`;\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`;\n }\n return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `غلط سٹرنگ: \"${_issue.prefix}\" سے شروع ہونا چاہیے`;\n }\n if (_issue.format === \"ends_with\")\n return `غلط سٹرنگ: \"${_issue.suffix}\" پر ختم ہونا چاہیے`;\n if (_issue.format === \"includes\")\n return `غلط سٹرنگ: \"${_issue.includes}\" شامل ہونا چاہیے`;\n if (_issue.format === \"regex\")\n return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;\n return `غلط ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;\n case \"unrecognized_keys\":\n return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? \"ز\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `${issue.origin} میں غلط کی`;\n case \"invalid_union\":\n return \"غلط ان پٹ\";\n case \"invalid_element\":\n return `${issue.origin} میں غلط ویلیو`;\n default:\n return `غلط ان پٹ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ký tự\", verb: \"có\" },\n file: { unit: \"byte\", verb: \"có\" },\n array: { unit: \"phần tử\", verb: \"có\" },\n set: { unit: \"phần tử\", verb: \"có\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"số\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"mảng\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"đầu vào\",\n email: \"địa chỉ email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ngày giờ ISO\",\n date: \"ngày ISO\",\n time: \"giờ ISO\",\n duration: \"khoảng thời gian ISO\",\n ipv4: \"địa chỉ IPv4\",\n ipv6: \"địa chỉ IPv6\",\n cidrv4: \"dải IPv4\",\n cidrv6: \"dải IPv6\",\n base64: \"chuỗi mã hóa base64\",\n base64url: \"chuỗi mã hóa base64url\",\n json_string: \"chuỗi JSON\",\n e164: \"số E.164\",\n jwt: \"JWT\",\n template_literal: \"đầu vào\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Đầu vào không hợp lệ: mong đợi ${issue.expected}, nhận được ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Đầu vào không hợp lệ: mong đợi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"phần tử\"}`;\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chuỗi không hợp lệ: phải bắt đầu bằng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chuỗi không hợp lệ: phải kết thúc bằng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chuỗi không hợp lệ: phải bao gồm \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} không hợp lệ`;\n }\n case \"not_multiple_of\":\n return `Số không hợp lệ: phải là bội số của ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Khóa không được nhận dạng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Khóa không hợp lệ trong ${issue.origin}`;\n case \"invalid_union\":\n return \"Đầu vào không hợp lệ\";\n case \"invalid_element\":\n return `Giá trị không hợp lệ trong ${issue.origin}`;\n default:\n return `Đầu vào không hợp lệ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字符\", verb: \"包含\" },\n file: { unit: \"字节\", verb: \"包含\" },\n array: { unit: \"项\", verb: \"包含\" },\n set: { unit: \"项\", verb: \"包含\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"非数字(NaN)\" : \"数字\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"数组\";\n }\n if (data === null) {\n return \"空值(null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"输入\",\n email: \"电子邮件\",\n url: \"URL\",\n emoji: \"表情符号\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日期时间\",\n date: \"ISO日期\",\n time: \"ISO时间\",\n duration: \"ISO时长\",\n ipv4: \"IPv4地址\",\n ipv6: \"IPv6地址\",\n cidrv4: \"IPv4网段\",\n cidrv6: \"IPv6网段\",\n base64: \"base64编码字符串\",\n base64url: \"base64url编码字符串\",\n json_string: \"JSON字符串\",\n e164: \"E.164号码\",\n jwt: \"JWT\",\n template_literal: \"输入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `无效输入:期望 ${issue.expected},实际接收 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `无效输入:期望 ${util.stringifyPrimitive(issue.values[0])}`;\n return `无效选项:期望以下之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"个元素\"}`;\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `无效字符串:必须以 \"${_issue.prefix}\" 开头`;\n if (_issue.format === \"ends_with\")\n return `无效字符串:必须以 \"${_issue.suffix}\" 结尾`;\n if (_issue.format === \"includes\")\n return `无效字符串:必须包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `无效字符串:必须满足正则表达式 ${_issue.pattern}`;\n return `无效${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `无效数字:必须是 ${issue.divisor} 的倍数`;\n case \"unrecognized_keys\":\n return `出现未知的键(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} 中的键(key)无效`;\n case \"invalid_union\":\n return \"无效输入\";\n case \"invalid_element\":\n return `${issue.origin} 中包含无效值(value)`;\n default:\n return `无效输入`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字元\", verb: \"擁有\" },\n file: { unit: \"位元組\", verb: \"擁有\" },\n array: { unit: \"項目\", verb: \"擁有\" },\n set: { unit: \"項目\", verb: \"擁有\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"輸入\",\n email: \"郵件地址\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 日期時間\",\n date: \"ISO 日期\",\n time: \"ISO 時間\",\n duration: \"ISO 期間\",\n ipv4: \"IPv4 位址\",\n ipv6: \"IPv6 位址\",\n cidrv4: \"IPv4 範圍\",\n cidrv6: \"IPv6 範圍\",\n base64: \"base64 編碼字串\",\n base64url: \"base64url 編碼字串\",\n json_string: \"JSON 字串\",\n e164: \"E.164 數值\",\n jwt: \"JWT\",\n template_literal: \"輸入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無效的輸入值:預期為 ${issue.expected},但收到 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無效的輸入值:預期為 ${util.stringifyPrimitive(issue.values[0])}`;\n return `無效的選項:預期為以下其中之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"個元素\"}`;\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `無效的字串:必須以 \"${_issue.prefix}\" 開頭`;\n }\n if (_issue.format === \"ends_with\")\n return `無效的字串:必須以 \"${_issue.suffix}\" 結尾`;\n if (_issue.format === \"includes\")\n return `無效的字串:必須包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `無效的字串:必須符合格式 ${_issue.pattern}`;\n return `無效的 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無效的數字:必須為 ${issue.divisor} 的倍數`;\n case \"unrecognized_keys\":\n return `無法識別的鍵值${issue.keys.length > 1 ? \"們\" : \"\"}:${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin} 中有無效的鍵值`;\n case \"invalid_union\":\n return \"無效的輸入值\";\n case \"invalid_element\":\n return `${issue.origin} 中有無效的值`;\n default:\n return `無效的輸入值`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"àmi\", verb: \"ní\" },\n file: { unit: \"bytes\", verb: \"ní\" },\n array: { unit: \"nkan\", verb: \"ní\" },\n set: { unit: \"nkan\", verb: \"ní\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nọ́mbà\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"akopọ\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ẹ̀rọ ìbáwọlé\",\n email: \"àdírẹ́sì ìmẹ́lì\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"àkókò ISO\",\n date: \"ọjọ́ ISO\",\n time: \"àkókò ISO\",\n duration: \"àkókò tó pé ISO\",\n ipv4: \"àdírẹ́sì IPv4\",\n ipv6: \"àdírẹ́sì IPv6\",\n cidrv4: \"àgbègbè IPv4\",\n cidrv6: \"àgbègbè IPv6\",\n base64: \"ọ̀rọ̀ tí a kọ́ ní base64\",\n base64url: \"ọ̀rọ̀ base64url\",\n json_string: \"ọ̀rọ̀ JSON\",\n e164: \"nọ́mbà E.164\",\n jwt: \"JWT\",\n template_literal: \"ẹ̀rọ ìbáwọlé\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${issue.expected}, àmọ̀ a rí ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Àṣàyàn aṣìṣe: yan ọ̀kan lára ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n return `Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n return `Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`;\n return `Aṣìṣe: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Bọtìnì àìmọ̀: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Bọtìnì aṣìṣe nínú ${issue.origin}`;\n case \"invalid_union\":\n return \"Ìbáwọlé aṣìṣe\";\n case \"invalid_element\":\n return `Iye aṣìṣe nínú ${issue.origin}`;\n default:\n return \"Ìbáwọlé aṣìṣe\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new Map();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new Map();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _superRefine(fn) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import { $ZodRegistry, globalRegistry } from \"./registries.js\";\nimport { getEnumValues } from \"./util.js\";\nexport class JSONSchemaGenerator {\n constructor(params) {\n this.counter = 0;\n this.metadataRegistry = params?.metadata ?? globalRegistry;\n this.target = params?.target ?? \"draft-2020-12\";\n this.unrepresentable = params?.unrepresentable ?? \"throw\";\n this.override = params?.override ?? (() => { });\n this.io = params?.io ?? \"output\";\n this.seen = new Map();\n }\n process(schema, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n const formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n };\n // check for schema in seens\n const seen = this.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n this.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n const parent = schema._zod.parent;\n if (parent) {\n // schema was cloned from another schema\n result.ref = parent;\n this.process(parent, params);\n this.seen.get(parent).isParent = true;\n }\n else {\n const _json = result.schema;\n switch (def.type) {\n case \"string\": {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n result.schema.allOf = [\n ...regexes.map((regex) => ({\n ...(this.target === \"draft-7\" || this.target === \"draft-4\" || this.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n break;\n }\n case \"number\": {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\") {\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.minimum = exclusiveMinimum;\n json.exclusiveMinimum = true;\n }\n else {\n json.exclusiveMinimum = exclusiveMinimum;\n }\n }\n if (typeof minimum === \"number\") {\n json.minimum = minimum;\n if (typeof exclusiveMinimum === \"number\" && this.target !== \"draft-4\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\") {\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.maximum = exclusiveMaximum;\n json.exclusiveMaximum = true;\n }\n else {\n json.exclusiveMaximum = exclusiveMaximum;\n }\n }\n if (typeof maximum === \"number\") {\n json.maximum = maximum;\n if (typeof exclusiveMaximum === \"number\" && this.target !== \"draft-4\") {\n if (exclusiveMaximum <= maximum)\n delete json.maximum;\n else\n delete json.exclusiveMaximum;\n }\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n break;\n }\n case \"boolean\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"bigint\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"symbol\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"null\": {\n if (this.target === \"openapi-3.0\") {\n _json.type = \"string\";\n _json.nullable = true;\n _json.enum = [null];\n }\n else\n _json.type = \"null\";\n break;\n }\n case \"any\": {\n break;\n }\n case \"unknown\": {\n break;\n }\n case \"undefined\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"void\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"never\": {\n _json.not = {};\n break;\n }\n case \"date\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"array\": {\n const json = _json;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = this.process(def.element, { ...params, path: [...params.path, \"items\"] });\n break;\n }\n case \"object\": {\n const json = _json;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape; // params.shapeCache.get(schema)!;\n for (const key in shape) {\n json.properties[key] = this.process(shape[key], {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n // const optionalKeys = new Set(def.optional);\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (this.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (this.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = this.process(def.catchall, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n break;\n }\n case \"union\": {\n const json = _json;\n const options = def.options.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, \"anyOf\", i],\n }));\n json.anyOf = options;\n break;\n }\n case \"intersection\": {\n const json = _json;\n const a = this.process(def.left, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = this.process(def.right, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n break;\n }\n case \"tuple\": {\n const json = _json;\n json.type = \"array\";\n const prefixPath = this.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = this.target === \"draft-2020-12\" ? \"items\" : this.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? this.process(def.rest, {\n ...params,\n path: [...params.path, restPath, ...(this.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n if (this.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (rest) {\n json.items = rest;\n }\n }\n else if (this.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n json.minItems = prefixItems.length;\n if (!rest) {\n json.maxItems = prefixItems.length;\n }\n }\n else {\n json.items = prefixItems;\n if (rest) {\n json.additionalItems = rest;\n }\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n break;\n }\n case \"record\": {\n const json = _json;\n json.type = \"object\";\n if (this.target === \"draft-7\" || this.target === \"draft-2020-12\") {\n json.propertyNames = this.process(def.keyType, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n }\n json.additionalProperties = this.process(def.valueType, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n break;\n }\n case \"map\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"set\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"enum\": {\n const json = _json;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n break;\n }\n case \"literal\": {\n const json = _json;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"string\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n break;\n }\n case \"file\": {\n const json = _json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(json, file);\n }\n else {\n json.anyOf = mime.map((m) => {\n const mFile = { ...file, contentMediaType: m };\n return mFile;\n });\n }\n }\n else {\n Object.assign(json, file);\n }\n // if (this.unrepresentable === \"throw\") {\n // throw new Error(\"File cannot be represented in JSON Schema\");\n // }\n break;\n }\n case \"transform\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"nullable\": {\n const inner = this.process(def.innerType, params);\n if (this.target === \"openapi-3.0\") {\n result.ref = def.innerType;\n _json.nullable = true;\n }\n else {\n _json.anyOf = [inner, { type: \"null\" }];\n }\n break;\n }\n case \"nonoptional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"success\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"default\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.default = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"prefault\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n if (this.io === \"input\")\n _json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"catch\": {\n // use conditionals\n this.process(def.innerType, params);\n result.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n _json.default = catchValue;\n break;\n }\n case \"nan\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"template_literal\": {\n const json = _json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n json.type = \"string\";\n json.pattern = pattern.source;\n break;\n }\n case \"pipe\": {\n const innerType = this.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"readonly\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.readOnly = true;\n break;\n }\n // passthrough types\n case \"promise\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"optional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"lazy\": {\n const innerType = schema._zod.innerType;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"custom\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"function\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Function types cannot be represented in JSON Schema\");\n }\n break;\n }\n default: {\n def;\n }\n }\n }\n }\n // metadata\n const meta = this.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (this.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (this.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from this.seen in case it was overwritten\n const _result = this.seen.get(schema);\n return _result.schema;\n }\n emit(schema, _params) {\n const params = {\n cycles: _params?.cycles ?? \"ref\",\n reused: _params?.reused ?? \"inline\",\n // unrepresentable: _params?.unrepresentable ?? \"throw\",\n // uri: _params?.uri ?? ((id) => `${id}`),\n external: _params?.external ?? undefined,\n };\n // iterate over seen map;\n const root = this.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // initialize result with root schema fields\n // Object.assign(result, seen.cached);\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = this.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (params.external) {\n const externalId = params.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${this.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = params.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${this.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${this.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (params.cycles === \"throw\") {\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (params.external) {\n const ext = params.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = this.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (params.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n // flatten _refs\n const flattenRef = (zodSchema, params) => {\n const seen = this.seen.get(zodSchema);\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n // already seen\n if (seen.ref === null) {\n return;\n }\n // flatten ref if defined\n const ref = seen.ref;\n seen.ref = null; // prevent recursion\n if (ref) {\n flattenRef(ref, params);\n // merge referenced schema into current\n const refSchema = this.seen.get(ref).schema;\n if (refSchema.$ref &&\n (params.target === \"draft-7\" || params.target === \"draft-4\" || params.target === \"openapi-3.0\")) {\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n Object.assign(schema, _cached); // prevent overwriting any fields in the original schema\n }\n }\n // execute overrides\n if (!seen.isParent)\n this.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...this.seen.entries()].reverse()) {\n flattenRef(entry[0], { target: this.target });\n }\n const result = {};\n if (this.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (this.target === \"draft-7\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (this.target === \"draft-4\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (this.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // @ts-ignore\n console.warn(`Invalid target: ${this.target}`);\n }\n if (params.external?.uri) {\n const id = params.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = params.external.uri(id);\n }\n Object.assign(result, root.def);\n // build defs object\n const defs = params.external?.defs ?? {};\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (params.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (this.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to .emit() is functionally independent\n // though the seen map is shared\n return JSON.parse(JSON.stringify(result));\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n }\n}\nexport function toJSONSchema(input, _params) {\n if (input instanceof $ZodRegistry) {\n const gen = new JSONSchemaGenerator(_params);\n const defs = {};\n for (const entry of input._idmap.entries()) {\n const [_, schema] = entry;\n gen.process(schema);\n }\n const schemas = {};\n const external = {\n registry: input,\n uri: _params?.uri,\n defs,\n };\n for (const entry of input._idmap.entries()) {\n const [key, schema] = entry;\n schemas[key] = gen.emit(schema, {\n ..._params,\n external,\n });\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = gen.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n const gen = new JSONSchemaGenerator(_params);\n gen.process(input);\n return gen.emit(input, _params);\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const schema = _schema;\n const def = schema._zod.def;\n switch (def.type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n case \"date\":\n case \"symbol\":\n case \"undefined\":\n case \"null\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n case \"void\":\n case \"literal\":\n case \"enum\":\n case \"nan\":\n case \"file\":\n case \"template_literal\":\n return false;\n case \"array\": {\n return isTransforming(def.element, ctx);\n }\n case \"object\": {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n case \"union\": {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n case \"intersection\": {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n case \"tuple\": {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n case \"record\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"map\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"set\": {\n return isTransforming(def.valueType, ctx);\n }\n // inner types\n case \"promise\":\n case \"optional\":\n case \"nonoptional\":\n case \"nullable\":\n case \"readonly\":\n return isTransforming(def.innerType, ctx);\n case \"lazy\":\n return isTransforming(def.getter(), ctx);\n case \"default\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"prefault\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"custom\": {\n return false;\n }\n case \"transform\": {\n return true;\n }\n case \"pipe\": {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n case \"success\": {\n return false;\n }\n case \"catch\": {\n return false;\n }\n case \"function\": {\n return false;\n }\n default:\n def;\n }\n throw new Error(`Unknown schema type: ${def.type}`);\n}\n","export {};\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // encoding/decoding\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: /^https?$/,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.safeExtend = (incoming) => {\n return util.safeExtend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", shape ? util.objectClone(shape) : {});\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", util.objectClone(shape));\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", util.objectClone(shape));\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","import * as z from \"./v4/classic/external.js\";\nexport * from \"./v4/classic/external.js\";\nexport { z };\nexport default z;\n","import { createResolver, createResolverByRootFile } from \"@gaubee/node\";\nexport const projectResolver = createResolverByRootFile(import.meta.url, \"package.json\");\nexport const defaultAssetsResolver = createResolver(projectResolver(\"assets\"));\nexport let assetsResolver = defaultAssetsResolver;\nexport const setAssetsResolver = (dir) => {\n return (assetsResolver = dir ? createResolver(dir) : defaultAssetsResolver);\n};\n//# sourceMappingURL=resolver.js.map","import { readJson } from \"@gaubee/nodekit\";\nimport { func_remember } from \"@gaubee/util\";\nimport z from \"zod\";\nimport { assetsResolver } from \"../../utils/resolver.js\";\nconst GET_JIXO_PROMPT = func_remember(() => readJson(assetsResolver(\"prompt.json\")));\nexport const jixoProvider = async (specifier, options) => {\n specifier = specifier.toLowerCase();\n /// 一些特殊的代号\n if (specifier === \"pwd\") {\n return options.baseDir;\n }\n if (specifier === \"code_name\") {\n return options.codeName;\n }\n if (specifier === \"datetime\") {\n return new Date().toLocaleString();\n }\n if (specifier === \"memory\") {\n const { localFileReplacement } = await import(\"./file-replacer.js\");\n const memoryOptions = {\n ...options,\n globOrFilepath: `.jixo/memory/${options.codeName}/*.md`,\n params: { gitignore: false, ...options.params },\n };\n return localFileReplacement(memoryOptions);\n }\n /// 通用的文件读取方式\n if (specifier === \"system\") {\n specifier = \"coder\";\n }\n let content = (await GET_JIXO_PROMPT())[specifier];\n if (/\\.(json|ts)$/.test(specifier)) {\n /// 如果是JSON文件,那么序列化后再输出\n content = JSON.stringify(content, null, z.int().optional().safeParse(options.params.spaces).data ?? 2);\n }\n else {\n /// 如果不是JSON文件,那么走md标准做一次输出\n const { _gen_content } = await import(\"../../gen-prompt.js\");\n if (!content) {\n throw new Error(`No found jixo specifier: ${specifier}`);\n }\n content = await _gen_content(options.codeName, content, options.rootResolver);\n }\n if (content) {\n const { useFileOrInject } = await import(\"./file-replacer.js\");\n return useFileOrInject(options.mode, `${specifier}.md`, content, options.params);\n }\n return `<!-- unknown jixo content ${specifier} -->`;\n};\n//# sourceMappingURL=jixo-provider.js.map","import {} from \"globby\";\nimport { match, P } from \"ts-pattern\";\nexport const paramsToGlobbyOptions = (params, defaults = {}) => {\n const opts = {\n expandDirectories: match(params.expandDirectories)\n .with(P.boolean, (v) => v)\n .with(P.array(P.string), (v) => v)\n .with({ files: P.array(P.string).optional(), extensions: P.array(P.string).optional() }, (v) => v)\n .otherwise(() => defaults.expandDirectories),\n gitignore: match(params.gitignore)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.gitignore),\n ignore: match(params.ignore)\n .with(P.string, (v) => [v])\n .with(P.array(P.string), (v) => v)\n .otherwise(() => defaults.ignore),\n ignoreFiles: match(params.ignoreFiles)\n .with(P.string, P.array(P.string), (v) => v)\n .otherwise(() => defaults.ignoreFiles),\n cwd: match(params.cwd)\n .with(P.string, (v) => v)\n .otherwise(() => defaults.cwd),\n absolute: match(params.absolute)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.absolute),\n baseNameMatch: match(params.baseNameMatch)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.baseNameMatch),\n braceExpansion: match(params.braceExpansion)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.braceExpansion),\n caseSensitiveMatch: match(params.caseSensitiveMatch)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.caseSensitiveMatch),\n concurrency: match(params.concurrency)\n .with(P.number, (v) => v)\n .otherwise(() => defaults.concurrency),\n deep: match(params.deep)\n .with(P.number, (v) => v)\n .otherwise(() => defaults.deep),\n dot: match(params.dot)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.dot),\n extglob: match(params.extglob)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.extglob),\n followSymbolicLinks: match(params.followSymbolicLinks)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.followSymbolicLinks),\n globstar: match(params.globstar)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.globstar),\n markDirectories: match(params.markDirectories)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.markDirectories),\n objectMode: match(params.objectMode)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.objectMode),\n onlyDirectories: match(params.onlyDirectories)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.onlyDirectories),\n onlyFiles: match(params.onlyFiles)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.onlyFiles),\n stats: match(params.stats)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.stats),\n suppressErrors: match(params.suppressErrors)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.suppressErrors),\n throwErrorOnBrokenSymbolicLink: match(params.throwErrorOnBrokenSymbolicLink)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.throwErrorOnBrokenSymbolicLink),\n unique: match(params.unique)\n .with(P.boolean, (v) => v)\n .otherwise(() => defaults.unique),\n };\n /// 移除 undefined 的字段\n const safeOpts = JSON.parse(JSON.stringify(opts));\n return safeOpts;\n};\n//# sourceMappingURL=params-to-globby-options.js.map","import { normalizeFilePath } from \"@gaubee/nodekit\";\nimport { map_get_or_put_async } from \"@gaubee/util\";\nimport { defaultParseSearch } from \"@tanstack/router-core\";\nimport { globbySync, isDynamicPattern } from \"globby\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { match, P } from \"ts-pattern\";\nimport { reactiveFs } from \"../../reactive-fs/reactive-fs.js\";\nimport { generateFileTree } from \"../file-tree.js\";\nimport { jixoProvider } from \"./jixo-provider.js\";\nimport { paramsToGlobbyOptions } from \"./params-to-globby-options.js\";\nconst fetchCache = new Map();\nconst tryStr = (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n};\n/**\n * A utility function to format the file content output in a standardized way.\n * It handles markdown code blocks and optional prefixes.\n */\nexport function useFileOrInject(mode, filepath, filecontent, opts = {}) {\n const lines = [];\n const prefixStr = match(opts.prefix)\n .with(P.number, (len) => \" \".repeat(len))\n .with(P.string, (str) => str)\n .otherwise(() => \"\");\n const contentLines = prefixStr.length ? filecontent.split(\"\\n\").map((line) => prefixStr + line) : [filecontent];\n filepath = tryStr(opts.filepath) ?? filepath;\n if (mode === \"FILE\") {\n const split = filecontent.includes(\"```\") ? \"````\" : \"```\";\n const ext = path.parse(filepath).ext.slice(1);\n if (filepath.length) {\n lines.push(`${prefixStr}\\`${filepath}\\``, \"\");\n }\n const lang = tryStr(opts.ext ?? opts.lang) ?? ext;\n lines.push(\n //\n `${prefixStr}${split}${lang}`, ...contentLines, `${prefixStr}${split}`, \"\");\n }\n else if (mode === \"INJECT\") {\n lines.push(...contentLines);\n }\n else {\n lines.push(`<!-- unknown mode ${mode} -->`);\n }\n return lines.join(\"\\n\");\n}\n/**\n * Core logic for globbing files with query-like parameters.\n * This is the unified engine for both gen-prompt and frontend previews.\n * @param patternWithParams - A single pattern string, e.g., \"src?ignore=*.test.ts\"\n * @param baseDir - The current working directory.\n * @returns An array of matched file paths.\n */\nexport function globFilesWithParams(patternWithParams, baseDir, _params = {}) {\n const [globOrFilepath, paramString] = patternWithParams.split(\"?\");\n const params = {\n ...defaultParseSearch(paramString || \"\"),\n ..._params,\n };\n const isGlob = isDynamicPattern(globOrFilepath);\n const isInsideBaseDir = (targetPath) => normalizeFilePath(path.resolve(baseDir, targetPath)).startsWith(normalizeFilePath(baseDir) + \"/\");\n const isOutBaseDirFile = !isDynamicPattern(globOrFilepath) && !isInsideBaseDir(globOrFilepath);\n const files = isOutBaseDirFile\n ? [globOrFilepath]\n : globbySync(globOrFilepath, paramsToGlobbyOptions(params, {\n gitignore: isGlob ? true : false,\n cwd: baseDir,\n })).map((entry) => (typeof entry === \"string\" ? entry : entry.path));\n return files;\n}\n/**\n * Handles replacements for file-based sources like local file system, URLs, and internal jixo protocol.\n */\nexport const handleFileReplacement = async (options) => {\n const { globOrFilepath, mode, params, rootResolver, baseDir } = options;\n // Handle internal-symbol like `jixo:coder`\n if (globOrFilepath.toLocaleLowerCase().startsWith(\"jixo:\")) {\n const jixo_uri = new URL(globOrFilepath);\n const specifier = (jixo_uri.pathname || jixo_uri.hostname).replace(/^\\//, \"\");\n return await jixoProvider(specifier, options);\n }\n // Handle web-url\n if (/^https?:\\/\\//.test(globOrFilepath)) {\n const url = new URL(globOrFilepath);\n const urlRes = await map_get_or_put_async(fetchCache, url.href, async () => {\n const res = await fetch(url);\n const text = await res.text();\n return { res, text };\n });\n return useFileOrInject(mode, urlRes.res.url, urlRes.text, {\n ...params,\n lang: params[`mime_${urlRes.res.headers.get(\"content-type\")?.split(\";\")}_lang`] ?? params.lang,\n });\n }\n // Handle local file system paths\n return await localFileReplacement(options);\n};\n/**\n * local file system paths\n * @param options\n * @returns\n */\nexport const localFileReplacement = async (options) => {\n const { globOrFilepath, mode, params, rootResolver, baseDir } = options;\n const files = globFilesWithParams(globOrFilepath, baseDir, params);\n if (files.length === 0) {\n const errorMsg = `No files found for pattern: ${globOrFilepath}`;\n return (tryStr(params.noFound) ??\n //\n `${tryStr(params[\"noFound.prefix\"]) ?? \"<!-- \"}${tryStr(params[\"noFound.msg\"]) ?? errorMsg}${tryStr(params[\"noFound.suffix\"]) ?? \" -->\"}`);\n }\n const lines = [];\n if (mode === \"FILE_TREE\") {\n const expandDirectories = params.expandDirectories !== false;\n lines.push(useFileOrInject(\"FILE\", \"\", generateFileTree(files, expandDirectories), params));\n }\n else if (mode === \"FILE_LIST\") {\n debugger;\n lines.push(useFileOrInject(\"INJECT\", \"\", files.join(\"\\n\"), params));\n }\n else {\n for (const filepath of files) {\n const fullFilepath = rootResolver(filepath);\n if (!fs.statSync(fullFilepath).isFile()) {\n continue;\n }\n const fileContent = reactiveFs.readFile(fullFilepath);\n const ext = path.parse(filepath).ext.slice(1);\n lines.push(useFileOrInject(mode, filepath, fileContent, {\n ...params,\n lang: params[`map_ext_${ext}_lang`] ?? params.lang,\n }));\n }\n }\n return lines.join(\"\\n\");\n};\n//# sourceMappingURL=file-replacer.js.map"],"x_google_ignoreList":[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,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,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173],"mappings":"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"}